aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-xilinx.c
diff options
context:
space:
mode:
authorRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>2015-08-12 12:04:04 -0400
committerMark Brown <broonie@kernel.org>2015-08-13 07:29:23 -0400
commit16ea9b8ac45bf11d48af6013283e141e8ed86348 (patch)
treee1156622028e17727a314c0b0b56a7ca01380648 /drivers/spi/spi-xilinx.c
parentbc0195aad0daa2ad5b0d76cce22b167bc3435590 (diff)
spi/spi-xilinx: Fix mixed poll/irq mode
Once the module process a transfer in irq mode, the next poll transfer will not work because the transmitter is left in inhibited state. Fixes: 22417352f6b7f623 (Use polling mode on small transfers) Reported-by: Edward Kigwana <ekigwana@scires.com> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/spi/spi-xilinx.c')
-rw-r--r--drivers/spi/spi-xilinx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/spi/spi-xilinx.c b/drivers/spi/spi-xilinx.c
index 133f53a9c1d4..7abf6792cc11 100644
--- a/drivers/spi/spi-xilinx.c
+++ b/drivers/spi/spi-xilinx.c
@@ -302,8 +302,10 @@ static int xilinx_spi_txrx_bufs(struct spi_device *spi, struct spi_transfer *t)
302 remaining_words -= n_words; 302 remaining_words -= n_words;
303 } 303 }
304 304
305 if (use_irq) 305 if (use_irq) {
306 xspi->write_fn(0, xspi->regs + XIPIF_V123B_DGIER_OFFSET); 306 xspi->write_fn(0, xspi->regs + XIPIF_V123B_DGIER_OFFSET);
307 xspi->write_fn(cr, xspi->regs + XSPI_CR_OFFSET);
308 }
307 309
308 return t->len; 310 return t->len;
309} 311}