From: Mark Brown <broonie@kernel.org>
To: Jon Lin <jon.lin@rock-chips.com>
Cc: heiko@sntech.de, linux-spi@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] spi: rockchip: Disable local irq when pio write out of interrupt service
Date: Mon, 13 Jun 2022 13:37:14 +0100 [thread overview]
Message-ID: <YqcveggUU7yaXuk1@sirena.org.uk> (raw)
In-Reply-To: <20220613092744.9726-1-jon.lin@rock-chips.com>
[-- Attachment #1: Type: text/plain, Size: 845 bytes --]
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.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2022-06-13 17:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-13 9:27 [PATCH] spi: rockchip: Disable local irq when pio write out of interrupt service Jon Lin
2022-06-13 12:37 ` Mark Brown [this message]
[not found] ` <b97ee70c-70ee-6b15-65d6-a176125dcfd8@rock-chips.com>
2022-06-17 11:45 ` Mark Brown
2022-06-17 12:46 ` Jon Lin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YqcveggUU7yaXuk1@sirena.org.uk \
--to=broonie@kernel.org \
--cc=heiko@sntech.de \
--cc=jon.lin@rock-chips.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).