Message ID | 20181204160447.27869-2-ccaione@baylibre.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | meson: Fix IRQ trigger type | expand |
Hi Carlo, Le 04/12/2018 17:04, Carlo Caione a écrit : > 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. This is a good news ! Kevin, What's the best procedure here to make it apply on the 4.19, 4.14 and 4.9 stable trees ? for 4.14 and 4.9 it will need to be reworked to apply correctly. Acked-by: Neil Armstrong <narmstrong@baylibre.com> > > Signed-off-by: Carlo Caione <ccaione@baylibre.com> > --- > arch/arm/boot/dts/meson.dtsi | 2 +- > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +- > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 2 +- > 3 files changed, 3 insertions(+), 3 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/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > index df017dbd2e57..b1a42e99cb67 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > @@ -143,7 +143,7 @@ > compatible = "amlogic,meson-axg-dwmac", "snps,dwmac"; > reg = <0x0 0xff3f0000 0x0 0x10000 > 0x0 0xff634540 0x0 0x8>; > - interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; > interrupt-names = "macirq"; > clocks = <&clkc CLKID_ETH>, > <&clkc CLKID_FCLK_DIV2>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > index f1e5cdbade5e..58e6bcaac1d8 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > @@ -462,7 +462,7 @@ > compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac"; > reg = <0x0 0xc9410000 0x0 0x10000 > 0x0 0xc8834540 0x0 0x4>; > - interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; > interrupt-names = "macirq"; > status = "disabled"; > }; >
Neil Armstrong <narmstrong@baylibre.com> writes: > Hi Carlo, > > Le 04/12/2018 17:04, Carlo Caione a écrit : >> 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. > > This is a good news ! > > Kevin, > What's the best procedure here to make it apply on the 4.19, 4.14 and 4.9 stable > trees ? for 4.14 and 4.9 it will need to be reworked to apply correctly. Adding a Fixes: tag where the original bug was introduce is the best way for it to automatically get applied. However, if rework is required, that will have to be manually done and sent to the stable list. Kevin
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/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi index df017dbd2e57..b1a42e99cb67 100644 --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi @@ -143,7 +143,7 @@ compatible = "amlogic,meson-axg-dwmac", "snps,dwmac"; reg = <0x0 0xff3f0000 0x0 0x10000 0x0 0xff634540 0x0 0x8>; - interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "macirq"; clocks = <&clkc CLKID_ETH>, <&clkc CLKID_FCLK_DIV2>, diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi index f1e5cdbade5e..58e6bcaac1d8 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi @@ -462,7 +462,7 @@ compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac"; reg = <0x0 0xc9410000 0x0 0x10000 0x0 0xc8834540 0x0 0x4>; - interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "macirq"; status = "disabled"; };
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. Signed-off-by: Carlo Caione <ccaione@baylibre.com> --- arch/arm/boot/dts/meson.dtsi | 2 +- arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)