From: Ricardo Ribalda Delgado Date: Wed, 12 Aug 2015 16:04:04 +0000 (+0200) Subject: spi/spi-xilinx: Fix mixed poll/irq mode X-Git-Tag: v4.1.8~17 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7aa3b3b1d7838a75ad91fce91f187d26aacaa682;p=users%2Fjedix%2Flinux-maple.git spi/spi-xilinx: Fix mixed poll/irq mode commit 16ea9b8ac45bf11d48af6013283e141e8ed86348 upstream. 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 Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/spi/spi-xilinx.c b/drivers/spi/spi-xilinx.c index 8a81a692f764..a339c1e9997a 100644 --- a/drivers/spi/spi-xilinx.c +++ b/drivers/spi/spi-xilinx.c @@ -306,8 +306,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; }