spi: dw-spi: Single Register read to clear IRQs
authorThor Thayer <tthayer@opensource.altera.com>
Fri, 6 Mar 2015 23:46:32 +0000 (17:46 -0600)
committerMark Brown <broonie@kernel.org>
Mon, 9 Mar 2015 18:43:44 +0000 (18:43 +0000)
Instead of clearing the RxU, RxO, and TxO IRQs individually with
3 register reads, a single read of the ICR register will do the
same thing.

Signed-off-by: Thor Thayer <tthayer@opensource.altera.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-dw.c

index 2437bfcbf2f8272c782a885256ad8f7df85eb23e..0f0106933b52cf9fce212c721a52ae5af319af96 100644 (file)
@@ -232,9 +232,7 @@ static irqreturn_t interrupt_transfer(struct dw_spi *dws)
 
        /* Error handling */
        if (irq_status & (SPI_INT_TXOI | SPI_INT_RXOI | SPI_INT_RXUI)) {
-               dw_readw(dws, DW_SPI_TXOICR);
-               dw_readw(dws, DW_SPI_RXOICR);
-               dw_readw(dws, DW_SPI_RXUICR);
+               dw_readw(dws, DW_SPI_ICR);
                int_error_stop(dws, "interrupt_transfer: fifo overrun/underrun");
                return IRQ_HANDLED;
        }