From: Brian Norris <briannorris@chromium.org>
To: Jon Lin <jon.lin@rock-chips.com>
Cc: broonie@kernel.org, linux-rockchip@lists.infradead.org,
linux-kernel@vger.kernel.org, heiko@sntech.de,
linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org
Subject: Re: [PATCH] spi: rockchip: Avoid redundant clock disable in pm operation
Date: Mon, 26 Aug 2024 15:27:18 -0700 [thread overview]
Message-ID: <Zs0BRsNdZdI69aXM@google.com> (raw)
In-Reply-To: <20240825035422.900370-1-jon.lin@rock-chips.com>
(NB: I have several nearly identical copies of this email. I'm replying
to the latest one I see.)
Hi Jon,
On Sun, Aug 25, 2024 at 11:54:22AM +0800, Jon Lin wrote:
> Fix WARN_ON:
> [ 22.869352][ T1885] clk_spi0 already unprepared
> [ 22.869379][ T1885] WARNING: CPU: 3 PID: 1885 at drivers/clk/clk.c:813 clk_core_unprepare+0xbc4
> [ 22.869380][ T1885] Modules linked in: bcmdhd dhd_static_buf
> [ 22.869391][ T1885] CPU: 3 PID: 1885 Comm: Binder:355_2 Tainted: G W 5.10.66 #59
> [ 22.869393][ T1885] Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT)
> [ 22.869397][ T1885] pstate: 60400009 (nZCv daif +PAN -UAO -TCO BTYPE=--)
> [ 22.869401][ T1885] pc : clk_core_unprepare+0xbc/0x214
> [ 22.869404][ T1885] lr : clk_core_unprepare+0xbc/0x214
I appreciate the snippet of a WARNING trace, but I'd also appreciate
some actual explanation of what the problem is, and why you're solving
it this way.
> Fixes: e882575efc77 ("spi: rockchip: Suspend and resume the bus during NOIRQ_SYSTEM_SLEEP_PM ops")
> Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
> ---
>
> drivers/spi/spi-rockchip.c | 57 +++++++++++++++++---------------------
> 1 file changed, 26 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c
> index e1ecd96c7858..043a7739c330 100644
> --- a/drivers/spi/spi-rockchip.c
> +++ b/drivers/spi/spi-rockchip.c
> +#ifdef CONFIG_PM_SLEEP
> +static int rockchip_spi_suspend(struct device *dev)
> {
> + int ret;
> struct spi_controller *ctlr = dev_get_drvdata(dev);
> - struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
>
> - clk_disable_unprepare(rs->spiclk);
> - clk_disable_unprepare(rs->apb_pclk);
> + ret = spi_controller_suspend(ctlr);
> + if (ret < 0)
> + return ret;
> +
> + /* Avoid redundant clock disable */
> + if (!pm_runtime_status_suspended(dev))
> + rockchip_spi_runtime_suspend(dev);
It seems like you'd really be served well by
pm_runtime_force_{suspend,resume}() here, and in fact, that's what this
driver used to use before the breaking change (commit
e882575efc77). Why aren't you just going back to using it? (This is the
kind of thing I might expect in your commit message -- reasoning as to
why you're doing what you're doing.)
And in fact, I already submitted a patch that resolves the above problem
and does exactly that:
https://lore.kernel.org/all/20240823214235.1718769-1-briannorris@chromium.org/
[PATCH] spi: rockchip: Resolve unbalanced runtime PM / system PM handling
Do you see any problem with it?
Thanks,
Brian
> + pinctrl_pm_select_sleep_state(dev);
>
> return 0;
> }
next parent reply other threads:[~2024-08-26 22:27 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20240825035422.900370-1-jon.lin@rock-chips.com>
2024-08-26 22:27 ` Brian Norris [this message]
2024-08-27 1:32 ` [PATCH] spi: rockchip: Avoid redundant clock disable in pm operation Jon Lin
2024-08-27 2:59 ` Brian Norris
2024-08-28 7:09 ` Jon Lin
2024-08-27 3:05 ` Brian Norris
2024-08-24 5:14 Jon Lin
-- strict thread matches above, loose matches on Subject: below --
2024-08-24 5:07 Jon Lin
2024-08-24 4:57 Jon Lin
2024-08-24 17:02 ` Kuan-Wei Chiu
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=Zs0BRsNdZdI69aXM@google.com \
--to=briannorris@chromium.org \
--cc=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