| From ac94635b678715af00a685ada0a1b60dfb54c771 Mon Sep 17 00:00:00 2001 |
| From: Martin Sperl <kernel@martin.sperl.org> |
| Date: Mon, 13 May 2019 11:05:27 +0000 |
| Subject: [PATCH] spi: bcm2835: enable shared interrupt support |
| |
| Add shared interrupt support for this driver. |
| |
| Signed-off-by: Martin Sperl <kernel@martin.sperl.org> |
| --- |
| drivers/spi/spi-bcm2835.c | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/spi/spi-bcm2835.c |
| +++ b/drivers/spi/spi-bcm2835.c |
| @@ -379,6 +379,10 @@ static irqreturn_t bcm2835_spi_interrupt |
| if (bs->tx_len && cs & BCM2835_SPI_CS_DONE) |
| bcm2835_wr_fifo_blind(bs, BCM2835_SPI_FIFO_SIZE); |
| |
| + /* check if we got interrupt enabled */ |
| + if (!(bcm2835_rd(bs, BCM2835_SPI_CS) & BCM2835_SPI_CS_INTR)) |
| + return IRQ_NONE; |
| + |
| /* Read as many bytes as possible from FIFO */ |
| bcm2835_rd_fifo(bs); |
| /* Write as many bytes as possible to FIFO */ |
| @@ -1291,7 +1295,8 @@ static int bcm2835_spi_probe(struct plat |
| bcm2835_wr(bs, BCM2835_SPI_CS, |
| BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX); |
| |
| - err = devm_request_irq(&pdev->dev, bs->irq, bcm2835_spi_interrupt, 0, |
| + err = devm_request_irq(&pdev->dev, bs->irq, bcm2835_spi_interrupt, |
| + IRQF_SHARED, |
| dev_name(&pdev->dev), ctlr); |
| if (err) { |
| dev_err(&pdev->dev, "could not request IRQ: %d\n", err); |