Message ID | d9721029-780e-09f1-0207-72d3897032a4@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: amlogic: Make mmc host controller interrupts level-sensitive | expand |
Tested 6.1/6.2rc3 on axg (JetHub D1/D1+). On 26/01/2023 17.03, Heiner Kallweit wrote: > The usage of edge-triggered interrupts lead to lost interrupts under load, > see [0]. This was confirmed to be fixed by using level-triggered > interrupts. > The report was about SDIO. However, as the host controller is the same > for SD and MMC, apply the change to all mmc controller instances. > > [0] https://www.spinics.net/lists/linux-mmc/msg73991.html > > Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") > Reported-by: Peter Suti <peter.suti@streamunlimited.com> > Tested-by: Peter Suti <peter.suti@streamunlimited.com> > Cc: stable@vger.kernel.org > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > --- > v2: > - apply the fix also to meson-axg > - apply the fix to all host controller instances > --- > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 4 ++-- > arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +++--- > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 +++--- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > index ed895fb32..a6a3095de 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > @@ -1886,7 +1886,7 @@ apb: bus@ffe00000 { > sd_emmc_b: mmc@5000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x5000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -1898,7 +1898,7 @@ sd_emmc_b: mmc@5000 { > sd_emmc_c: mmc@7000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x7000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > index 6d7272b2c..13fdaba21 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > @@ -2324,7 +2324,7 @@ uart_A: serial@24000 { > sd_emmc_a: mmc@ffe03000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe03000 0x0 0x800>; > - interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_A>, > <&clkc CLKID_SD_EMMC_A_CLK0>, > @@ -2336,7 +2336,7 @@ sd_emmc_a: mmc@ffe03000 { > sd_emmc_b: mmc@ffe05000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe05000 0x0 0x800>; > - interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -2348,7 +2348,7 @@ sd_emmc_b: mmc@ffe05000 { > sd_emmc_c: mmc@ffe07000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe07000 0x0 0x800>; > - interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > index e3c12e0be..5eed15035 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > @@ -603,21 +603,21 @@ apb: apb@d0000000 { > sd_emmc_a: mmc@70000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x70000 0x0 0x800>; > - interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_b: mmc@72000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x72000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_c: mmc@74000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x74000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > };
Hi, On 26/01/2023 15:03, Heiner Kallweit wrote: > The usage of edge-triggered interrupts lead to lost interrupts under load, > see [0]. This was confirmed to be fixed by using level-triggered > interrupts. > The report was about SDIO. However, as the host controller is the same > for SD and MMC, apply the change to all mmc controller instances. Thanks, I applied it in for-next so it runs on the CI tests. > > [0] https://www.spinics.net/lists/linux-mmc/msg73991.html > > Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") I think we should find a better Fixes or perhaps split in 3 so it targets the right commit adding the nodes for each family. If the test doesn't report any breakage, I'll probably ask you that. Neil > Reported-by: Peter Suti <peter.suti@streamunlimited.com> > Tested-by: Peter Suti <peter.suti@streamunlimited.com> > Cc: stable@vger.kernel.org > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > --- > v2: > - apply the fix also to meson-axg > - apply the fix to all host controller instances > --- > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 4 ++-- > arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +++--- > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 +++--- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > index ed895fb32..a6a3095de 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > @@ -1886,7 +1886,7 @@ apb: bus@ffe00000 { > sd_emmc_b: mmc@5000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x5000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -1898,7 +1898,7 @@ sd_emmc_b: mmc@5000 { > sd_emmc_c: mmc@7000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x7000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > index 6d7272b2c..13fdaba21 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > @@ -2324,7 +2324,7 @@ uart_A: serial@24000 { > sd_emmc_a: mmc@ffe03000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe03000 0x0 0x800>; > - interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_A>, > <&clkc CLKID_SD_EMMC_A_CLK0>, > @@ -2336,7 +2336,7 @@ sd_emmc_a: mmc@ffe03000 { > sd_emmc_b: mmc@ffe05000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe05000 0x0 0x800>; > - interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -2348,7 +2348,7 @@ sd_emmc_b: mmc@ffe05000 { > sd_emmc_c: mmc@ffe07000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe07000 0x0 0x800>; > - interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > index e3c12e0be..5eed15035 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > @@ -603,21 +603,21 @@ apb: apb@d0000000 { > sd_emmc_a: mmc@70000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x70000 0x0 0x800>; > - interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_b: mmc@72000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x72000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_c: mmc@74000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x74000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > };
On Thu 26 Jan 2023 at 15:03, Heiner Kallweit <hkallweit1@gmail.com> wrote: > The usage of edge-triggered interrupts lead to lost interrupts under load, > see [0]. This was confirmed to be fixed by using level-triggered > interrupts. > The report was about SDIO. However, as the host controller is the same > for SD and MMC, apply the change to all mmc controller instances. > > [0] https://www.spinics.net/lists/linux-mmc/msg73991.html > > Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") > Reported-by: Peter Suti <peter.suti@streamunlimited.com> > Tested-by: Peter Suti <peter.suti@streamunlimited.com> > Cc: stable@vger.kernel.org > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> On the vim3: Tested-by: Jerome Brunet <jbrunet@baylibre.com> Thanks a lot for this ! > --- > v2: > - apply the fix also to meson-axg > - apply the fix to all host controller instances > --- > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 4 ++-- > arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +++--- > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 +++--- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > index ed895fb32..a6a3095de 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > @@ -1886,7 +1886,7 @@ apb: bus@ffe00000 { > sd_emmc_b: mmc@5000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x5000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -1898,7 +1898,7 @@ sd_emmc_b: mmc@5000 { > sd_emmc_c: mmc@7000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x7000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > index 6d7272b2c..13fdaba21 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > @@ -2324,7 +2324,7 @@ uart_A: serial@24000 { > sd_emmc_a: mmc@ffe03000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe03000 0x0 0x800>; > - interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_A>, > <&clkc CLKID_SD_EMMC_A_CLK0>, > @@ -2336,7 +2336,7 @@ sd_emmc_a: mmc@ffe03000 { > sd_emmc_b: mmc@ffe05000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe05000 0x0 0x800>; > - interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -2348,7 +2348,7 @@ sd_emmc_b: mmc@ffe05000 { > sd_emmc_c: mmc@ffe07000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe07000 0x0 0x800>; > - interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > index e3c12e0be..5eed15035 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > @@ -603,21 +603,21 @@ apb: apb@d0000000 { > sd_emmc_a: mmc@70000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x70000 0x0 0x800>; > - interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_b: mmc@72000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x72000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_c: mmc@74000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x74000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > };
On 27.01.2023 08:59, Neil Armstrong wrote: > Hi, > > On 26/01/2023 15:03, Heiner Kallweit wrote: >> The usage of edge-triggered interrupts lead to lost interrupts under load, >> see [0]. This was confirmed to be fixed by using level-triggered >> interrupts. >> The report was about SDIO. However, as the host controller is the same >> for SD and MMC, apply the change to all mmc controller instances. > > Thanks, I applied it in for-next so it runs on the CI tests. > >> >> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >> >> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") > > I think we should find a better Fixes or perhaps split in 3 so it targets the > right commit adding the nodes for each family. > This would be the cleanest option, right. Practically it shouldn't make much of a difference. The chosen commit is from 2019, SDIO interrupt support has been added just recently, and regarding MMC/SD it seems no problems caused by edge-triggered interrupts are known. > If the test doesn't report any breakage, I'll probably ask you that. > Sure. > Neil > Heiner
On Fri 27 Jan 2023 at 14:02, Heiner Kallweit <hkallweit1@gmail.com> wrote: > On 27.01.2023 08:59, Neil Armstrong wrote: >> Hi, >> >> On 26/01/2023 15:03, Heiner Kallweit wrote: >>> The usage of edge-triggered interrupts lead to lost interrupts under load, >>> see [0]. This was confirmed to be fixed by using level-triggered >>> interrupts. >>> The report was about SDIO. However, as the host controller is the same >>> for SD and MMC, apply the change to all mmc controller instances. >> >> Thanks, I applied it in for-next so it runs on the CI tests. >> >>> >>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >>> >>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") >> >> I think we should find a better Fixes or perhaps split in 3 so it targets the >> right commit adding the nodes for each family. >> > This would be the cleanest option, right. Practically it shouldn't make > much of a difference. The chosen commit is from 2019, SDIO interrupt > support has been added just recently, and regarding MMC/SD it seems no > problems caused by edge-triggered interrupts are known. ... Well, I wonder is this might be linked to instabilities seen with very high speed mode (such as SDR104) and DDR modes. We have seen quite a lot of those over the years. In any case, if it helps stabilize the MMC on amlogic, it would be great if it can be picked up by stable. > >> If the test doesn't report any breakage, I'll probably ask you that. >> > Sure. > >> Neil >> > Heiner
On Fri, Jan 27, 2023 at 10:10 AM Jerome Brunet <jbrunet@baylibre.com> wrote: > > > On Fri 27 Jan 2023 at 14:02, Heiner Kallweit <hkallweit1@gmail.com> wrote: > > > On 27.01.2023 08:59, Neil Armstrong wrote: > >> Hi, > >> > >> On 26/01/2023 15:03, Heiner Kallweit wrote: > >>> The usage of edge-triggered interrupts lead to lost interrupts under load, > >>> see [0]. This was confirmed to be fixed by using level-triggered > >>> interrupts. > >>> The report was about SDIO. However, as the host controller is the same > >>> for SD and MMC, apply the change to all mmc controller instances. > >> > >> Thanks, I applied it in for-next so it runs on the CI tests. > >> > >>> > >>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html > >>> > >>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") > >> > >> I think we should find a better Fixes or perhaps split in 3 so it targets the > >> right commit adding the nodes for each family. > >> > > This would be the cleanest option, right. Practically it shouldn't make > > much of a difference. The chosen commit is from 2019, SDIO interrupt > > support has been added just recently, and regarding MMC/SD it seems no > > problems caused by edge-triggered interrupts are known. > > ... Well, I wonder is this might be linked to instabilities seen with > very high speed mode (such as SDR104) and DDR modes. We have seen quite > a lot of those over the years. In any case, if it helps stabilize the > MMC on amlogic, it would be great if it can be picked up by stable. On S905X, I'm still getting SDR104 failures with this change at both 208MHz and 150MHz so maybe not completely. [ 9.071641] mmc1: tuning execution failed: -5 [ 9.579765] mmc1: tuning execution failed: -5 [ 9.761580] mmc1: tuning execution failed: -5 [ 9.871836] mmc1: tuning execution failed: -5 > > > > >> If the test doesn't report any breakage, I'll probably ask you that. > >> > > Sure. > > > >> Neil > >> > > Heiner > > > _______________________________________________ > linux-amlogic mailing list > linux-amlogic@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-amlogic
On Thu, Jan 26, 2023 at 3:03 PM Heiner Kallweit <hkallweit1@gmail.com> wrote: > > The usage of edge-triggered interrupts lead to lost interrupts under load, > see [0]. This was confirmed to be fixed by using level-triggered > interrupts. > The report was about SDIO. However, as the host controller is the same > for SD and MMC, apply the change to all mmc controller instances. > > [0] https://www.spinics.net/lists/linux-mmc/msg73991.html > > Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") > Reported-by: Peter Suti <peter.suti@streamunlimited.com> > Tested-by: Peter Suti <peter.suti@streamunlimited.com> > Cc: stable@vger.kernel.org > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Thanks Heiner! This fixes the rtw88 SDIO wifi card for me on my SM1 SoC based X96 Air (Gbit variant) after commit 066ecde6d826 ("mmc: meson-gx: add SDIO interrupt support") Best regards, Martin
hi, On 1/26/23 23:03, Heiner Kallweit wrote: > The usage of edge-triggered interrupts lead to lost interrupts under load, > see [0]. This was confirmed to be fixed by using level-triggered > interrupts. > The report was about SDIO. However, as the host controller is the same > for SD and MMC, apply the change to all mmc controller instances. > > [0] https://www.spinics.net/lists/linux-mmc/msg73991.html > > Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") > Reported-by: Peter Suti <peter.suti@streamunlimited.com> > Tested-by: Peter Suti <peter.suti@streamunlimited.com> > Cc: stable@vger.kernel.org > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> this fixes wifi issue on Radxa Zero/Zero2. thank you so much! Tested-by: FUKAUMI Naoki <naoki@radxa.com> -- FUKAUMI Naoki > --- > v2: > - apply the fix also to meson-axg > - apply the fix to all host controller instances > --- > arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 4 ++-- > arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +++--- > arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 +++--- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > index ed895fb32..a6a3095de 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi > @@ -1886,7 +1886,7 @@ apb: bus@ffe00000 { > sd_emmc_b: mmc@5000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x5000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -1898,7 +1898,7 @@ sd_emmc_b: mmc@5000 { > sd_emmc_c: mmc@7000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0x7000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > index 6d7272b2c..13fdaba21 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > @@ -2324,7 +2324,7 @@ uart_A: serial@24000 { > sd_emmc_a: mmc@ffe03000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe03000 0x0 0x800>; > - interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_A>, > <&clkc CLKID_SD_EMMC_A_CLK0>, > @@ -2336,7 +2336,7 @@ sd_emmc_a: mmc@ffe03000 { > sd_emmc_b: mmc@ffe05000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe05000 0x0 0x800>; > - interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_B>, > <&clkc CLKID_SD_EMMC_B_CLK0>, > @@ -2348,7 +2348,7 @@ sd_emmc_b: mmc@ffe05000 { > sd_emmc_c: mmc@ffe07000 { > compatible = "amlogic,meson-axg-mmc"; > reg = <0x0 0xffe07000 0x0 0x800>; > - interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > clocks = <&clkc CLKID_SD_EMMC_C>, > <&clkc CLKID_SD_EMMC_C_CLK0>, > diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > index e3c12e0be..5eed15035 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi > @@ -603,21 +603,21 @@ apb: apb@d0000000 { > sd_emmc_a: mmc@70000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x70000 0x0 0x800>; > - interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_b: mmc@72000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x72000 0x0 0x800>; > - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > > sd_emmc_c: mmc@74000 { > compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; > reg = <0x0 0x74000 0x0 0x800>; > - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; > + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > };
On 03/02/2023 09:03, Da Xue wrote: > On Fri, Jan 27, 2023 at 10:10 AM Jerome Brunet <jbrunet@baylibre.com> wrote: >> >> >> On Fri 27 Jan 2023 at 14:02, Heiner Kallweit <hkallweit1@gmail.com> wrote: >> >>> On 27.01.2023 08:59, Neil Armstrong wrote: >>>> Hi, >>>> >>>> On 26/01/2023 15:03, Heiner Kallweit wrote: >>>>> The usage of edge-triggered interrupts lead to lost interrupts under load, >>>>> see [0]. This was confirmed to be fixed by using level-triggered >>>>> interrupts. >>>>> The report was about SDIO. However, as the host controller is the same >>>>> for SD and MMC, apply the change to all mmc controller instances. >>>> >>>> Thanks, I applied it in for-next so it runs on the CI tests. >>>> >>>>> >>>>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >>>>> >>>>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") >>>> >>>> I think we should find a better Fixes or perhaps split in 3 so it targets the >>>> right commit adding the nodes for each family. >>>> >>> This would be the cleanest option, right. Practically it shouldn't make >>> much of a difference. The chosen commit is from 2019, SDIO interrupt >>> support has been added just recently, and regarding MMC/SD it seems no >>> problems caused by edge-triggered interrupts are known. >> >> ... Well, I wonder is this might be linked to instabilities seen with >> very high speed mode (such as SDR104) and DDR modes. We have seen quite >> a lot of those over the years. In any case, if it helps stabilize the >> MMC on amlogic, it would be great if it can be picked up by stable. > > On S905X, I'm still getting SDR104 failures with this change at both > 208MHz and 150MHz so maybe not completely. > > [ 9.071641] mmc1: tuning execution failed: -5 > [ 9.579765] mmc1: tuning execution failed: -5 > [ 9.761580] mmc1: tuning execution failed: -5 > [ 9.871836] mmc1: tuning execution failed: -5 Are these the same before the change ? or did those appear with the change ? > >> >>> >>>> If the test doesn't report any breakage, I'll probably ask you that. >>>> >>> Sure. >>> >>>> Neil >>>> >>> Heiner >> >> >> _______________________________________________ >> linux-amlogic mailing list >> linux-amlogic@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-amlogic
On Tue 07 Feb 2023 at 09:22, neil.armstrong@linaro.org wrote: > On 03/02/2023 09:03, Da Xue wrote: >> On Fri, Jan 27, 2023 at 10:10 AM Jerome Brunet <jbrunet@baylibre.com> wrote: >>> >>> >>> On Fri 27 Jan 2023 at 14:02, Heiner Kallweit <hkallweit1@gmail.com> wrote: >>> >>>> On 27.01.2023 08:59, Neil Armstrong wrote: >>>>> Hi, >>>>> >>>>> On 26/01/2023 15:03, Heiner Kallweit wrote: >>>>>> The usage of edge-triggered interrupts lead to lost interrupts under load, >>>>>> see [0]. This was confirmed to be fixed by using level-triggered >>>>>> interrupts. >>>>>> The report was about SDIO. However, as the host controller is the same >>>>>> for SD and MMC, apply the change to all mmc controller instances. >>>>> >>>>> Thanks, I applied it in for-next so it runs on the CI tests. >>>>> >>>>>> >>>>>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >>>>>> >>>>>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") >>>>> >>>>> I think we should find a better Fixes or perhaps split in 3 so it targets the >>>>> right commit adding the nodes for each family. >>>>> >>>> This would be the cleanest option, right. Practically it shouldn't make >>>> much of a difference. The chosen commit is from 2019, SDIO interrupt >>>> support has been added just recently, and regarding MMC/SD it seems no >>>> problems caused by edge-triggered interrupts are known. >>> >>> ... Well, I wonder is this might be linked to instabilities seen with >>> very high speed mode (such as SDR104) and DDR modes. We have seen quite >>> a lot of those over the years. In any case, if it helps stabilize the >>> MMC on amlogic, it would be great if it can be picked up by stable. >> On S905X, I'm still getting SDR104 failures with this change at both >> 208MHz and 150MHz so maybe not completely. >> [ 9.071641] mmc1: tuning execution failed: -5 >> [ 9.579765] mmc1: tuning execution failed: -5 >> [ 9.761580] mmc1: tuning execution failed: -5 >> [ 9.871836] mmc1: tuning execution failed: -5 > > Are these the same before the change ? or did those appear with the change ? This is a change Da is carrying in his tree. LePotato is limited to high speed mode @50Mhz in upstream due to previous instabilities with the SDR modes The error above shows a systematic failure to find a valid SDR tuning. It is actually a lot better than an unstable success. IMO, It's another hint that we need to look at high speed modes again with this change. > >> >>> >>>> >>>>> If the test doesn't report any breakage, I'll probably ask you that. >>>>> >>>> Sure. >>>> >>>>> Neil >>>>> >>>> Heiner >>> >>> >>> _______________________________________________ >>> linux-amlogic mailing list >>> linux-amlogic@lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/linux-amlogic
Le 27/01/2023 à 14:02, Heiner Kallweit a écrit : > On 27.01.2023 08:59, Neil Armstrong wrote: >> Hi, >> >> On 26/01/2023 15:03, Heiner Kallweit wrote: >>> The usage of edge-triggered interrupts lead to lost interrupts under load, >>> see [0]. This was confirmed to be fixed by using level-triggered >>> interrupts. >>> The report was about SDIO. However, as the host controller is the same >>> for SD and MMC, apply the change to all mmc controller instances. >> >> Thanks, I applied it in for-next so it runs on the CI tests. >> >>> >>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >>> >>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") >> >> I think we should find a better Fixes or perhaps split in 3 so it targets the >> right commit adding the nodes for each family. >> > This would be the cleanest option, right. Practically it shouldn't make > much of a difference. The chosen commit is from 2019, SDIO interrupt > support has been added just recently, and regarding MMC/SD it seems no > problems caused by edge-triggered interrupts are known. I understand, but the Fixes tag must reflect what commit introduced the breakage, so either keep a single patch but list all commits introducing the MMC, SD & SDIO nodes on the 3 families, or split in 3 and specify the commit introducing the MMC, SD & SDIO node on each family. I'll prefer the later. If the patch isn't applicable for older kernels, it doesn't matter as the stable team will only apply the fix on a tree if it applies and builds. If you target an older release you can submit them a patch reworked to apply correctly if the original patch is already only Linus master tree. And don't forget adding the Tested-by tags. Thanks, Neil > >> If the test doesn't report any breakage, I'll probably ask you that. >> > Sure. > >> Neil >> > Heiner >
On 08.02.2023 13:40, Neil Armstrong wrote: > Le 27/01/2023 à 14:02, Heiner Kallweit a écrit : >> On 27.01.2023 08:59, Neil Armstrong wrote: >>> Hi, >>> >>> On 26/01/2023 15:03, Heiner Kallweit wrote: >>>> The usage of edge-triggered interrupts lead to lost interrupts under load, >>>> see [0]. This was confirmed to be fixed by using level-triggered >>>> interrupts. >>>> The report was about SDIO. However, as the host controller is the same >>>> for SD and MMC, apply the change to all mmc controller instances. >>> >>> Thanks, I applied it in for-next so it runs on the CI tests. >>> >>>> >>>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >>>> >>>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") >>> >>> I think we should find a better Fixes or perhaps split in 3 so it targets the >>> right commit adding the nodes for each family. >>> >> This would be the cleanest option, right. Practically it shouldn't make >> much of a difference. The chosen commit is from 2019, SDIO interrupt >> support has been added just recently, and regarding MMC/SD it seems no >> problems caused by edge-triggered interrupts are known. > > I understand, but the Fixes tag must reflect what commit introduced the breakage, > so either keep a single patch but list all commits introducing the MMC, SD & SDIO nodes > on the 3 families, or split in 3 and specify the commit introducing the MMC, SD & SDIO > node on each family. > > I'll prefer the later. > > If the patch isn't applicable for older kernels, it doesn't matter as the stable team > will only apply the fix on a tree if it applies and builds. > If you target an older release you can submit them a patch reworked to apply > correctly if the original patch is already only Linus master tree. > Do you need a revert for the current "TEST"-annotated commit in linux-next as part of the series? > And don't forget adding the Tested-by tags. > > Thanks, > Neil > >> >>> If the test doesn't report any breakage, I'll probably ask you that. >>> >> Sure. >> >>> Neil >>> >> Heiner >> > Heiner
On 09/02/2023 07:44, Heiner Kallweit wrote: > On 08.02.2023 13:40, Neil Armstrong wrote: >> Le 27/01/2023 à 14:02, Heiner Kallweit a écrit : >>> On 27.01.2023 08:59, Neil Armstrong wrote: >>>> Hi, >>>> >>>> On 26/01/2023 15:03, Heiner Kallweit wrote: >>>>> The usage of edge-triggered interrupts lead to lost interrupts under load, >>>>> see [0]. This was confirmed to be fixed by using level-triggered >>>>> interrupts. >>>>> The report was about SDIO. However, as the host controller is the same >>>>> for SD and MMC, apply the change to all mmc controller instances. >>>> >>>> Thanks, I applied it in for-next so it runs on the CI tests. >>>> >>>>> >>>>> [0] https://www.spinics.net/lists/linux-mmc/msg73991.html >>>>> >>>>> Fixes: 1499218c80c9 ("arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi") >>>> >>>> I think we should find a better Fixes or perhaps split in 3 so it targets the >>>> right commit adding the nodes for each family. >>>> >>> This would be the cleanest option, right. Practically it shouldn't make >>> much of a difference. The chosen commit is from 2019, SDIO interrupt >>> support has been added just recently, and regarding MMC/SD it seems no >>> problems caused by edge-triggered interrupts are known. >> >> I understand, but the Fixes tag must reflect what commit introduced the breakage, >> so either keep a single patch but list all commits introducing the MMC, SD & SDIO nodes >> on the 3 families, or split in 3 and specify the commit introducing the MMC, SD & SDIO >> node on each family. >> >> I'll prefer the later. >> >> If the patch isn't applicable for older kernels, it doesn't matter as the stable team >> will only apply the fix on a tree if it applies and builds. >> If you target an older release you can submit them a patch reworked to apply >> correctly if the original patch is already only Linus master tree. >> > Do you need a revert for the current "TEST"-annotated commit in linux-next > as part of the series? No need, I'll remove it from for-next. Neil > >> And don't forget adding the Tested-by tags. >> >> Thanks, >> Neil >> >>> >>>> If the test doesn't report any breakage, I'll probably ask you that. >>>> >>> Sure. >>> >>>> Neil >>>> >>> Heiner >>> >> > Heiner >
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi index ed895fb32..a6a3095de 100644 --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi @@ -1886,7 +1886,7 @@ apb: bus@ffe00000 { sd_emmc_b: mmc@5000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x5000 0x0 0x800>; - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_CLK0>, @@ -1898,7 +1898,7 @@ sd_emmc_b: mmc@5000 { sd_emmc_c: mmc@7000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x7000 0x0 0x800>; - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_SD_EMMC_C_CLK0>, diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi index 6d7272b2c..13fdaba21 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi @@ -2324,7 +2324,7 @@ uart_A: serial@24000 { sd_emmc_a: mmc@ffe03000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0xffe03000 0x0 0x800>; - interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_A>, <&clkc CLKID_SD_EMMC_A_CLK0>, @@ -2336,7 +2336,7 @@ sd_emmc_a: mmc@ffe03000 { sd_emmc_b: mmc@ffe05000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0xffe05000 0x0 0x800>; - interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_CLK0>, @@ -2348,7 +2348,7 @@ sd_emmc_b: mmc@ffe05000 { sd_emmc_c: mmc@ffe07000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0xffe07000 0x0 0x800>; - interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_SD_EMMC_C_CLK0>, diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi index e3c12e0be..5eed15035 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi @@ -603,21 +603,21 @@ apb: apb@d0000000 { sd_emmc_a: mmc@70000 { compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; reg = <0x0 0x70000 0x0 0x800>; - interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; sd_emmc_b: mmc@72000 { compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; reg = <0x0 0x72000 0x0 0x800>; - interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; sd_emmc_c: mmc@74000 { compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; reg = <0x0 0x74000 0x0 0x800>; - interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; };