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