Re: "PM / wakeup: Show wakeup sources stats in sysfs" causes boot warnings

From: Tony Lindgren
Date: Wed Aug 14 2019 - 04:40:20 EST


* Stephen Boyd <swboyd@xxxxxxxxxxxx> [691231 23:00]:
> I also notice that device_set_wakeup_capable() has a check to see if the
> device is registered yet and it skips creating sysfs entries for the
> device if it isn't created in sysfs yet. Why? Just so it can be called
> before the device is created? I guess the same logic is handled by
> dpm_sysfs_add() if the device is registered after calling
> device_set_wakeup_*().

Hmm just guessing.. It's maybe because drivers can enable and disable
the wakeup capability at any point for example like driver/net drivers
do based on WOL etc?

> There's two approaches I see:
>
> 1) Do a similar check for device_set_wakeup_enable() and skip
> adding the wakeup class until dpm_sysfs_add().
>
> 2) Find each case where this happens and only call wakeup APIs
> on the device after the device is added.
>
> I guess it's better to let devices have wakeup modified on them before
> they're registered with the device core?

I think we should at least initially handle case #1 above as multiple
places otherwise seem to break. Then maybe we could add a warning to
help fix all the #2 cases if needed?

Regards,

Tony