]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: tegra: Adjust callbacks in tegra_clock_pm
authorRafael J. Wysocki <rafael@kernel.org>
Tue, 6 Jan 2026 12:19:47 +0000 (13:19 +0100)
committerThierry Reding <treding@nvidia.com>
Sat, 17 Jan 2026 00:13:24 +0000 (01:13 +0100)
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 a wrapper around pm_runtime_resume() called
tegra_clock_suspend() 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@intel.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/clk/tegra/clk-device.c

index 8c8e2b853a99609def197fc93b51f9c5f99fb588..e0531f6dcfb026b220b606ccc834a8b02fd5cafd 100644 (file)
@@ -174,8 +174,19 @@ unreg_clk:
  * problem. In practice this makes no difference from a power management
  * perspective since voltage is kept at a nominal level during suspend anyways.
  */
+static inline int tegra_clock_suspend(struct device *dev)
+{
+       int ret;
+
+       ret = pm_runtime_resume(dev);
+       if (ret < 0)
+               return ret;
+
+       return 0;
+}
+
 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(tegra_clock_suspend, NULL)
 };
 
 static const struct of_device_id tegra_clock_match[] = {