aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-atmel.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi-atmel.c')
-rw-r--r--drivers/spi/spi-atmel.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index 23d8f5f56579..9af7841f2e8c 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -1046,6 +1046,7 @@ static int atmel_spi_one_transfer(struct spi_master *master,
1046 struct atmel_spi_device *asd; 1046 struct atmel_spi_device *asd;
1047 int timeout; 1047 int timeout;
1048 int ret; 1048 int ret;
1049 unsigned long dma_timeout;
1049 1050
1050 as = spi_master_get_devdata(master); 1051 as = spi_master_get_devdata(master);
1051 1052
@@ -1103,15 +1104,12 @@ static int atmel_spi_one_transfer(struct spi_master *master,
1103 1104
1104 /* interrupts are disabled, so free the lock for schedule */ 1105 /* interrupts are disabled, so free the lock for schedule */
1105 atmel_spi_unlock(as); 1106 atmel_spi_unlock(as);
1106 ret = wait_for_completion_timeout(&as->xfer_completion, 1107 dma_timeout = wait_for_completion_timeout(&as->xfer_completion,
1107 SPI_DMA_TIMEOUT); 1108 SPI_DMA_TIMEOUT);
1108 atmel_spi_lock(as); 1109 atmel_spi_lock(as);
1109 if (WARN_ON(ret == 0)) { 1110 if (WARN_ON(dma_timeout == 0)) {
1110 dev_err(&spi->dev, 1111 dev_err(&spi->dev, "spi transfer timeout\n");
1111 "spi trasfer timeout, err %d\n", ret);
1112 as->done_status = -EIO; 1112 as->done_status = -EIO;
1113 } else {
1114 ret = 0;
1115 } 1113 }
1116 1114
1117 if (as->done_status) 1115 if (as->done_status)