On 30/05/18 15:31, Felipe Balbi wrote: > 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. As far as I understood just enabling clocks (which might not include bus clock) doesn't ensure device is enabled. Did you mean that I don't need to do a pm_runtime_get_sync() to enable my device in probe? Who is enabling by device for me then? Is device core supposed to do it? > >> 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. > The issue I was facing is that without this patch my device wasn't being enabled as pm_runtime_set_active() is being done _before_ pm_runtime_get_sync(). It could be an issue with the platform's PM domain code as well. Tero/Dave what do you think? -- cheers, -roger Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html