| From cd1f17bcec398213a524e290550a98ee7d6c9d66 Mon Sep 17 00:00:00 2001 |
| From: Carlo Caione <ccaione@baylibre.com> |
| Date: Fri, 7 Dec 2018 10:52:31 +0000 |
| Subject: arm: dts: meson: Fix IRQ trigger type for macirq |
| |
| [ Upstream commit e35e26b26e955c53e61c154ba26b9bb15da6b858 ] |
| |
| 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: 9c15795a4f96 ("ARM: dts: meson8b-odroidc1: ethernet support") |
| Signed-off-by: Carlo Caione <ccaione@baylibre.com> |
| Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> |
| Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> |
| Signed-off-by: Kevin Hilman <khilman@baylibre.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/arm/boot/dts/meson.dtsi | 2 +- |
| arch/arm/boot/dts/meson8b-odroidc1.dts | 1 - |
| 2 files changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi |
| index 0d9faf1a51ea..a86b89086334 100644 |
| --- a/arch/arm/boot/dts/meson.dtsi |
| +++ b/arch/arm/boot/dts/meson.dtsi |
| @@ -263,7 +263,7 @@ |
| compatible = "amlogic,meson6-dwmac", "snps,dwmac"; |
| reg = <0xc9410000 0x10000 |
| 0xc1108108 0x4>; |
| - interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; |
| + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "macirq"; |
| status = "disabled"; |
| }; |
| diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts |
| index ef3177d3da3d..9e48936e2d8d 100644 |
| --- a/arch/arm/boot/dts/meson8b-odroidc1.dts |
| +++ b/arch/arm/boot/dts/meson8b-odroidc1.dts |
| @@ -125,7 +125,6 @@ |
| /* Realtek RTL8211F (0x001cc916) */ |
| eth_phy: ethernet-phy@0 { |
| reg = <0>; |
| - eee-broken-1000t; |
| interrupt-parent = <&gpio_intc>; |
| /* GPIOH_3 */ |
| interrupts = <17 IRQ_TYPE_LEVEL_LOW>; |
| -- |
| 2.19.1 |
| |