Blackfin SPI Driver: do not check for SPI errors if DMA itself did not flag any
authorMike Frysinger <vapier.adi@gmail.com>
Tue, 7 Apr 2009 02:00:38 +0000 (19:00 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Apr 2009 15:31:05 +0000 (08:31 -0700)
We only need to check SPI error when DMA failes, cause that is the DMA IRQ
handling routine.

Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/spi/spi_bfin5xx.c

index 5acec9ff01754ad494b76d01aa973c27a8f55ef5..5ebb67b011d05a944b01453b4b77a15dc650baea 100644 (file)
@@ -587,7 +587,7 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id)
        while (!(read_STAT(drv_data) & SPIF))
                cpu_relax();
 
-       if (spistat & RBSY) {
+       if ((dmastat & DMA_ERR) && (spistat & RBSY)) {
                msg->state = ERROR_STATE;
                dev_err(&drv_data->pdev->dev, "dma receive: fifo/buffer overflow\n");
        } else {