diff options
author | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> | 2015-08-12 18:04:04 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-08-13 12:29:23 +0100 |
commit | 16ea9b8ac45bf11d48af6013283e141e8ed86348 (patch) | |
tree | e1156622028e17727a314c0b0b56a7ca01380648 /drivers/spi | |
parent | bc0195aad0daa2ad5b0d76cce22b167bc3435590 (diff) | |
download | op-kernel-dev-16ea9b8ac45bf11d48af6013283e141e8ed86348.zip op-kernel-dev-16ea9b8ac45bf11d48af6013283e141e8ed86348.tar.gz |
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')
-rw-r--r-- | drivers/spi/spi-xilinx.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/spi/spi-xilinx.c b/drivers/spi/spi-xilinx.c index 133f53a..7abf679 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) remaining_words -= n_words; } - if (use_irq) + if (use_irq) { xspi->write_fn(0, xspi->regs + XIPIF_V123B_DGIER_OFFSET); + xspi->write_fn(cr, xspi->regs + XSPI_CR_OFFSET); + } return t->len; } |