diff options
-rw-r--r-- | drivers/spi/spi-fsl-dspi.c | 12 |
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); |