Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: Peter Chen <peter.chen@oss.qualcomm.com>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Johan Hovold <johan@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Wesley Cheng <wesley.cheng@oss.qualcomm.com>,
	Udipto Goswami <udipto.goswami@oss.qualcomm.com>,
	Jack Pham <jack.pham@oss.qualcomm.com>,
	Pratham Pratap <pratham.pratap@oss.qualcomm.com>,
	Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>,
	Prashanth K <prashanth.k@oss.qualcomm.com>,
	Elson Serrao <elson.serrao@oss.qualcomm.com>,
	"cros-qcom-dts-watchers@chromium.org"
	<cros-qcom-dts-watchers@chromium.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/1] usb: dwc3: qcom: Keep wakeup option default off
Date: Thu, 12 Nov 2026 01:14:44 +0000	[thread overview]
Message-ID: <avUMs981FKk7Kr3a@vbox> (raw)
In-Reply-To: <20261110092157.2989350-1-peter.chen@oss.qualcomm.com>

Hi,

On Tue, Nov 10, 2026, Peter Chen wrote:
> Current policy
> --------------
> When the controller node has the "wakeup-source" property, dwc3-qcom
> calls device_init_wakeup(dev, true). USB is then a system wakeup
> source by default. Users who do NOT want the system woken up by USB
> have to disable it:
> 
>   echo disabled > /sys/devices/.../<dwc3 device>/power/wakeup
> 
> Proposed policy
> ---------------
> "wakeup-source" only describes that the controller is capable of
> waking up the system (see
> Documentation/devicetree/bindings/power/wakeup-source.txt), so with
> this patch the driver only marks the device as wakeup capable, and
> power/wakeup starts out "disabled". Users who NEED USB as a wakeup
> source have to enable it:
> 
>   echo enabled > /sys/devices/.../<dwc3 device>/power/wakeup

That won't work in host mode. dwc->sys_wakeup is read only once in
dwc3_core_probe(), so enabling wakeup later from sysfs won't reach the
xhci-plat device, and xhci_suspend() clears the port wake bits. Moving
the wakeup setup before dwc3_core_probe() won't work either, since
wakeup is off at that point. The setting needs to be passed to xhci at
suspend time (perhaps in dwc3_pm_prepare()?).

> 
> The motivation is:
> 
> - Users do not expect USB activity (connect/disconnect or USB line status
>   changes) to wake up the system unless they asked for it.
> 
> - Power consumption. With wakeup enabled, host mode system suspend
>   keeps PHYs powered (dwc3_core_exit() is skipped) and necessary logic
>   for detecting wakeup must be on, so that the wakeup interrupts can
>   fire. Today this extra power is spent by default, even on systems
>   where USB is never used as a wakeup source and the controller could
>   be fully powered off during suspend.

Sounds good, but there are some concerns.

> 
> Comparison
> ----------
>                        Current (default on)       Proposed (default off)
>                        --------------------       ----------------------
> Initial power/wakeup   enabled                    disabled
> User action            write "disabled" if USB    write "enabled" if USB
>                        wakeup is NOT wanted       wakeup IS wanted
> Unexpected wakeups     possible (connect,         none unless the user
>                        disconnect, noise)         opted in
> Suspend power          higher, even if USB        lower, USB fully powered
>                        wakeup is never used       off
> Attached devices on    stay suspended, resume     reset-resumed or
> resume                 quickly                    re-enumerated
> 
> Possible regression
> -------------------

This rings my alarm bells for me any time we mention a user behavior
change or possible regression. Perhaps you can add this to the commit
message.

> This is a user-visible change for existing platforms. Many Qualcomm
> arm64 DTs set "wakeup-source" on the USB controller. With this patch:
> 
> - USB wakeup stops working until userspace (or a udev rule) writes
>   "enabled" to the controller's power/wakeup.
> 
> - In host mode, because device_may_wakeup() is now false by default,

This will be the default in host mode for every qcom platform with
"wakeup-source". Which platforms have you tested?

>   system suspend takes the full power down path in
>   dwc3_suspend_common() (dwc3_core_exit()). Platforms where this
>   power down path has not been tested may fail to resume.
> 

BR,
Thinh

  parent reply	other threads:[~2026-11-12  1:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10  9:21 [PATCH 0/1] usb: dwc3: qcom: Keep wakeup option default off Peter Chen
2026-11-10  9:21 ` [PATCH 1/1] " Peter Chen
2026-11-12  1:14 ` Thinh Nguyen [this message]
2026-11-12  8:10   ` [PATCH 0/1] " Peter Chen

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=avUMs981FKk7Kr3a@vbox \
    --to=thinh.nguyen@synopsys.com \
    --cc=andersson@kernel.org \
    --cc=cros-qcom-dts-watchers@chromium.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=elson.serrao@oss.qualcomm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jack.pham@oss.qualcomm.com \
    --cc=johan@kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krishna.kurapati@oss.qualcomm.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=peter.chen@oss.qualcomm.com \
    --cc=prashanth.k@oss.qualcomm.com \
    --cc=pratham.pratap@oss.qualcomm.com \
    --cc=udipto.goswami@oss.qualcomm.com \
    --cc=wesley.cheng@oss.qualcomm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox