On Mon, Mar 15, 2021 at 10:13:35AM -0400, Alan Stern wrote: > On Mon, Mar 15, 2021 at 04:43:17PM +0900, taehyun cho wrote: > > 'pm_runtime_set_active' sets a flag to describe rumtime status. > > This flag is automatically set in pm_runtime_get_sync/put_sync API. > > 'pm_runtime_set_active' checks the runtime status of parent device. > > As a result, the below error message is printed. > > dwc3 11110000.dwc3: runtime PM trying to activate child device > > 11110000.dwc3 but parent (11110000.usb) is not active. > > This is very suspicious. That error message indicates a real error is > present; removing these pm_runtime_set_active calls won't fix the error. > > You need to determine why the parent platform device 11110000.usb isn't > active when the dwc3 probe and resume routines are called. It seems > likely that there is a bug in the platform device's driver. > > Alan Stern > Alan, Thanks to your comments, I checked our platform device driver and found the problem. Our parent platform device didn't set active in resume callback. This made a problem. Thank you for the help and sorry for disturbing you. Taehyun Cho > > Signed-off-by: taehyun cho <taehyun.cho@xxxxxxxxxxx> > > --- > > drivers/usb/dwc3/core.c | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > > index 94fdbe502ce9..e7c0e390f885 100644 > > --- a/drivers/usb/dwc3/core.c > > +++ b/drivers/usb/dwc3/core.c > > @@ -1553,7 +1553,6 @@ static int dwc3_probe(struct platform_device *pdev) > > > > spin_lock_init(&dwc->lock); > > > > - pm_runtime_set_active(dev); > > pm_runtime_use_autosuspend(dev); > > pm_runtime_set_autosuspend_delay(dev, DWC3_DEFAULT_AUTOSUSPEND_DELAY); > > pm_runtime_enable(dev); > > @@ -1920,7 +1919,6 @@ static int dwc3_resume(struct device *dev) > > return ret; > > > > pm_runtime_disable(dev); > > - pm_runtime_set_active(dev); > > pm_runtime_enable(dev); > > > > return 0; > > -- > > 2.26.0 >