aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches-4.9/0011-spi-qup-don-t-re-read-opflags-to-see-if-transaction-.patch
blob: da1569fd12b1820b0b3c0fcfef651a400b74136e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
From ba96e9449a63acd658d8ad0a5b3755b559410999 Mon Sep 17 00:00:00 2001
From: Matthew McClintock <mmcclint@codeaurora.org>
Date: Thu, 10 Mar 2016 16:48:27 -0600
Subject: [PATCH 11/37] spi: qup: don't re-read opflags to see if transaction
 is done for reads

For reads, we will get another interrupt so we need to handle things
then. For writes, we can finish up now.

Signed-off-by: Matthew McClintock <mmcclint@codeaurora.org>
---
 drivers/spi/spi-qup.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/spi/spi-qup.c
+++ b/drivers/spi/spi-qup.c
@@ -567,7 +567,8 @@ static irqreturn_t spi_qup_qup_irq(int i
 	}
 
 	/* re-read opflags as flags may have changed due to actions above */
-	opflags = readl_relaxed(controller->base + QUP_OPERATIONAL);
+	if (opflags & QUP_OP_OUT_SERVICE_FLAG)
+		opflags = readl_relaxed(controller->base + QUP_OPERATIONAL);
 
 	if ((controller->rx_bytes == xfer->len &&
 		(opflags & QUP_OP_MAX_INPUT_DONE_FLAG)) ||  error)