Re: [PATCH] usb: dwc3: remove 'pm_runtime_set_active' in resume callback

taehyun cho
2021-03-18T12:42:14Z

[-- Attachment #1: Type: text/plain, Size: 1775 bytes --]

On Wed, Mar 17, 2021 at 11:11:59AM -0400, Alan Stern wrote:
> On Wed, Mar 17, 2021 at 05:25:20PM +0900, taehyun cho wrote:
> > 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.
>
> Ah, good. Does the platform driver set the active flag in its probe
> routine?
>

PM resume callback function in our platform driver had a bug.
Resume callback function doesn't set active flag in 'pm_runtime_suspended' state.
This is a obvious bug. We are rebuilding our platform device driver. This bug
looks inserted while rebuilding a driver.

Thanks.

Taehyun Cho

> > Thank you for the help and sorry for
> > disturbing you.
>
> No problem at all.