On 25.01.2023 09:30, Peter Suti wrote: > On Wed, Jan 25, 2023 at 8:00 AM Heiner Kallweit <hkallweit1@xxxxxxxxx> wrote: >> >> SDIO specification defines that the interrupt is level-sensitive. >> Fix the interrupt trigger type for emmc_a accordingly. >> See comment at beginning of the file wrt which is the SDIO port. >> mmc2 = &sd_emmc_a; /* SDIO */ >> >> 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. >> >> Note: >> SDIO interrupt support was added in Linux just recently, however other >> users of this dts may be affected too. >> >> [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@xxxxxxxxxxxxxxxxxxx> >> Tested-by: Peter Suti <peter.suti@xxxxxxxxxxxxxxxxxxx> >> Cc: stable@xxxxxxxxxxxxxxx >> Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> >> --- >> v2: >> - rebase considering recent node name change sd -> mmc for sd_emmc_a >> --- >> arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +- >> arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 2 +- >> 2 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi >> index 1a931d5c2..c09eb9f6f 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>, >> diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi >> index a79a35e84..ae1a5a568 100644 >> --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi >> +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi >> @@ -603,7 +603,7 @@ 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"; >> }; >> >> -- >> 2.39.1 >> > > Please also change arch/arm64/boot/dts/amlogic/meson-axg.dtsi > sd_emmc_b because it was tested on that platform. > I'm not sure whether sd_emmc_b is used as SDIO port on all axg systems. Maybe one of the maintainers can comment on it. If systems may use sd_emmc_b differently, then overriding the interrupt trigger type should be done in the respective board file that includes meson-axg.dtsi. >> >> _______________________________________________ >> linux-amlogic mailing list >> linux-amlogic@xxxxxxxxxxxxxxxxxxx >> http://lists.infradead.org/mailman/listinfo/linux-amlogic >> >>