diff options
author | Stijn Tintel <stijn@linux-ipv6.be> | 2016-08-22 19:05:45 +0200 |
---|---|---|
committer | Stijn Tintel <stijn@linux-ipv6.be> | 2016-08-23 10:51:17 +0300 |
commit | 8072264b96785184b76aa46bcd08b4f9cdfada42 (patch) | |
tree | 3a50dec26a5eb09091897a3ab98a4cfc1de170f4 /target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch | |
parent | 861f566e340dcf5fedd52c0ff3b31501fd3b3f1b (diff) | |
download | upstream-8072264b96785184b76aa46bcd08b4f9cdfada42.tar.gz upstream-8072264b96785184b76aa46bcd08b4f9cdfada42.tar.bz2 upstream-8072264b96785184b76aa46bcd08b4f9cdfada42.zip |
kernel: update kernel 4.4 to version 4.4.19
Refresh patches for all targets that support kernel 4.4.
Compile-tested on all targets that use kernel 4.4 and aren't marked broken.
Runtime-tested on ar71xx, octeon and x86/64.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Diffstat (limited to 'target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch')
-rw-r--r-- | target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch b/target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch index d8a9b31462..0039962481 100644 --- a/target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch +++ b/target/linux/ipq806x/patches-4.4/714-spi-qup-properly-detect-extra-interrupts.patch @@ -17,22 +17,20 @@ Signed-off-by: Matthew McClintock <mmcclint@codeaurora.org> drivers/spi/spi-qup.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) -diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c -index e487416..45e30c7 100644 --- a/drivers/spi/spi-qup.c +++ b/drivers/spi/spi-qup.c -@@ -509,6 +509,7 @@ static irqreturn_t spi_qup_qup_irq(int irq, void *dev_id) +@@ -509,6 +509,7 @@ static irqreturn_t spi_qup_qup_irq(int i u32 opflags, qup_err, spi_err; unsigned long flags; int error = 0; + bool done = 0; - + spin_lock_irqsave(&controller->lock, flags); xfer = controller->xfer; -@@ -567,16 +568,19 @@ static irqreturn_t spi_qup_qup_irq(int irq, void *dev_id) +@@ -567,16 +568,19 @@ static irqreturn_t spi_qup_qup_irq(int i spi_qup_write(controller, xfer); } - + - spin_lock_irqsave(&controller->lock, flags); - controller->error = error; - controller->xfer = xfer; @@ -40,7 +38,7 @@ index e487416..45e30c7 100644 - /* re-read opflags as flags may have changed due to actions above */ opflags = readl_relaxed(controller->base + QUP_OPERATIONAL); - + if ((controller->rx_bytes == xfer->len && (opflags & QUP_OP_MAX_INPUT_DONE_FLAG)) || error) + done = true; @@ -52,9 +50,9 @@ index e487416..45e30c7 100644 + + if (done) complete(&controller->done); - + return IRQ_HANDLED; -@@ -769,7 +773,6 @@ static int spi_qup_transfer_one(struct spi_master *master, +@@ -769,7 +773,6 @@ static int spi_qup_transfer_one(struct s exit: spi_qup_set_state(controller, QUP_STATE_RESET); spin_lock_irqsave(&controller->lock, flags); @@ -62,6 +60,3 @@ index e487416..45e30c7 100644 if (!ret) ret = controller->error; spin_unlock_irqrestore(&controller->lock, flags); --- -2.7.2 - |