Re: [PATCH v8 3/4] PM / sleep: Go direct_complete if driver has no callbacks

From: Rafael J. Wysocki
Date: Fri Oct 02 2015 - 09:14:38 EST


On Friday, October 02, 2015 10:40:49 AM Ulf Hansson wrote:
> On 2 October 2015 at 10:10, Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> wrote:
> > On 2 October 2015 at 09:48, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
> >> On 2 October 2015 at 09:14, Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> wrote:
> >>> If a suitable prepare callback cannot be found for a given device and
> >>> its driver has no PM callbacks at all, assume that it can go direct to
> >>> complete when the system goes to sleep.
> >>>
> >>> The reason for this is that there's lots of devices in a system that do
> >>> no PM at all and there's no reason for them to prevent their ancestors
> >>> to do direct_complete if they can support it.
> >>>
> >>> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
> >>> ---
> >>>
> >>> Changes in v8:
> >>> - Move no_pm_callbacks field into CONFIG_PM_SLEEP
> >>> - Call device_check_pm_callbacks only after a device is bound or unbound
> >>
> >> Devices that don't use a driver, will not get this feature for "free".
> >> I expect in those cases, they will have to call
> >> device_check_pm_callbacks() themselves, right?
> >
> > You are right, but wonder if we shouldn't go back to calling
> > device_check_pm_callbacks() from device_pm_add() and
> > dev_pm_domain_set() so they don't have to.
>
> That seems reasonable to me, and I didn't quite understand why you
> decided to remove it. :-)

Right.

device_check_pm_callbacks() needs to be called on device registration too
(in case the device doesn't have a driver and doesn't use a PM domain) and
it won't hurt to call it in dev_pm_domain_set() either, although that likely
will be redundant in the majority of cases.

Thanks,
Rafael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/