From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Semih Baskan <strst.gs@gmail.com>,
mathias.nyman@intel.com, gregkh@linuxfoundation.org,
hkallweit1@gmail.com
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] usb: xhci: Handle USB3 port events when there is one roothub
Date: Mon, 3 Aug 2026 16:13:41 +0300 [thread overview]
Message-ID: <67997c70-d77d-4ede-a461-c80395e8a0b9@linux.intel.com> (raw)
In-Reply-To: <20260803110704.381-1-strst.gs@gmail.com>
On 8/3/26 14:07, Semih Baskan wrote:
> handle_port_status() drops every USB3 port event when xhci->shared_hcd is
> NULL. The check dates from a time when xhci-plat always created a shared
> hcd, so a NULL one could only mean the hcd had been removed.
>
> Since commit 4736ebd7fcaf ("usb: host: xhci-plat: omit shared hcd if
> either root hub has no ports") that is no longer true. A controller whose
> USB2 root hub has no ports gets a single roothub, the USB3 rhub is served
> by the main hcd, and shared_hcd stays NULL for the lifetime of the device.
> Every SuperSpeed port event is then thrown away as bogus behind a debug
> message, so devices never enumerate even though the port sees the device
> and its change bits stay set:
>
> 0x006a1203 Powered Connected Enabled Link:U0 PortSpeed:4
> Change: CSC WRC PRC PLC
>
> Broadcom Northstar is such a controller. USB3 works there up to 5.15 and
> stops working from 5.19 onwards.
>
Interesting, I remember discussing USB3 only xHC hosts a couple years ago
when we got a USB2 only xHC.
We assumed a USB3 only xHC host is unlikely as connectors need to be backwards
compatible and support USB2 devices.
Is some other host controller (xHCI/EHCI) handling USB2 traffic in this
Broadcom Northstar case?
> Ask xhci_get_usb3_hcd() instead. It returns the shared hcd when there is
> one, the main hcd when the USB2 root hub has no ports, and NULL once the
> shared hcd is gone, which keeps the original meaning of the check.
>
> Tested on an Asus RT-N18U (BCM47081), which has a single roothub. Before
> the change nothing enumerates on the USB3 port; after it SuperSpeed
> devices enumerate normally over repeated connect and disconnect cycles,
> the change bits shown above clear, and USB2 is unaffected on both ports.
>
> Fixes: 4736ebd7fcaf ("usb: host: xhci-plat: omit shared hcd if either root hub has no ports")
> Cc: stable@vger.kernel.org
> Signed-off-by: Semih Baskan <strst.gs@gmail.com>
Adding, no reason to not support USB3 only hosts
Thanks
Mathias
next prev parent reply other threads:[~2026-08-03 13:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-03 11:07 [PATCH] usb: xhci: Handle USB3 port events when there is one roothub Semih Baskan
2026-08-03 13:13 ` Mathias Nyman [this message]
2026-08-03 13:35 ` Semih Baskan
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=67997c70-d77d-4ede-a461-c80395e8a0b9@linux.intel.com \
--to=mathias.nyman@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hkallweit1@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=strst.gs@gmail.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.