All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Kaehlcke <mka@chromium.org>
To: Johan Hovold <johan@kernel.org>
Cc: Johan Hovold <johan+linaro@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Felipe Balbi <balbi@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	Konrad Dybcio <konrad.dybcio@somainline.org>,
	Krishna Kurapati <quic_kriskura@quicinc.com>,
	Stephen Boyd <swboyd@chromium.org>,
	Doug Anderson <dianders@chromium.org>,
	Pavankumar Kondeti <quic_pkondeti@quicinc.com>,
	quic_ppratap@quicinc.com, quic_vpulyala@quicinc.com,
	linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/8] usb: dwc3: qcom: fix runtime PM wakeup
Date: Thu, 4 Aug 2022 08:35:10 -0700	[thread overview]
Message-ID: <YuvnLliIKLK71wx0@google.com> (raw)
In-Reply-To: <Yut2tLqGfu82xcDs@hovoldconsulting.com>

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.

  reply	other threads:[~2022-08-04 15:35 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-02 15:13 [PATCH 0/8] usb: dwc3: qcom: fix wakeup implementation Johan Hovold
2022-08-02 15:13 ` [PATCH 1/8] usb: dwc3: fix PHY disable sequence Johan Hovold
2022-08-02 21:21   ` Andrew Halaney
2022-08-03 17:33   ` Matthias Kaehlcke
2022-08-02 15:13 ` [PATCH 2/8] Revert "usb: dwc3: qcom: Keep power domain on to retain controller status" Johan Hovold
2022-08-02 18:00   ` Krishna Kurapati PSSNV
2022-08-03  7:42     ` Johan Hovold
2022-08-02 15:13 ` [PATCH 3/8] usb: dwc3: qcom: fix broken non-host-mode suspend Johan Hovold
2022-08-03 19:11   ` Matthias Kaehlcke
2022-08-04  6:12     ` Johan Hovold
2022-08-02 15:14 ` [PATCH 4/8] usb: dwc3: qcom: fix runtime PM wakeup Johan Hovold
2022-08-03 21:58   ` Matthias Kaehlcke
2022-08-04  7:35     ` Johan Hovold
2022-08-04 15:35       ` Matthias Kaehlcke [this message]
2022-08-04 16:04         ` Johan Hovold
2022-08-04 16:25           ` Matthias Kaehlcke
2022-08-02 15:14 ` [PATCH 5/8] Revert "dt-bindings: usb: dwc3: Add wakeup-source property support" Johan Hovold
2022-08-02 17:17   ` Rob Herring
2022-08-03  7:31     ` Johan Hovold
2022-08-03  7:51       ` Krzysztof Kozlowski
2022-08-04  7:37         ` Johan Hovold
2022-08-03 23:26       ` Rob Herring
2022-08-04  5:47         ` Johan Hovold
2022-08-04  7:40           ` Johan Hovold
2022-08-02 15:14 ` [PATCH 6/8] dt-bindings: usb: qcom,dwc3: add wakeup-source property Johan Hovold
2022-08-03 23:27   ` Rob Herring
2022-08-02 15:14 ` [PATCH 7/8] usb: dwc3: qcom: fix wakeup implementation Johan Hovold
2022-08-02 15:14 ` [PATCH 8/8] usb: dwc3: qcom: clean up suspend callbacks Johan Hovold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YuvnLliIKLK71wx0@google.com \
    --to=mka@chromium.org \
    --cc=agross@kernel.org \
    --cc=balbi@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=johan+linaro@kernel.org \
    --cc=johan@kernel.org \
    --cc=konrad.dybcio@somainline.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=quic_kriskura@quicinc.com \
    --cc=quic_pkondeti@quicinc.com \
    --cc=quic_ppratap@quicinc.com \
    --cc=quic_vpulyala@quicinc.com \
    --cc=robh+dt@kernel.org \
    --cc=swboyd@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.