[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YqcveggUU7yaXuk1@sirena.org.uk>
Date: Mon, 13 Jun 2022 13:37:14 +0100
From: Mark Brown <broonie@...nel.org>
To: Jon Lin <jon.lin@...k-chips.com>
Cc: heiko@...ech.de, linux-spi@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] spi: rockchip: Disable local irq when pio write out of
interrupt service
On Mon, Jun 13, 2022 at 05:27:44PM +0800, Jon Lin wrote:
> Avoid interrupt come and interrupt the pio_writer.
>
> + spin_lock_irqsave(&rs->lock, flags);
> + tx_free = rs->fifo_len - readl_relaxed(rs->regs + ROCKCHIP_SPI_TXFLR);
> + words = min(rs->tx_left, tx_free);
> rs->tx_left -= words;
> for (; words; words--) {
> u32 txw;
> @@ -308,6 +313,7 @@ static void rockchip_spi_pio_writer(struct rockchip_spi *rs)
> writel_relaxed(txw, rs->regs + ROCKCHIP_SPI_TXDR);
> rs->tx += rs->n_bytes;
> }
> + spin_unlock_irqrestore(&rs->lock, flags);
So this is effectively just disabling interrupts during PIO, there's no
other users of the lock which is rather heavyweight. What's the actual
issue here? We should also have something saying what's going on in the
code since right now the lock just looks redundant.
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists