Re: [PATCH v3 02/11] USB: dwc3: Adjust runtime pm to allow autosuspend

From: Vivek Gautam
Date: Wed Apr 03 2013 - 02:05:50 EST


Hi Felipe,


On Tue, Apr 2, 2013 at 1:59 PM, Felipe Balbi <balbi@xxxxxx> wrote:
> On Mon, Apr 01, 2013 at 07:24:01PM +0530, Vivek Gautam wrote:
>> The current code in the dwc3 probe effectively disables runtime pm
>> from ever working because it calls a get() that was never put() until
>> device removal. Change the runtime pm code to match the standard
>> formula and allow runtime pm to function.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@xxxxxxxxxxx>
>> CC: Doug Anderson <dianders@xxxxxxxxxxxx>
>> ---
>> drivers/usb/dwc3/core.c | 8 +++++++-
>> 1 files changed, 7 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
>> index e2325ad..3a6993c 100644
>> --- a/drivers/usb/dwc3/core.c
>> +++ b/drivers/usb/dwc3/core.c
>> @@ -491,6 +491,11 @@ static int dwc3_probe(struct platform_device *pdev)
>>
>> dwc->needs_fifo_resize = of_property_read_bool(node, "tx-fifo-resize");
>>
>> + /* Setting device state as 'suspended' initially,
>
> wrong comment style.
Yea :-( will fix this.

>
>> + * to make sure we know device state prior to
>> + * pm_runtime_enable
>> + */
>> + pm_runtime_set_suspended(dev);
>
> didn't Alan mention this should be done at the Bus level ? In that case,
> shouldn't you have call pm_runtime_set_active/suspended() based on
> DT's status=okay or status=disabled ? Or something similar ?

True, we should be doing this at bus level. But he did also mention to
let pm core
know of the state of the device before enabling the runtime pm. Right ?
Moreover immediately after pm_runtime_enable(), we do pm_runtime_get_sync()
so that device comes to active state.
I am possibly missing things out here, not able to grab this whole
picture completely :-(

Wouldn't DT's status=disabled actually be disabling the device as a whole ?
So, how much will runtime power management on the device be affecting ?



--
Thanks & Regards
Vivek
--
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/