Linux USB
 help / color / mirror / Atom feed
From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Lovekesh Solanki <lovekeshsolanki00@gmail.com>,
	linux-usb@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Michal Pecio <michal.pecio@gmail.com>,
	Mathieu Fluhr <mathieu.fluhr@gmail.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Thorsten Leemhuis <regressions@leemhuis.info>,
	regressions@lists.linux.dev, stable@vger.kernel.org
Subject: Re: [PATCH 2/2] xhci: drop 120ms U3 LFPS wake retry wait from runtime resume
Date: Tue, 1 Sep 2026 15:53:47 +0300	[thread overview]
Message-ID: <a6a8526f-4b6f-46f7-9d02-05bfe3efcd48@linux.intel.com> (raw)
In-Reply-To: <20260831190349.29590-2-lovekeshsolanki00@gmail.com>

On 8/31/26 22:03, Lovekesh Solanki wrote:
> On auto resume (is_auto_resume), xhci_resume() used to msleep(120)
> when there were suspended USB3 devices and no pending port event,
> to give USB3 devices time to resend their U3 LFPS wake (at 100ms
> intervals) if the first wake signalling failed.
> 
> The hub driver now holds the SS root hub awake for
> USB_SS_ROOT_HUB_U0_WAKE_TIME (120ms) after a resume, which covers that
> same window and lets the pending port event be picked up through the
> normal hub event path. Therefore, this legacy wait in xhci_resume()
> is redundant and can be removed.

I looked into this again and remember now why we didn't remove the msleep(120)
earlier.

If we want the hub driver to keep us awake to detect delayed port activity,
then we need to wake the (root) hub driver in xhci resume.

That means always calling usb_hcd_resume_root_hub() in runtime resume cases where
resume is caused by usb device remote wake. (xHCI PME# in PCI case), even if there
isn't any port activity yet.

We don't currently check if runtime resume is caused by xHC PME# wake in the xhci-pci
driver. Not sure if there's a driver api for it.
Instead we in resume sleep for 120ms if there exists connected and suspended USB3
devices without port activity, and then check again.

This msleep(120) is unnecessary if runtime resume was caused by userspace instead
of usb device initiated wake (seen as PME for PCI hosts)

Probably best to just take Patch 1/1 and look at this xhci resume part separately.

Thanks
Mathias


  reply	other threads:[~2026-09-01 12:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 19:03 [PATCH 1/2] usb: hub: use shorter 120ms post resume hold for SS root hubs Lovekesh Solanki
2026-08-31 19:03 ` [PATCH 2/2] xhci: drop 120ms U3 LFPS wake retry wait from runtime resume Lovekesh Solanki
2026-09-01 12:53   ` Mathias Nyman [this message]
2026-09-01 15:50     ` Lovekesh Solanki
2026-09-02 12:10       ` Mathias Nyman
2026-09-02 18:21         ` Lovekesh Solanki
2026-09-03  7:42           ` Mathias Nyman
2026-09-02 13:29 ` [PATCH 1/2] usb: hub: use shorter 120ms post resume hold for SS root hubs Mathias Nyman
2026-09-02 18:43   ` Lovekesh Solanki
2026-09-03  7:50     ` Mathias Nyman

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=a6a8526f-4b6f-46f7-9d02-05bfe3efcd48@linux.intel.com \
    --to=mathias.nyman@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=lovekeshsolanki00@gmail.com \
    --cc=mario.limonciello@amd.com \
    --cc=mathieu.fluhr@gmail.com \
    --cc=michal.pecio@gmail.com \
    --cc=regressions@leemhuis.info \
    --cc=regressions@lists.linux.dev \
    --cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox