aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi-fsl-dspi.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
index bc64700b514d..b1ee1f521ba0 100644
--- a/drivers/spi/spi-fsl-dspi.c
+++ b/drivers/spi/spi-fsl-dspi.c
@@ -714,7 +714,7 @@ static int dspi_transfer_one_message(struct spi_master *master,
714 SPI_RSER_TFFFE | SPI_RSER_TFFFD | 714 SPI_RSER_TFFFE | SPI_RSER_TFFFD |
715 SPI_RSER_RFDFE | SPI_RSER_RFDFD); 715 SPI_RSER_RFDFE | SPI_RSER_RFDFD);
716 status = dspi_dma_xfer(dspi); 716 status = dspi_dma_xfer(dspi);
717 goto out; 717 break;
718 default: 718 default:
719 dev_err(&dspi->pdev->dev, "unsupported trans_mode %u\n", 719 dev_err(&dspi->pdev->dev, "unsupported trans_mode %u\n",
720 trans_mode); 720 trans_mode);
@@ -722,9 +722,13 @@ static int dspi_transfer_one_message(struct spi_master *master,
722 goto out; 722 goto out;
723 } 723 }
724 724
725 if (wait_event_interruptible(dspi->waitq, dspi->waitflags)) 725 if (trans_mode != DSPI_DMA_MODE) {
726 dev_err(&dspi->pdev->dev, "wait transfer complete fail!\n"); 726 if (wait_event_interruptible(dspi->waitq,
727 dspi->waitflags = 0; 727 dspi->waitflags))
728 dev_err(&dspi->pdev->dev,
729 "wait transfer complete fail!\n");
730 dspi->waitflags = 0;
731 }
728 732
729 if (transfer->delay_usecs) 733 if (transfer->delay_usecs)
730 udelay(transfer->delay_usecs); 734 udelay(transfer->delay_usecs);