arm64: dts: meson: Fix IRQ trigger type for macirq
A long running stress test on a custom board shipping an AXG SoCs and a Realtek RTL8211F PHY revealed that after a few hours the connection speed would drop drastically, from ~1000Mbps to ~3Mbps. At the same time the 'macirq' (eth0) IRQ would stop being triggered at all and as consequence the GMAC IRQs never ACKed. After a painful investigation the problem seemed to be due to a wrong defined IRQ type for the GMAC IRQ that should be LEVEL_HIGH instead of EDGE_RISING. The change in the macirq IRQ type also solved another long standing issue affecting this SoC/PHY where EEE was causing the network connection to die after stressing it with iperf3 (even though much sooner). It's now possible to remove the 'eee-broken-1000t' quirk as well. Fixes:feb3cbea09
("ARM64: dts: meson-gxbb-odroidc2: fix GbE tx link breakage") Fixes:6d28d57751
("ARM64: dts: meson-axg: fix ethernet stability issue") Reviewed-by: Jerome Brunet <jbrunet@baylibre.com> Tested-by: Jerome Brunet <jbrunet@baylibre.com> Acked-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Carlo Caione <ccaione@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
This commit is contained in:
parent
cbddb02e37
commit
8b3e6f8999
|
@ -166,7 +166,7 @@ ethmac: ethernet@ff3f0000 {
|
||||||
compatible = "amlogic,meson-axg-dwmac", "snps,dwmac";
|
compatible = "amlogic,meson-axg-dwmac", "snps,dwmac";
|
||||||
reg = <0x0 0xff3f0000 0x0 0x10000
|
reg = <0x0 0xff3f0000 0x0 0x10000
|
||||||
0x0 0xff634540 0x0 0x8>;
|
0x0 0xff634540 0x0 0x8>;
|
||||||
interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
|
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
interrupt-names = "macirq";
|
interrupt-names = "macirq";
|
||||||
clocks = <&clkc CLKID_ETH>,
|
clocks = <&clkc CLKID_ETH>,
|
||||||
<&clkc CLKID_FCLK_DIV2>,
|
<&clkc CLKID_FCLK_DIV2>,
|
||||||
|
|
|
@ -467,7 +467,7 @@ ethmac: ethernet@c9410000 {
|
||||||
compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";
|
compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";
|
||||||
reg = <0x0 0xc9410000 0x0 0x10000
|
reg = <0x0 0xc9410000 0x0 0x10000
|
||||||
0x0 0xc8834540 0x0 0x4>;
|
0x0 0xc8834540 0x0 0x4>;
|
||||||
interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
|
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
interrupt-names = "macirq";
|
interrupt-names = "macirq";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -143,7 +143,6 @@ eth_phy0: ethernet-phy@0 {
|
||||||
interrupt-parent = <&gpio_intc>;
|
interrupt-parent = <&gpio_intc>;
|
||||||
/* MAC_INTR on GPIOZ_15 */
|
/* MAC_INTR on GPIOZ_15 */
|
||||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||||
eee-broken-1000t;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -142,7 +142,6 @@ mdio {
|
||||||
eth_phy0: ethernet-phy@0 {
|
eth_phy0: ethernet-phy@0 {
|
||||||
/* Realtek RTL8211F (0x001cc916) */
|
/* Realtek RTL8211F (0x001cc916) */
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
eee-broken-1000t;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue