Messages in this thread | | | From | Kevin Hilman <> | Subject | Re: [PATCH 1/1] PM / Runtime: let rpm_resume fail if rpm disabled and device suspended. | Date | Fri, 20 Jun 2014 14:34:14 -0700 |
| |
Alan Stern <stern@rowland.harvard.edu> writes:
> On Fri, 20 Jun 2014, Rafael J. Wysocki wrote: > >> > For a general device, the fact that dev->power.is_suspended is set >> > means the device _has_ been powered down. Even though the >> > runtime_status may not have changed, the PM core has to assume the >> > device is not available for use. >> >> This seems to go a bit too far. What power.is_suspended actually means is >> that __device_suspend() has run for the device successfully. What the >> implications of that are depends on the bus type (or subsystem in general) >> and device driver. >> >> > While your I2C devices may be useable even after the ->suspend callback >> > returns, for most devices this isn't true. So we shouldn't allow >> > rpm_resume() to return imediately when is_suspended is set. >> >> I can agree with that. > > We really do need to decide more precisely how runtime PM and system PM > will interact.
Yes!
> Should ->runtime_resume callbacks be allowed after ->suspend has > returned?
Abolutely.
> Kevin has stated that some devices do need this ability. But most > don't.
Does it matter if most don't? As long a some do, we need to support this. It may not be "most" devices, but on the (mostly embedded) SoCs I work on, the devices that do need this tend to be rather crucial core devices that are used during the PM of other devices (e.g. I2C, SPI, GPIOs, etc. etc.)
> The PM core needs to handle these conflicting requirements > somehow.
I agree. We've gone back and forth a few times on the various interactions between system PM and runtime PM over the years but it seems there are still things to clarify.
Kevin
| |