Re: [RFC] Add "rpm_not_supported" flag

Alan Stern
2014-07-02T14:27:10Z

On Wed, 2 Jul 2014, Rafael J. Wysocki wrote:

> > Then you have no other objections to the patch?
>
> My concern still is that it will be confusing, because people won't read the
> documentation carefully enough and will confuse "runtime PM never used" with
> "hardware can't do PM". I'm not sure how to make that more clear, though.

I could emphasize that distinction a little more strongly in the
documentation.

> Also we have the no_callbacks flag and I wonder if/how it is related to the
> new one. Do we still need both?

They mean different things. The no_callbacks flag is used when we want
the PM core to think the device can be in RPM_SUSPENDED at times (it is
"logically suspended"). rpm_not_supported is used when we want the PM
core to think the device must always be in RPM_ACTIVE.

> In addition to that, I think that "hardware can't do PM" should apply to the
> handling of system suspend resume too.

Maybe. For the use case Dan Williams and I are working on, it doesn't
matter; for other cases it might matter. That's why I named the flag
"rpm_not_supported" -- it applies specifically to runtime PM, not
system PM.

Here's a brief summary of the story behind this patch...

At one point, I suggested to Dan that instead of doing something
special for these devices, we could simply have the runtime_suspend()
routine always return -EBUSY. He didn't like that idea because then
the user would see the device was never powering down but would have no
idea why. The rpm_not_supported flag provides this information to the
user by causing the power/runtime_status attribute to say "not
supported". (Although to be entirely fair, we could just put a message
in the kernel log during probe if the hardware doesn't support runtime
suspend.)

Instead, Dan introduced a messy PM QoS mechanism in commit
e3d105055525. I didn't like that approach, but Greg merged it before I
objected.

Do you have any suggestions?

Alan Stern