Re: sl811h_suspend() and PM_EVENT_PRETHAW state handling

From: Shuah Khan
Date: Tue Aug 06 2013 - 17:38:44 EST

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. Based on this example, there is a
need for a way to allow drivers that want to do something state specific
that is different from the defined framework if need be.

-- Shuah

Shuah Khan, Linux Kernel Developer - Open Source Group Samsung Research
America (Silicon Valley) | (970) 672-0658
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at