From: William McVicker <willmcvicker@google.com>
To: Roger Quadros <rogerq@kernel.org>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Dhruva Gole <d-gole@ti.com>,
sashal@kernel.org, Chris Morgan <macroalpha82@gmail.com>,
Vishal Mahaveer <vishalm@ti.com>,
msp@baylibre.com, srk@ti.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] usb: dwc3: fix fault at system suspend if device was already runtime suspended
Date: Mon, 4 Nov 2024 10:04:44 -0800 [thread overview]
Message-ID: <ZykMvEXywBRuhZAM@google.com> (raw)
In-Reply-To: <20241104-am62-lpm-usb-fix-v1-1-e93df73a4f0d@kernel.org>
Hi Roger,
On 11/04/2024, Roger Quadros wrote:
> If the device was already runtime suspended then during system suspend
> we cannot access the device registers else it will crash.
>
> Also we cannot access any registers after dwc3_core_exit() on some
> platforms so move the dwc3_enable_susphy() call to the top.
>
> Cc: stable@vger.kernel.org # v5.15+
> Reported-by: William McVicker <willmcvicker@google.com>
> Closes: https://lore.kernel.org/all/ZyVfcUuPq56R2m1Y@google.com
> Fixes: 705e3ce37bcc ("usb: dwc3: core: Fix system suspend on TI AM62 platforms")
> Signed-off-by: Roger Quadros <rogerq@kernel.org>
I verified the patch works on my Pixel 6 device with runtime PM enabled. Thanks
for the fix! Feel free to add
Tested-by: Will McVicker <willmcvicker@google.com>
Thanks,
Will
> ---
> drivers/usb/dwc3/core.c | 25 ++++++++++++-------------
> 1 file changed, 12 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 427e5660f87c..98114c2827c0 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -2342,10 +2342,18 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
> u32 reg;
> int i;
>
> - dwc->susphy_state = (dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)) &
> - DWC3_GUSB2PHYCFG_SUSPHY) ||
> - (dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)) &
> - DWC3_GUSB3PIPECTL_SUSPHY);
> + if (!pm_runtime_suspended(dwc->dev) && !PMSG_IS_AUTO(msg)) {
> + dwc->susphy_state = (dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)) &
> + DWC3_GUSB2PHYCFG_SUSPHY) ||
> + (dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)) &
> + DWC3_GUSB3PIPECTL_SUSPHY);
> + /*
> + * TI AM62 platform requires SUSPHY to be
> + * enabled for system suspend to work.
> + */
> + if (!dwc->susphy_state)
> + dwc3_enable_susphy(dwc, true);
> + }
>
> switch (dwc->current_dr_role) {
> case DWC3_GCTL_PRTCAP_DEVICE:
> @@ -2398,15 +2406,6 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
> break;
> }
>
> - if (!PMSG_IS_AUTO(msg)) {
> - /*
> - * TI AM62 platform requires SUSPHY to be
> - * enabled for system suspend to work.
> - */
> - if (!dwc->susphy_state)
> - dwc3_enable_susphy(dwc, true);
> - }
> -
> return 0;
> }
>
>
> ---
> base-commit: 42f7652d3eb527d03665b09edac47f85fb600924
> change-id: 20241102-am62-lpm-usb-fix-347dd86135c1
>
> Best regards,
> --
> Roger Quadros <rogerq@kernel.org>
>
next prev parent reply other threads:[~2024-11-04 18:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-04 14:00 [PATCH] usb: dwc3: fix fault at system suspend if device was already runtime suspended Roger Quadros
2024-11-04 18:04 ` William McVicker [this message]
2024-11-04 23:08 ` Thinh Nguyen
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=ZykMvEXywBRuhZAM@google.com \
--to=willmcvicker@google.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=d-gole@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=macroalpha82@gmail.com \
--cc=msp@baylibre.com \
--cc=rogerq@kernel.org \
--cc=sashal@kernel.org \
--cc=srk@ti.com \
--cc=stable@vger.kernel.org \
--cc=vishalm@ti.com \
/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.