diff options
-rw-r--r-- | drivers/spi/spi_bfin5xx.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c index ab483a0ec6d0..d3da41d3f92d 100644 --- a/drivers/spi/spi_bfin5xx.c +++ b/drivers/spi/spi_bfin5xx.c | |||
@@ -504,6 +504,15 @@ static irqreturn_t bfin_spi_dma_irq_handler(int irq, void *dev_id) | |||
504 | "in dma_irq_handler dmastat:0x%x spistat:0x%x\n", | 504 | "in dma_irq_handler dmastat:0x%x spistat:0x%x\n", |
505 | dmastat, spistat); | 505 | dmastat, spistat); |
506 | 506 | ||
507 | if (drv_data->rx != NULL) { | ||
508 | u16 cr = read_CTRL(drv_data); | ||
509 | /* discard old RX data and clear RXS */ | ||
510 | bfin_spi_dummy_read(drv_data); | ||
511 | write_CTRL(drv_data, cr & ~BIT_CTL_ENABLE); /* Disable SPI */ | ||
512 | write_CTRL(drv_data, cr & ~BIT_CTL_TIMOD); /* Restore State */ | ||
513 | write_STAT(drv_data, BIT_STAT_CLR); /* Clear Status */ | ||
514 | } | ||
515 | |||
507 | clear_dma_irqstat(drv_data->dma_channel); | 516 | clear_dma_irqstat(drv_data->dma_channel); |
508 | 517 | ||
509 | /* | 518 | /* |