lkml.org 
[lkml]   [2021]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 8/8] spi: stm32: make spurious and overrun interrupts visible
    Date
    We do not expect to receive spurious interrupts so rise a warning
    if it happens.

    RX overrun is an error condition that signals a corrupted RX
    stream both in dma and in irq modes. Report the error and
    abort the transfer in either cases.

    Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
    ---
    drivers/spi/spi-stm32.c | 15 ++++-----------
    1 file changed, 4 insertions(+), 11 deletions(-)

    diff --git a/drivers/spi/spi-stm32.c b/drivers/spi/spi-stm32.c
    index 7692e2778df5..e7699758c609 100644
    --- a/drivers/spi/spi-stm32.c
    +++ b/drivers/spi/spi-stm32.c
    @@ -895,8 +895,8 @@ static irqreturn_t stm32h7_spi_irq_thread(int irq, void *dev_id)
    mask |= STM32H7_SPI_SR_RXP;

    if (!(sr & mask)) {
    - dev_dbg(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n",
    - sr, ier);
    + dev_warn(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n",
    + sr, ier);
    spin_unlock_irqrestore(&spi->lock, flags);
    return IRQ_NONE;
    }
    @@ -923,15 +923,8 @@ static irqreturn_t stm32h7_spi_irq_thread(int irq, void *dev_id)
    }

    if (sr & STM32H7_SPI_SR_OVR) {
    - dev_warn(spi->dev, "Overrun: received value discarded\n");
    - if (!spi->cur_usedma && (spi->rx_buf && (spi->rx_len > 0)))
    - stm32h7_spi_read_rxfifo(spi, false);
    - /*
    - * If overrun is detected while using DMA, it means that
    - * something went wrong, so stop the current transfer
    - */
    - if (spi->cur_usedma)
    - end = true;
    + dev_err(spi->dev, "Overrun: RX data lost\n");
    + end = true;
    }

    if (sr & STM32H7_SPI_SR_EOT) {
    --
    2.17.1
    \
     
     \ /
      Last update: 2021-02-05 12:16    [W:2.601 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site