<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi, Krzysztof,</div><div>I use my Gmail account and response inline.</div><div>Thank you.</div><div><br></div><div>Best Regards</div><div>Kelly</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Krzysztof Kozlowski <<a href="mailto:krzysztof.kozlowski@linaro.org">krzysztof.kozlowski@linaro.org</a>> 於 2024年1月30日 週二 下午6:39寫道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 30/01/2024 09:56, Kelly Hung wrote:<br>
> From: kelly1732000 <<a href="mailto:Kelly_Hung@asus.com" target="_blank">Kelly_Hung@asus.com</a>><br>
> <br>
> This initial device-tree provides the necessary configuration for<br>
> basic BMC functionality and work on ASUS X4TF production.<br>
> <br>
> Signed-off-by: kelly1732000 <<a href="mailto:Kelly_Hung@asus.com" target="_blank">Kelly_Hung@asus.com</a>><br>
> ---<br>
> .../boot/dts/aspeed/aspeed-bmc-asus-x4tf.dts | 828 ++++++++++++++++++<br>
> 1 file changed, 828 insertions(+)<br>
> create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dts<br>
<br>
It's impossible to test this file. You miss Makefile.<br>
<br></blockquote><div>I added the Makfile and re-sent the v5 patch on February 29, 2024.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> <br>
> diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dts<br>
> new file mode 100644<br>
> index 000000000000..723bbb33137f<br>
> --- /dev/null<br>
> +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dts<br>
> @@ -0,0 +1,828 @@<br>
> +// SPDX-License-Identifier: GPL-2.0-or-later<br>
> +// Copyright 2023 ASUS Corp.<br>
> +/dts-v1/;<br>
> +<br>
> +#include "aspeed-g6.dtsi"<br>
> +#include <dt-bindings/gpio/aspeed-gpio.h><br>
> +#include <dt-bindings/i2c/i2c.h><br>
> +<br>
> +<br>
> +/ {<br>
> + model = "ASUS-X4TF";<br>
> + compatible = "asus,x4tf", "aspeed,ast2600";<br>
> +<br>
> + chosen {<br>
> + stdout-path = &uart5;<br>
> + bootargs = "console=ttyS4,115200n8 earlycon";<br>
<br>
earlycon is a debugging feature, not mainline. Also, move console to<br>
stdout-path, so entire bootargs can be dropped.<br>
<br></blockquote><div>I removed the bootargs and modified the stdouut-path and re-sent the v5 patch on Februarty 29, 2024.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> + };<br>
> +<br>
> + memory@80000000 {<br>
> + device_type = "memory";<br>
> + reg = <0x80000000 0x40000000>;<br>
> + };<br>
> +<br>
> + reserved-memory {<br>
> + #address-cells = <1>;<br>
> + #size-cells = <1>;<br>
> + ranges;<br>
> +<br>
> + gfx_memory: framebuffer {<br>
> + size = <0x01000000>;<br>
> + alignment = <0x01000000>;<br>
> + compatible = "shared-dma-pool";<br>
> + reusable;<br>
> + };<br>
> +<br>
> + video_engine_memory: video {<br>
> + size = <0x04000000>;<br>
> + alignment = <0x01000000>;<br>
> + compatible = "shared-dma-pool";<br>
> + reusable;<br>
> + };<br>
> +<br>
> + rvas_memory: rvas {<br>
> + size = <0x04000000>;<br>
> + alignment = <0x01000000>;<br>
> + compatible = "shared-dma-pool";<br>
> + reusable;<br>
> + };<br>
> +<br>
> + bmc_dev_memory: bmc_dev_memory {<br>
<br>
No underscores in node names. This applies everywhere.<br>
<br></blockquote><div>I removed the bmc_dev_memory and re-sent the v5 patch.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + size = <0x00100000>;<br>
> + alignment = <0x00100000>;<br>
> + compatible = "shared-dma-pool";<br>
> + no-map;<br>
> + };<br>
> +<br>
> + pci_msi_memory: pci_msi_memory {<br>
> + no-map;<br>
> + reg = <0x9e770000 0x100>;<br>
> + compatible = "shared-dma-pool";<br>
> + };<br>
> + /* 1GB memory */<br>
> + vga_memory: region@bf000000 {<br>
> + no-map;<br>
> + compatible = "shared-dma-pool";<br>
> + reg = <0xbf000000 0x01000000>; /* 16M */<br>
> + };<br>
> + ssp_memory: ssp_memory {<br>
> + size = <0x02000000>;<br>
> + alignment = <0x01000000>;<br>
> + compatible = "shared-dma-pool";<br>
> + no-map;<br>
> + };<br>
> + };<br>
> +<br>
> + vcc_sdhci0: regulator-vcc-sdhci0 {<br>
> + compatible = "regulator-fixed";<br>
> + status = "disabled";<br>
<br>
Why? It makes it entirely pointless.<br></blockquote><div><br></div><div>I removed the vcc_sdhci0 and re-send the v5 pathch. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + regulator-name = "SDHCI0 Vcc";<br>
> + regulator-min-microvolt = <3300000>;<br>
> + regulator-max-microvolt = <3300000>;<br>
> + gpios = <&gpio0 ASPEED_GPIO(V, 0) GPIO_ACTIVE_HIGH>;<br>
> + enable-active-high;<br>
> + };<br>
> +<br>
> + vccq_sdhci0: regulator-vccq-sdhci0 {<br>
> + compatible = "regulator-gpio";<br>
> + status = "disabled";<br>
<br>
Pointless node.<br>
<br></blockquote><div>I removed the vccq_sdhci0 and re-send the v5 patch.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> + regulator-name = "SDHCI0 VccQ";<br>
> + regulator-min-microvolt = <1800000>;<br>
> + regulator-max-microvolt = <3300000>;<br>
> + gpios = <&gpio0 ASPEED_GPIO(V, 1) GPIO_ACTIVE_HIGH>;<br>
> + gpios-states = <1>;<br>
> + states = <3300000 1>,<br>
> + <1800000 0>;<br>
> + };<br>
> +<br>
> + vcc_sdhci1: regulator-vcc-sdhci1 {<br>
> + compatible = "regulator-fixed";<br>
> + status = "disabled";<br>
<br>
Pointless node.<br>
<br></blockquote><div>I removed the vcc_sdhci1 and re-send the v5 patch. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + regulator-name = "SDHCI1 Vcc";<br>
> + regulator-min-microvolt = <3300000>;<br>
> + regulator-max-microvolt = <3300000>;<br>
> + gpios = <&gpio0 ASPEED_GPIO(V, 2) GPIO_ACTIVE_HIGH>;<br>
> + enable-active-high;<br>
> + };<br>
> +<br>
> + vccq_sdhci1: regulator-vccq-sdhci1 {<br>
> + compatible = "regulator-gpio";<br>
> + status = "disabled";<br>
<br>
Pointless node.<br></blockquote><div><br></div><div>I removed the vccq_sdhci1 and re-send the v5 patch. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + regulator-name = "SDHCI1 VccQ";<br>
> + regulator-min-microvolt = <1800000>;<br>
> + regulator-max-microvolt = <3300000>;<br>
> + gpios = <&gpio0 ASPEED_GPIO(V, 3) GPIO_ACTIVE_HIGH>;<br>
> + gpios-states = <1>;<br>
> + states = <3300000 1>,<br>
> + <1800000 0>;<br>
> + };<br>
<br>
Missing blank line.<br></blockquote><div><br></div><div>For the blank line issue, I've corrected them all and re-sent the v5 patch. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + iio-hwmon {<br>
> + compatible = "iio-hwmon";<br>
> + io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,<br>
> + <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,<br>
> + <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,<br>
> + <&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;<br>
> + };<br>
> +> + video-engine@1e700000 {<br>
<br>
Wrong placement. Also tools would tell you that.<br></blockquote><div><br></div><div>I removed the video-engine. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
It does not look like you tested the DTS against bindings. Please run<br>
`make dtbs_check W=1` (see<br>
Documentation/devicetree/bindings/writing-schema.rst or<br>
<a href="https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/" rel="noreferrer" target="_blank">https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/</a><br>
for instructions).<br>
<br>
> + compatible = "aspeed,ast2600-video-engine";<br>
> + reg = <0x1e700000 0x20000>;<br>
> + clocks = <&syscon ASPEED_CLK_GATE_VCLK>, <&syscon ASPEED_CLK_GATE_ECLK>;<br>
> + clock-names = "vclk", "eclk";<br>
> + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;<br>
> + memory-region = <&video_engine_memory>;<br>
> + //resets = <&syscon ASPEED_RESET_VIDEO>;<br>
<br>
Dead code.<br>
<br>
> + };<br>
> +<br>
> + leds {<br>
> + compatible = "gpio-leds";<br>
> +<br>
> + heartbeat {<br>
<br>
It does not look like you tested the DTS against bindings. Please run<br>
`make dtbs_check W=1` (see<br>
Documentation/devicetree/bindings/writing-schema.rst or<br>
<a href="https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/" rel="noreferrer" target="_blank">https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/</a><br>
for instructions).<br></blockquote><div><br></div><div>I've used the dts schema to check our dts. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;<br>
> + linux,default-trigger = "heartbeat";<br>
> + };<br>
> + uid_led {<br>
<br>
It does not look like you tested the DTS against bindings. Please run<br>
`make dtbs_check W=1` (see<br>
Documentation/devicetree/bindings/writing-schema.rst or<br>
<a href="https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/" rel="noreferrer" target="_blank">https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/</a><br>
for instructions).<br>
<br>
> + gpios = <&gpio0 ASPEED_GPIO(P, 1) (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;<br>
> + default-state = "off";<br>
> + };<br>
<br>
Missing blank line, everywhere.<br></blockquote><div><br></div><div>For the blank line issue, I've corrected them all and re-sent the v5 patch. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + status_Y {<br>
> + gpios = <&gpio1 ASPEED_GPIO(B, 1) GPIO_ACTIVE_LOW>;<br>
> + default-state = "off";<br>
> + };<br>
> + sys_boot_status {<br>
> + gpios = <&gpio1 ASPEED_GPIO(B, 0) GPIO_ACTIVE_LOW>;<br>
> + default-state = "off";<br>
> + };<br>
> + };<br>
> + spigpio {<br>
<br>
It does not look like you tested the DTS against bindings. Please run<br>
`make dtbs_check W=1` (see<br>
Documentation/devicetree/bindings/writing-schema.rst or<br>
<a href="https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/" rel="noreferrer" target="_blank">https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/</a><br>
for instructions).<br>
<br></blockquote><div>I've used the dts schema to check our dts. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + status = "okay";<br>
<br>
Why?<br>
<br>
> + compatible = "spi-gpio";<br>
> + #address-cells = <1>;<br>
> + #size-cells = <0>;<br>
> +<br>
> + sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;<br>
> + mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;<br>
> + miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;<br>
> + num-chipselects = <1>;<br>
> + cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_HIGH>;<br>
> + };<br>
> +<br>
<br>
Redundant blank line.<br></blockquote><div><br></div><div>For the blank line issue, I've corrected them all and re-sent the v5 patch. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> +};<br>
> +<br>
> +&adc0 {<br>
> + vref = <2500>;<br>
> + status = "okay";<br>
> +<br>
> + pinctrl-names = "default";<br>
> + pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default<br>
> + &pinctrl_adc2_default &pinctrl_adc3_default<br>
> + &pinctrl_adc4_default &pinctrl_adc5_default<br>
> + &pinctrl_adc6_default &pinctrl_adc7_default>;<br>
> +};<br>
> +<br>
> +&adc1 {<br>
> + vref = <2500>;<br>
> + status = "okay";<br>
> +<br>
> + pinctrl-names = "default";<br>
> + pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default<br>
> + &pinctrl_adc10_default &pinctrl_adc11_default<br>
> + &pinctrl_adc12_default &pinctrl_adc13_default<br>
> + &pinctrl_adc14_default &pinctrl_adc15_default>;<br>
> +};<br>
> +<br>
> +&peci0 {<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +&lpc_snoop {<br>
> + snoop-ports = <0x80>;<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +<br>
<br>
Redundant blank line. Clean this code before sending upstream from such<br>
trivialities.<br></blockquote><div>For the blank line issue, I've corrected them all and re-sent the v5 patch. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> +&mdio0 {<br>
> + status = "disabled";<br>
> +};<br>
> +<br>
> +<br>
> +&mdio1 {<br>
> + status = "disabled";<br>
> +};<br>
> +<br>
> +&mdio2 {<br>
> + status = "okay";<br>
> +<br>
> + ethphy2: ethernet-phy@0 {<br>
> + compatible = "ethernet-phy-ieee802.3-c22";<br>
> + reg = <0>;<br>
> + };<br>
> +};<br>
> +<br>
> +&mdio3 {<br>
> + status = "okay";<br>
> +<br>
> + ethphy3: ethernet-phy@0 {<br>
> + compatible = "ethernet-phy-ieee802.3-c22";<br>
> + reg = <0>;<br>
> + };<br>
> +};<br>
> +<br>
> +&mac0 {<br>
> + status = "disabled";<br>
> +};<br>
> +<br>
> +&mac1 {<br>
> + status = "disabled";<br>
> +};<br>
> +<br>
> +//for X4TF<br>
> +&mac2 {<br>
> + status = "okay";<br>
> + phy-mode = "rmii";<br>
> + #phy-handle = <ðphy2>;<br>
> + use-ncsi;<br>
> + pinctrl-names = "default";<br>
> + pinctrl-0 = <&pinctrl_rmii3_default>;<br>
> +};<br>
> +<br>
> +<br>
<br>
Ditto<br>
<br></blockquote><div>For the blank line issue, I've corrected them all and re-sent the v5 patch. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> +&mac3 {<br>
> + status = "okay";<br>
> + phy-mode = "rmii";<br>
> + #phy-handle = <ðphy3>;<br>
> + use-ncsi;<br>
> + pinctrl-names = "default";<br>
> + pinctrl-0 = <&pinctrl_rmii4_default>;<br>
> +};<br>
> +<br>
> +<br>
<br>
Ditto<br></blockquote><div><br></div><div>For the blank line issue, I've corrected them all and re-sent the v5 patch. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> +&syscon {<br>
> + uart-clock-high-speed;<br>
<br>
That's a syscon property?<br>
<br>
It does not look like you tested the DTS against bindings. Please run<br>
`make dtbs_check W=1` (see<br>
Documentation/devicetree/bindings/writing-schema.rst or<br>
<a href="https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/" rel="noreferrer" target="_blank">https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/</a><br>
for instructions).<br>
<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +&rtc {<br>
> + status = "disabled";<br>
> +};<br>
> +<br>
> +&fmc {<br>
> + status = "okay";<br>
> + flash@0 {<br>
> + status = "okay";<br>
<br>
Drop. Everywhere where it is not needed.<br>
<br></blockquote><div>I have corrected the related flash configuration and re-send the v5 patch. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> + m25p,fast-read;<br>
> + label = "bmc-spi";<br>
> + spi-max-frequency = <50000000>;<br>
> + spi-bus-width = <1>;<br>
> + partitions {<br>
> + compatible = "fixed-partitions";<br>
> + #address-cells = <1>;<br>
> + #size-cells = <1>;<br>
> + bmc@0 {<br>
> + label = "bmc";<br>
> + reg = <0x0 0x4000000>;<br>
> + };<br>
> + u-boot@0 {<br>
> + label = "u-boot";<br>
> + reg = <0x0 0x200000>;<br>
> + };<br>
> + u-boot-env@1f0000 {<br>
> + label = "u-boot-env";<br>
> + reg = <0x1f0000 0x10000>;<br>
> + };<br>
> + kernel@200000 {<br>
> + label = "kernel";<br>
> + reg = <0x200000 0xc00000>;<br>
> + };<br>
> + rofs@a00000 {<br>
> + label = "rofs";<br>
> + reg = <0xa00000 0x2a00000>;<br>
> + };<br>
> + rwfs@2a00000 {<br>
> + label = "rwfs";<br>
> + reg = <0x2a00000 0x43f0000>;<br>
> + };<br>
> + };<br>
> + };<br>
> +};<br>
> +<br>
> +&spi1 {<br>
> + status = "okay";<br>
> + pinctrl-names = "default";<br>
> + pinctrl-0 = <&pinctrl_spi1_default>;<br>
> +<br>
> + flash@0 {<br>
> + status = "okay";<br>
> + w25q256,fast-read;<br>
> + label = "bios-spi";<br>
> + spi-max-frequency = <50000000>;<br>
> + partitions {<br>
> + compatible = "fixed-partitions";<br>
> + #address-cells = <1>;<br>
> + #size-cells = <1>;<br>
> + biosfullimg@0 {<br>
> + reg = <0x0 0x2000000>; // 32768 *1024 = 0x2000000, 32 MB<br>
> + label = "biosfullimg";<br>
> + };<br>
> + };<br>
> + };<br>
> +};<br>
> +<br>
> +&i2c0 {<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +&i2c1 {<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +&i2c2 {<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +&i2c3 {<br>
> + status = "okay";<br>
> +};<br>
> +<br>
> +&i2c4 {<br>
> + status = "okay";<br>
> + tmp75@48 {<br>
<br>
Node names should be generic. See also an explanation and list of<br>
examples (not exhaustive) in DT specification:<br>
<a href="https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation" rel="noreferrer" target="_blank">https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation</a><br>
<br></blockquote><div>I've used the dts schema to check our dts. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
> + compatible = "ti,tmp75";<br>
> + reg = <0x48>;<br>
> + };<br>
> + tmp75@49 {<br>
<br>
Node names should be generic. See also an explanation and list of<br>
examples (not exhaustive) in DT specification:<br>
<a href="https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation" rel="noreferrer" target="_blank">https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation</a><br>
<br></blockquote><div><br></div><div>I've used the dts schema to check our dts. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I am going to skip the rest. Please fix all the trivialities and test<br>
your patches with tools.<br>
<br>
Best regards,<br>
Krzysztof<br>
<br>
</blockquote></div></div></div></div></div></div></div></div></div></div></div></div></div></div>