If by some reason pxa2xx_spi_dma_prepare() fails we have not to ignore its
error. In such case we abort the transfer and return the error to upper level.

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
Cc: Jarkko Nikula <jarkko.nik...@linux.intel.com>
---
 drivers/spi/spi-pxa2xx.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 267a3a2..2e6915c 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -890,6 +890,7 @@ static void pump_transfers(unsigned long data)
        u32 dma_thresh = drv_data->cur_chip->dma_threshold;
        u32 dma_burst = drv_data->cur_chip->dma_burst_size;
        u32 change_mask = pxa2xx_spi_get_ssrc1_change_mask(drv_data);
+       int err;
 
        /* Get current state information */
        message = drv_data->cur_msg;
@@ -1024,7 +1025,12 @@ static void pump_transfers(unsigned long data)
                /* Ensure we have the correct interrupt handler */
                drv_data->transfer_handler = pxa2xx_spi_dma_transfer;
 
-               pxa2xx_spi_dma_prepare(drv_data, dma_burst);
+               err = pxa2xx_spi_dma_prepare(drv_data, dma_burst);
+               if (err) {
+                       message->status = err;
+                       giveback(drv_data);
+                       return;
+               }
 
                /* Clear status and start DMA engine */
                cr1 = chip->cr1 | dma_thresh | drv_data->dma_cr1;
-- 
2.6.4

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to