2021-06-09 14:19:05

by Ulf Hansson

[permalink] [raw]
Subject: [PATCH v4 3/3] PM: runtime: Clarify documentation when callbacks are unassigned

Recent changes to the PM core allows ->runtime_suspend|resume callbacks to
be unassigned.

In the earlier behaviour the PM core would return -ENOSYS, when trying to
runtime resume a device, for example. Let's update the documentation to
clarify this.

Signed-off-by: Ulf Hansson <[email protected]>
---

Changes in v4:
- This time, really, fix spelling and further clarified the behaviour,
according to comments from Alan.

---
Documentation/power/runtime_pm.rst | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/Documentation/power/runtime_pm.rst b/Documentation/power/runtime_pm.rst
index 18ae21bf7f92..8a0a43811e3a 100644
--- a/Documentation/power/runtime_pm.rst
+++ b/Documentation/power/runtime_pm.rst
@@ -827,6 +827,15 @@ or driver about runtime power changes. Instead, the driver for the device's
parent must take responsibility for telling the device's driver when the
parent's power state changes.

+Note that, in some cases it may not be desirable for subsystems/drivers to call
+pm_runtime_no_callbacks() for their devices. This could be because a subset of
+the runtime PM callbacks needs to be implemented, a platform dependent PM
+domain could get attached to the device or that the device is power managed
+through a supplier device link. For these reasons and to avoid boilerplate code
+in subsystems/drivers, the PM core allows runtime PM callbacks to be
+unassigned. More precisely, if a callback pointer is NULL, the PM core will act
+as though there was a callback and it returned 0.
+
9. Autosuspend, or automatically-delayed suspends
=================================================

--
2.25.1


2021-06-09 17:47:41

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] PM: runtime: Clarify documentation when callbacks are unassigned

On Wed, Jun 09, 2021 at 12:06:10PM +0200, Ulf Hansson wrote:
> Recent changes to the PM core allows ->runtime_suspend|resume callbacks to
> be unassigned.
>
> In the earlier behaviour the PM core would return -ENOSYS, when trying to
> runtime resume a device, for example. Let's update the documentation to
> clarify this.
>
> Signed-off-by: Ulf Hansson <[email protected]>
> ---
>
> Changes in v4:
> - This time, really, fix spelling and further clarified the behaviour,
> according to comments from Alan.
>
> ---
> Documentation/power/runtime_pm.rst | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/Documentation/power/runtime_pm.rst b/Documentation/power/runtime_pm.rst
> index 18ae21bf7f92..8a0a43811e3a 100644
> --- a/Documentation/power/runtime_pm.rst
> +++ b/Documentation/power/runtime_pm.rst
> @@ -827,6 +827,15 @@ or driver about runtime power changes. Instead, the driver for the device's
> parent must take responsibility for telling the device's driver when the
> parent's power state changes.
>
> +Note that, in some cases it may not be desirable for subsystems/drivers to call
> +pm_runtime_no_callbacks() for their devices. This could be because a subset of
> +the runtime PM callbacks needs to be implemented, a platform dependent PM
> +domain could get attached to the device or that the device is power managed
> +through a supplier device link. For these reasons and to avoid boilerplate code
> +in subsystems/drivers, the PM core allows runtime PM callbacks to be
> +unassigned. More precisely, if a callback pointer is NULL, the PM core will act
> +as though there was a callback and it returned 0.
> +
> 9. Autosuspend, or automatically-delayed suspends
> =================================================

Acked-by: Alan Stern <[email protected]>

I don't know what happened before. Maybe the terminal window got
resized without me noticing, so the lines looked too long when they
actually weren't.

Alan Stern

2021-06-11 17:07:44

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] PM: runtime: Clarify documentation when callbacks are unassigned

On Wed, Jun 9, 2021 at 4:16 PM Alan Stern <[email protected]> wrote:
>
> On Wed, Jun 09, 2021 at 12:06:10PM +0200, Ulf Hansson wrote:
> > Recent changes to the PM core allows ->runtime_suspend|resume callbacks to
> > be unassigned.
> >
> > In the earlier behaviour the PM core would return -ENOSYS, when trying to
> > runtime resume a device, for example. Let's update the documentation to
> > clarify this.
> >
> > Signed-off-by: Ulf Hansson <[email protected]>
> > ---
> >
> > Changes in v4:
> > - This time, really, fix spelling and further clarified the behaviour,
> > according to comments from Alan.
> >
> > ---
> > Documentation/power/runtime_pm.rst | 9 +++++++++
> > 1 file changed, 9 insertions(+)
> >
> > diff --git a/Documentation/power/runtime_pm.rst b/Documentation/power/runtime_pm.rst
> > index 18ae21bf7f92..8a0a43811e3a 100644
> > --- a/Documentation/power/runtime_pm.rst
> > +++ b/Documentation/power/runtime_pm.rst
> > @@ -827,6 +827,15 @@ or driver about runtime power changes. Instead, the driver for the device's
> > parent must take responsibility for telling the device's driver when the
> > parent's power state changes.
> >
> > +Note that, in some cases it may not be desirable for subsystems/drivers to call
> > +pm_runtime_no_callbacks() for their devices. This could be because a subset of
> > +the runtime PM callbacks needs to be implemented, a platform dependent PM
> > +domain could get attached to the device or that the device is power managed
> > +through a supplier device link. For these reasons and to avoid boilerplate code
> > +in subsystems/drivers, the PM core allows runtime PM callbacks to be
> > +unassigned. More precisely, if a callback pointer is NULL, the PM core will act
> > +as though there was a callback and it returned 0.
> > +
> > 9. Autosuspend, or automatically-delayed suspends
> > =================================================
>
> Acked-by: Alan Stern <[email protected]>

Applied as 5.14 material along with the [1-2/3] from this series.

Thanks!