mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 39afbd02cb63d932d495e91f68800efd59d620af Mon Sep 17 00:00:00 2001
 | 
						|
From: Phil Elwell <phil@raspberrypi.org>
 | 
						|
Date: Fri, 28 Sep 2018 16:24:05 +0100
 | 
						|
Subject: [PATCH 545/678] 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(+)
 | 
						|
 | 
						|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
 | 
						|
index c749d3dc1d36..bb753ba947d8 100644
 | 
						|
--- a/drivers/mmc/host/sdhci.c
 | 
						|
+++ b/drivers/mmc/host/sdhci.c
 | 
						|
@@ -2930,6 +2930,10 @@ static irqreturn_t sdhci_irq(int irq, void *dev_id)
 | 
						|
 			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);
 | 
						|
 
 | 
						|
-- 
 | 
						|
2.19.1
 | 
						|
 |