mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Merge pull request #4754 from jethome-ru/AR-1522-fix-sdio-port-irq-level-bug-found-in-6-0-kernel
Add SDIO irq patch to fix irq lost in new SDIO irq code (kernel 6.0+)
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
From c72238ca3607996ab56357a02099df0744000726 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Thu, 26 Jan 2023 15:03:17 +0100
|
||||
Subject: [PATCH] arm64: dts: amlogic: Make mmc host controller interrupts
|
||||
level-sensitive
|
||||
|
||||
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>
|
||||
---
|
||||
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 04f797b5a012..73cd1791a13f 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
|
||||
@@ -1885,7 +1885,7 @@ apb: bus@ffe00000 {
|
||||
sd_emmc_b: sd@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>,
|
||||
@@ -1897,7 +1897,7 @@ sd_emmc_b: sd@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 45947c1031c4..894cea697550 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
@@ -2318,7 +2318,7 @@ uart_A: serial@24000 {
|
||||
sd_emmc_a: sd@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>,
|
||||
@@ -2330,7 +2330,7 @@ sd_emmc_a: sd@ffe03000 {
|
||||
sd_emmc_b: sd@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>,
|
||||
@@ -2342,7 +2342,7 @@ sd_emmc_b: sd@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 023a52005494..fa6cff4a2ebc 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
|
||||
@@ -602,21 +602,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";
|
||||
};
|
||||
};
|
||||
--
|
||||
2.30.2
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
From ff5377753d6c681d58547353122cfbec894ec0fa Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Thu, 26 Jan 2023 15:03:17 +0100
|
||||
Subject: [PATCH] arm64: dts: amlogic: Make mmc host controller interrupts
|
||||
level-sensitive
|
||||
|
||||
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>
|
||||
---
|
||||
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 1648e67afbb6..417523dc4cc0 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: sd@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: sd@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 9dbd50820b1c..7f55d97f6c28 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: sd@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: sd@ffe03000 {
|
||||
sd_emmc_b: sd@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: sd@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 e3c12e0be99d..5eed15035b67 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";
|
||||
};
|
||||
};
|
||||
--
|
||||
2.30.2
|
||||
|
||||
Reference in New Issue
Block a user