Commit e35e26b2 authored by Carlo Caione's avatar Carlo Caione Committed by Kevin Hilman

arm: 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: 9c15795a ("ARM: dts: meson8b-odroidc1: ethernet support")
Signed-off-by: default avatarCarlo Caione <ccaione@baylibre.com>
Reviewed-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: default avatarKevin Hilman <khilman@baylibre.com>
parent 19a220dd
...@@ -274,7 +274,7 @@ ethmac: ethernet@c9410000 { ...@@ -274,7 +274,7 @@ ethmac: ethernet@c9410000 {
compatible = "amlogic,meson6-dwmac", "snps,dwmac"; compatible = "amlogic,meson6-dwmac", "snps,dwmac";
reg = <0xc9410000 0x10000 reg = <0xc9410000 0x10000
0xc1108108 0x4>; 0xc1108108 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";
}; };
......
...@@ -221,7 +221,6 @@ mdio { ...@@ -221,7 +221,6 @@ mdio {
/* Realtek RTL8211F (0x001cc916) */ /* Realtek RTL8211F (0x001cc916) */
eth_phy: ethernet-phy@0 { eth_phy: ethernet-phy@0 {
reg = <0>; reg = <0>;
eee-broken-1000t;
interrupt-parent = <&gpio_intc>; interrupt-parent = <&gpio_intc>;
/* GPIOH_3 */ /* GPIOH_3 */
interrupts = <17 IRQ_TYPE_LEVEL_LOW>; interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment