On Wed, 17 May 2017, Tony Lindgren wrote:

> This is needed in preparation of adding support for omap3 and
> later OHCI. The runtime PM will only do something on platforms
> that implement it.

> @@ -51,6 +52,10 @@ static int ohci_platform_power_on(struct platform_device 
> *dev)
>       struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd);
>       int clk, ret, phy_num;
>  
> +     ret = pm_runtime_get_sync(&dev->dev);
> +     if (ret < 0)
> +             return ret;
> +

I don't remember how probing for platform device drivers is set up.    
So although this is definitely the wrong place for 
pm_runtime_get_sync(), it may turn out that you need to do a 
pm_runtime_get_noresume() before calling pm_runtime_enable(), and a 
pm_runtime_put() at the end of ohci_platform_probe().  Otherwise 
runtime PM might kick in during the middle of the probe sequence -- not 
what you want.

Similarly, you may need pm_runtime_get_sync() at the start of 
ohci_platform_remove() and pm_runtime_put_noidle() at the end.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to