2022-05-10 13:47:00

by Kishon Vijay Abraham I

[permalink] [raw]
Subject: [RESEND PATCH v2 0/2] Fix cold plugged USB device on certain PCIe USB cards

Cold plugged USB device was not detected on certain PCIe USB cards
(like Inateck card connected to AM64 EVM or connected to J7200 EVM).

Re-plugging the USB device always gets it enumerated.

This issue was discussed in
https://lore.kernel.org/r/[email protected]
and
https://bugzilla.kernel.org/show_bug.cgi?id=214021

So the suggested solution is to register both root hubs along with the
second hcd for xhci.

RFC Patch series can be found at [1]
v1 Patch series can be found at [3]
v2 PATCH series can be found at [4]

Changes from v2:
1) No Change (rebased to latest mainline kernel). V2 was reverted from
mainline after it triggered a race in USB enumeration. Posting the patch
(as attached in https://bugzilla.kernel.org/attachment.cgi?id=300800 after
validating this fixes the issue using TI AM654 IDK EVM).

Changes from RFC:
1) Mathias identified potential issues with the RFC patch [2] and suggested
the solution to use HCD flags. This series implements it.

Changes from v1:
1) Fixed code comments pointed out by Alan Stern
2) Renamed the HCD flag variable to "HCD_FLAG_DEFER_RH_REGISTER" from
"HCD_FLAG_DEFER_PRI_RH_REGISTER"

[1] -> https://lore.kernel.org/linux-usb/[email protected]/
[2] -> https://lore.kernel.org/linux-usb/[email protected]
[3] -> https://lore.kernel.org/r/[email protected]
[4] -> http://lore.kernel.org/r/[email protected]

Kishon Vijay Abraham I (2):
usb: core: hcd: Add support for deferring roothub registration
xhci: Set HCD flag to defer primary roothub registration

drivers/usb/core/hcd.c | 29 +++++++++++++++++++++++------
drivers/usb/host/xhci.c | 2 ++
include/linux/usb/hcd.h | 2 ++
3 files changed, 27 insertions(+), 6 deletions(-)

--
2.17.1