[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2d55ebec-1e42-4ddb-b0e2-529d3b2d7b85@nvidia.com>
Date: Tue, 6 Jan 2026 10:36:00 +0000
From: Jon Hunter <jonathanh@...dia.com>
To: "Rafael J. Wysocki" <rafael@...nel.org>, linux-tegra@...r.kernel.org,
Linux PM <linux-pm@...r.kernel.org>
Cc: Peter De Schrijver <pdeschrijver@...dia.com>,
Prashant Gaikwad <pgaikwad@...dia.com>,
Michael Turquette <mturquette@...libre.com>, Stephen Boyd
<sboyd@...nel.org>, Thierry Reding <thierry.reding@...il.com>,
linux-clk@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>,
Dmitry Osipenko <digetx@...il.com>, Ulf Hansson <ulf.hansson@...aro.org>
Subject: Re: [PATCH v1] clk: tegra: Adjust callbacks in tegra_clock_pm
Hi Rafael,
On 04/01/2026 11:53, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
>
> System suspend and resume callbacks run after the core has bumped
> up the runtime PM usage counters of all devices, so these callbacks
> need not worry about runtime PM reference counting.
>
> Accordingly, to eliminate useless overhead related to runtime PM
> usage counter manipulation, set the suspend callback pointer in
> tegra_clock_pm to pm_runtime_resume() and do not set the resume
> callback in it at all.
>
> This will also facilitate a planned change of the pm_runtime_put()
> return type to void in the future.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> ---
>
> This patch is requisite for converting pm_runtime_put() into a void
> function.
>
> If you decide to pick it up, please let me know.
>
> Otherwise, an ACK or equivalent will be appreciated, but also the lack
> of specific criticism will be eventually regarded as consent.
>
> ---
> drivers/clk/tegra/clk-device.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/drivers/clk/tegra/clk-device.c
> +++ b/drivers/clk/tegra/clk-device.c
> @@ -175,7 +175,7 @@ unreg_clk:
> * perspective since voltage is kept at a nominal level during suspend anyways.
> */
> static const struct dev_pm_ops tegra_clock_pm = {
> - SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_resume_and_get, pm_runtime_put)
> + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_resume, NULL)
> };
>
> static const struct of_device_id tegra_clock_match[] = {
I gave this a quick test and this is causing a suspend regression on
Tegra20 and Tegra30 that use this driver. Looking at the console log
on Tegra20 I see the following errors ...
tegra-clock tegra_clk_sclk: PM: dpm_run_callback(): pm_runtime_resume returns 1
tegra-clock tegra_clk_sclk: PM: failed to suspend: error 1
PM: Some devices failed to suspend, or early wake event detected
Jon
--
nvpublic
Powered by blists - more mailing lists