All of lore.kernel.org
 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: 5+ 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-10  9:35   ` sashiko-bot
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 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.