On Tuesday, August 06, 2013 09:38:36 PM Shuah Khan wrote: > On 08/06/2013 03:22 PM, Alan Stern wrote: > > On Tue, 6 Aug 2013, Shuah Khan wrote: > > > >> With the dev_pm_ops model, drivers have to provide interfaces for each > >> one of these states. > > > > No, they don't. They can leave out interfaces if they want. > > Yes. Agreed. There is no need to provide each and every interface. Only > the ones driver wishes to handle. > > > > >> In this case, there will be a conflict since > >> pm_op() treats this state as freeze where as the driver wants to do > >> treat it as a suspend/hibernate. In the case of legacy pm_ops, state is > >> passed in as a parameter and driver could take special action if need > >> be, based on the state, however in dev_pm_ops model, state is not passed > >> in. Instead it is handled with state specific pm_ops interfaces. > >> > >> For example, if this driver were to be converted to dev_pm_ops, it would > >> require a freeze interface which will call sl811h_bus_suspend(). Once > >> that is done, PM_EVENT_PRETHAW will be mapped to freeze() ops and > >> sl811h_bus_suspend() will be called instead of port_power(sl811, 0); > >> > >> What I am getting at is, there is no provision to handle the special > >> case for PM_EVENT_PRETHAW like in the case of this driver when using > >> dev_pm_ops. > > > > Okay. So what? > > > > I am exploring to see if there is a deficiency in dev_pm_ops > infrastructure that needs addressing.
No, there isn't. We determined a few years ago that "freeze" could always be used instead of "prethaw". Moreover, there actually is a "thaw" after that stage if the image restoration fails, so please just use "freeze" here. Or just skip it if it is not really needed. Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/