summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-bcm2835aux.c
diff options
context:
space:
mode:
authorStephan Olbrich <stephanolbrich@gmx.de>2016-02-09 19:10:33 +0100
committerMark Brown <broonie@kernel.org>2016-02-10 20:14:57 +0100
commitf29ab1845f3e2684ba1c6de6c3bd5198e4b1459c (patch)
tree60f97c2597b0acaa3a7015ee15266f9aeae2d25d /drivers/spi/spi-bcm2835aux.c
parentspi: Allow compile test of bcm2835aux if !GPIOLIB (diff)
downloadlinux-f29ab1845f3e2684ba1c6de6c3bd5198e4b1459c.tar.xz
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.c6
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);