aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2019-08-09 19:50:30 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2019-08-27 11:10:01 +0200
commit2340c646e6a5da658e114be2f721ff90853588d4 (patch)
treedf9744d2344e71e8c5d1b75c3e1528bc474313fe /target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch
parent81d0da118694feb874f992093063a2852285d194 (diff)
downloadupstream-2340c646e6a5da658e114be2f721ff90853588d4.tar.gz
upstream-2340c646e6a5da658e114be2f721ff90853588d4.tar.bz2
upstream-2340c646e6a5da658e114be2f721ff90853588d4.zip
brcm2708: update to latest patches from RPi foundation
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch')
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch b/target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch
new file mode 100644
index 0000000000..6c9d7180cd
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0535-mmc-sdhci-Mask-spurious-interrupts.patch
@@ -0,0 +1,29 @@
+From 7028b50bd6d167a4bc57b9a356235d21ace20d55 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 28 Sep 2018 16:24:05 +0100
+Subject: [PATCH 535/773] mmc: sdhci: Mask "spurious" interrupts
+
+Add a filter for "spurious" Transfer Complete interrupts, attempting
+to make it as specific as possible:
+* INT_DATA_END (transfer complete) is set
+* There is a stop command in progress
+* There is no data transfer in progress
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/mmc/host/sdhci.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/mmc/host/sdhci.c
++++ b/drivers/mmc/host/sdhci.c
+@@ -2930,6 +2930,10 @@ static irqreturn_t sdhci_irq(int irq, vo
+ result = IRQ_WAKE_THREAD;
+ }
+
++ if ((intmask & SDHCI_INT_DATA_END) && !host->data &&
++ host->cmd && (host->cmd == host->cmd->mrq->stop))
++ intmask &= ~SDHCI_INT_DATA_END;
++
+ if (intmask & SDHCI_INT_CMD_MASK)
+ sdhci_cmd_irq(host, intmask & SDHCI_INT_CMD_MASK, &intmask);
+