diff options
author | Thor Thayer <tthayer@opensource.altera.com> | 2015-03-06 18:46:32 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-09 14:43:44 -0400 |
commit | 2306509605d3cb45b8480089af2d282600650e9e (patch) | |
tree | 8c1e900986fbb420106e08f432e3b107f1e3a8b2 | |
parent | d744f82683e8cc8b49ca8f329a289c6692a9fb06 (diff) |
spi: dw-spi: Single Register read to clear IRQs
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>
-rw-r--r-- | drivers/spi/spi-dw.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index 2437bfcbf2f8..0f0106933b52 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c | |||
@@ -232,9 +232,7 @@ static irqreturn_t interrupt_transfer(struct dw_spi *dws) | |||
232 | 232 | ||
233 | /* Error handling */ | 233 | /* Error handling */ |
234 | if (irq_status & (SPI_INT_TXOI | SPI_INT_RXOI | SPI_INT_RXUI)) { | 234 | if (irq_status & (SPI_INT_TXOI | SPI_INT_RXOI | SPI_INT_RXUI)) { |
235 | dw_readw(dws, DW_SPI_TXOICR); | 235 | dw_readw(dws, DW_SPI_ICR); |
236 | dw_readw(dws, DW_SPI_RXOICR); | ||
237 | dw_readw(dws, DW_SPI_RXUICR); | ||
238 | int_error_stop(dws, "interrupt_transfer: fifo overrun/underrun"); | 236 | int_error_stop(dws, "interrupt_transfer: fifo overrun/underrun"); |
239 | return IRQ_HANDLED; | 237 | return IRQ_HANDLED; |
240 | } | 238 | } |