diff options
author | 2016-02-09 19:10:33 +0100 | |
---|---|---|
committer | 2016-02-10 19:14:57 +0000 | |
commit | f29ab1845f3e2684ba1c6de6c3bd5198e4b1459c (patch) | |
tree | 60f97c2597b0acaa3a7015ee15266f9aeae2d25d /drivers/spi/spi-bcm2835aux.c | |
parent | spi: Allow compile test of bcm2835aux if !GPIOLIB (diff) | |
download | linux-f29ab1845f3e2684ba1c6de6c3bd5198e4b1459c.tar.gz linux-f29ab1845f3e2684ba1c6de6c3bd5198e4b1459c.tar.bz2 linux-f29ab1845f3e2684ba1c6de6c3bd5198e4b1459c.zip |
spi: bcm2835aux: disable tx fifo empty irq
The tx empty irq can be disabled when all data was copied.
This prevents unnecessary interrupts while the last bytes are sent.
Signed-off-by: Stephan Olbrich <stephanolbrich@gmx.de>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-bcm2835aux.c')
-rw-r--r-- | drivers/spi/spi-bcm2835aux.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/spi/spi-bcm2835aux.c b/drivers/spi/spi-bcm2835aux.c index 7de6f8472a81..e1b2fec1db63 100644 --- a/drivers/spi/spi-bcm2835aux.c +++ b/drivers/spi/spi-bcm2835aux.c @@ -212,6 +212,12 @@ static irqreturn_t bcm2835aux_spi_interrupt(int irq, void *dev_id) ret = IRQ_HANDLED; } + if (!bs->tx_len) { + /* disable tx fifo empty interrupt */ + bcm2835aux_wr(bs, BCM2835_AUX_SPI_CNTL1, bs->cntl[1] | + BCM2835_AUX_SPI_CNTL1_IDLE); + } + /* and if rx_len is 0 then wake up completion and disable spi */ if (!bs->rx_len) { bcm2835aux_spi_reset_hw(bs); |