diff --git a/drivers/spi/spi-dw-dma.c b/drivers/spi/spi-dw-dma.c index b3e622fb099cea..4a66eea89d0161 100644 --- a/drivers/spi/spi-dw-dma.c +++ b/drivers/spi/spi-dw-dma.c @@ -303,6 +303,11 @@ static int dw_spi_dma_wait_tx_done(struct dw_spi *dws, dev_err(&dws->host->dev, "Tx hanged up\n"); return -EIO; } + + if (!xfer->rx_buf) { + while (dw_readl(dws, DW_SPI_SR) & DW_SPI_SR_BUSY) + cpu_relax(); + } return 0; }