Re: [PATCH v2] arm64: dts: amlogic: Fix SDIO interrupt and make it level-sensitive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>>
>>




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux