summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-cadence.c
diff options
context:
space:
mode:
authorMark Brown2018-06-04 12:51:12 +0200
committerMark Brown2018-06-04 12:51:12 +0200
commit16c10b3bf84df5564683c704039f6199b8359b16 (patch)
tree3d25504362f952e0dd87a200b0d1050280539b81 /drivers/spi/spi-cadence.c
parentspi: Fix typo on SPI_MEM help text (diff)
parentspi: sh-msiof: Fix setting SIRMDR1.SYNCAC to match SITMDR1.SYNCAC (diff)
downloadkernel-qcow2-linux-16c10b3bf84df5564683c704039f6199b8359b16.tar.gz
kernel-qcow2-linux-16c10b3bf84df5564683c704039f6199b8359b16.tar.xz
kernel-qcow2-linux-16c10b3bf84df5564683c704039f6199b8359b16.zip
Merge branch 'spi-4.17' into spi-4.18 for the merge window
Diffstat (limited to 'drivers/spi/spi-cadence.c')
-rw-r--r--drivers/spi/spi-cadence.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c
index de394422b611..f3dad6fcdc35 100644
--- a/drivers/spi/spi-cadence.c
+++ b/drivers/spi/spi-cadence.c
@@ -313,6 +313,14 @@ static void cdns_spi_fill_tx_fifo(struct cdns_spi *xspi)
while ((trans_cnt < CDNS_SPI_FIFO_DEPTH) &&
(xspi->tx_bytes > 0)) {
+
+ /* When xspi in busy condition, bytes may send failed,
+ * then spi control did't work thoroughly, add one byte delay
+ */
+ if (cdns_spi_read(xspi, CDNS_SPI_ISR) &
+ CDNS_SPI_IXR_TXFULL)
+ usleep_range(10, 20);
+
if (xspi->txbuf)
cdns_spi_write(xspi, CDNS_SPI_TXD, *xspi->txbuf++);
else