Re: [PATCH 2/2] usb: dwc3: of_simple: don't call pm_runtime_set_active()

From: Felipe Balbi
Date: Wed May 30 2018 - 08:33:43 EST


Roger Quadros <rogerq@xxxxxx> writes:

> Don't call pm_runtime_set_active() as it will prevent the device
> from being activated in the next pm_runtime_get_sync() call.
>
> Also call pm_runtime_get_sync() before of_platform_populate().
>
> Signed-off-by: Roger Quadros <rogerq@xxxxxx>

This patch is wrong.

> ---
> drivers/usb/dwc3/dwc3-of-simple.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c
> index e98d221..2cbb5c0 100644
> --- a/drivers/usb/dwc3/dwc3-of-simple.c
> +++ b/drivers/usb/dwc3/dwc3-of-simple.c
> @@ -121,6 +121,9 @@ static int dwc3_of_simple_probe(struct platform_device *pdev)
> if (ret)
> goto err_resetc_assert;
>
> + pm_runtime_enable(dev);
> + pm_runtime_get_sync(dev);

No, this is the wrong way to do things. My device should be enabled
already from probe, specially since I have already enabled clocks.

> ret = of_platform_populate(np, NULL, NULL, dev);
> if (ret) {
> for (i = 0; i < simple->num_clocks; i++) {
> @@ -131,10 +134,6 @@ static int dwc3_of_simple_probe(struct platform_device *pdev)
> goto err_resetc_assert;
> }
>
> - pm_runtime_set_active(dev);
> - pm_runtime_enable(dev);
> - pm_runtime_get_sync(dev);

this hunk is not wrong at all.

--
balbi

Attachment: signature.asc
Description: PGP signature