Messages in this thread | | | Date | Thu, 4 Aug 2022 08:35:10 -0700 | From | Matthias Kaehlcke <> | Subject | Re: [PATCH 4/8] usb: dwc3: qcom: fix runtime PM wakeup |
| |
On Thu, Aug 04, 2022 at 09:35:16AM +0200, Johan Hovold wrote: > On Wed, Aug 03, 2022 at 02:58:33PM -0700, Matthias Kaehlcke wrote: > > On Tue, Aug 02, 2022 at 05:14:00PM +0200, Johan Hovold wrote: > > > A device must enable wakeups during runtime suspend regardless of > > > whether it is capable and allowed to wake the system up from system > > > suspend. > > > > > > Fixes: 2664deb09306 ("usb: dwc3: qcom: Honor wakeup enabled/disabled state") > > > Signed-off-by: Johan Hovold <johan+linaro@kernel.org> > > > > Ah, I wasn't aware that the same wakeup mechanism is used in runtime suspend. > > > > In how far is runtime PM actually supported/used by this driver? The device is > > set 'active' in _probe(), and there are no other pm_runtime_* calls, except > > in dwc3_qcom_remove() and qcom_dwc3_resume_irq(). How does the device get from > > 'active' into 'suspended'? > > It will be runtime suspended when the child (core) device suspends, but > you need to enable runtime PM through sysfs first.
Thanks for the clarification.
After enabling runtime suspend for the dwc3 core, dwc3 glue and the xHCI the dwc3-qcom enters autosuspend when the delay expires.
> And the controller is resumed in the wakeup-interrupt handler for the > runtime PM case. > > It seems to work ok, and it looks like the driver has supported this > since it was first merged.
With and without your patch dwc3-qcom enters autosuspend and stays there. USB devices like a mouse or a USB to Ethernet adapter keep working while the glue is suspended.
How is the runtime resume triggered for the dwc3 glue?
Sorry if my questions are very basic, so far I haven't dealt much with autosuspend and I'm trying to get a better understanding in the context of the dwc3 and why it is currently broken.
| |