mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-20 14:16:02 +00:00
spi: spi-fsl-dspi: Reduce indentation level in dspi_interrupt
If the entire function depends on the SPI status register having the interrupt bits asserted, then just check it and exit early if those bits aren't set (such as in the case of the shared IRQ being triggered for the other peripheral). Cosmetic patch. Signed-off-by: Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/20190822211514.19288-2-olteanv@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
795227660d
commit
12fb61a973
1 changed files with 39 additions and 38 deletions
|
@ -658,47 +658,48 @@ static irqreturn_t dspi_interrupt(int irq, void *dev_id)
|
|||
regmap_read(dspi->regmap, SPI_SR, &spi_sr);
|
||||
regmap_write(dspi->regmap, SPI_SR, spi_sr);
|
||||
|
||||
if (!(spi_sr & (SPI_SR_EOQF | SPI_SR_TCFQF)))
|
||||
return IRQ_HANDLED;
|
||||
|
||||
if (spi_sr & (SPI_SR_EOQF | SPI_SR_TCFQF)) {
|
||||
/* Get transfer counter (in number of SPI transfers). It was
|
||||
* reset to 0 when transfer(s) were started.
|
||||
*/
|
||||
regmap_read(dspi->regmap, SPI_TCR, &spi_tcr);
|
||||
spi_tcnt = SPI_TCR_GET_TCNT(spi_tcr);
|
||||
/* Update total number of bytes that were transferred */
|
||||
msg->actual_length += spi_tcnt * dspi->bytes_per_word;
|
||||
/* Get transfer counter (in number of SPI transfers). It was
|
||||
* reset to 0 when transfer(s) were started.
|
||||
*/
|
||||
regmap_read(dspi->regmap, SPI_TCR, &spi_tcr);
|
||||
spi_tcnt = SPI_TCR_GET_TCNT(spi_tcr);
|
||||
/* Update total number of bytes that were transferred */
|
||||
msg->actual_length += spi_tcnt * dspi->bytes_per_word;
|
||||
|
||||
trans_mode = dspi->devtype_data->trans_mode;
|
||||
switch (trans_mode) {
|
||||
case DSPI_EOQ_MODE:
|
||||
dspi_eoq_read(dspi);
|
||||
break;
|
||||
case DSPI_TCFQ_MODE:
|
||||
dspi_tcfq_read(dspi);
|
||||
break;
|
||||
default:
|
||||
dev_err(&dspi->pdev->dev, "unsupported trans_mode %u\n",
|
||||
trans_mode);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
trans_mode = dspi->devtype_data->trans_mode;
|
||||
switch (trans_mode) {
|
||||
case DSPI_EOQ_MODE:
|
||||
dspi_eoq_read(dspi);
|
||||
break;
|
||||
case DSPI_TCFQ_MODE:
|
||||
dspi_tcfq_read(dspi);
|
||||
break;
|
||||
default:
|
||||
dev_err(&dspi->pdev->dev, "unsupported trans_mode %u\n",
|
||||
trans_mode);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
if (!dspi->len) {
|
||||
dspi->waitflags = 1;
|
||||
wake_up_interruptible(&dspi->waitq);
|
||||
} else {
|
||||
switch (trans_mode) {
|
||||
case DSPI_EOQ_MODE:
|
||||
dspi_eoq_write(dspi);
|
||||
break;
|
||||
case DSPI_TCFQ_MODE:
|
||||
dspi_tcfq_write(dspi);
|
||||
break;
|
||||
default:
|
||||
dev_err(&dspi->pdev->dev,
|
||||
"unsupported trans_mode %u\n",
|
||||
trans_mode);
|
||||
}
|
||||
}
|
||||
if (!dspi->len) {
|
||||
dspi->waitflags = 1;
|
||||
wake_up_interruptible(&dspi->waitq);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
switch (trans_mode) {
|
||||
case DSPI_EOQ_MODE:
|
||||
dspi_eoq_write(dspi);
|
||||
break;
|
||||
case DSPI_TCFQ_MODE:
|
||||
dspi_tcfq_write(dspi);
|
||||
break;
|
||||
default:
|
||||
dev_err(&dspi->pdev->dev,
|
||||
"unsupported trans_mode %u\n",
|
||||
trans_mode);
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
|
Loading…
Reference in a new issue