[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210608090250.85256-1-ulf.hansson@linaro.org>
Date: Tue, 8 Jun 2021 11:02:47 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: "Rafael J . Wysocki" <rjw@...ysocki.net>, linux-pm@...r.kernel.org
Cc: Ulf Hansson <ulf.hansson@...aro.org>,
Saravana Kannan <saravanak@...gle.com>,
Alan Stern <stern@...land.harvard.edu>,
Adrian Hunter <adrian.hunter@...el.com>,
Tony Lindgren <tony@...mide.com>,
Kevin Hilman <khilman@...nel.org>,
Geert Uytterhoeven <geert+renesas@...der.be>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [PATCH v2 0/3] PM: runtime: Update behaviour for no callbacks
While reviewing a patch on the mmc-list, I ended up inspecting the behaviour of
how we deal with the no callback case for runtime PM.
A couple of observations:
*) When pm_runtime_no_callbacks() have been called, it allows the PM core to
takes a quicker path, but at the same time, consumer/supplier device links are
being skipped in rpm_resume|suspend().
**) Calling pm_runtime_no_callbacks() to avoid boiler plate code (assigning
empty functions to ->runtime_suspend|resume()), doesn't work if there could be
consumer/supplier device link being used or a platform dependent PM domain that
could get attached to the device.
Therefore, this series suggests to change the behaviour in the PM core, to
allow the ->runtime_suspend|resume() callbacks to be unassigned. This is already
supported for ->runtime_idle() callbacks, so it would also move things into a
more consistent behaviour.
I have looked at various error paths, in the kernel of callers of
pm_runtime_get_sync(). I couldn't find anyone that made sense, that looked for
the special error code, -ENOSYS, which is the error code getting returned when a
callback is missing. Whether that is sufficient proof that these changes are
100% safe, I can't guarantee, but I think it would be worth a try as the
benefits of avoiding boilerplate code and the corresponding additional code
paths are quite nice, if you ask me.
Kind regards
Ulf Hansson
Ulf Hansson (3):
PM: runtime: Improve path in rpm_idle() when no callback
PM: runtime: Allow unassigned ->runtime_suspend|resume callbacks
PM: runtime: Clarify documentation when callbacks are unassigned
Documentation/power/runtime_pm.rst | 8 ++++++++
drivers/base/power/runtime.c | 18 ++++++++----------
2 files changed, 16 insertions(+), 10 deletions(-)
--
2.25.1
Powered by blists - more mailing lists