On Thu, Sep 2, 2010 at 1:45 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Thu, 2 Sep 2010, Colin Cross wrote: > >> >> I think it would be better to change device_pm_init() and add a >> >> complete_all(). >> > >> > I agree. >> That would work, and was my first solution, but it increases the >> reliance on the completion variable being left completed between state >> transitions, which is undocumented and unnecessary. It seems more >> straightforward to me to only wait on the parent if the parent is >> suspended. > > How about calling complete_all() from within dpm_prepare() as well? > Then it will get initialized properly at the beginning of every sleep > transition. That would work, but I still don't see why it's better. With either of your changes, the power.completion variable is storing state, and not just used for notification. However, the exact meaning of that state is unclear, especially during the transition from an aborted suspend to resume, and the state is duplicating power.status. Setting it to complete in dpm_prepare is especially confusing, because at that point nothing is completed, it hasn't even been started. _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm