linux/drivers/usb
Kishon Vijay Abraham I a44623d927 usb: core: hcd: Add support for deferring roothub registration
It has been observed with certain PCIe USB cards (like Inateck connected
to AM64 EVM or J7200 EVM) that as soon as the primary roothub is
registered, port status change is handled even before xHC is running
leading to cold plug USB devices not detected. For such cases, registering
both the root hubs along with the second HCD is required. Add support for
deferring roothub registration in usb_add_hcd(), so that both primary and
secondary roothubs are registered along with the second HCD.

This patch has been added and reverted earier as it triggered a race
in usb device enumeration.
That race is now fixed in 5.16-rc3, and in stable back to 5.4
commit 6cca13de26 ("usb: hub: Fix locking issues with address0_mutex")
commit 6ae6dc22d2 ("usb: hub: Fix usb enumeration issue due to address0
race")

CC: stable@vger.kernel.org # 5.4+
Suggested-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Tested-by: Chris Chiu <chris.chiu@canonical.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Link: https://lore.kernel.org/r/20220510091630.16564-2-kishon@ti.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-05-12 13:59:59 +02:00
..
atm usb: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 usb: cdns3: Fix issue for clear halt endpoint 2022-04-09 17:18:00 +02:00
chipidea usb: udc: Fix typo in comment 2022-01-31 14:24:39 +01:00
class usb: usbtmc: Fix bug in pipe direction for control transfers 2022-03-15 18:45:31 +01:00
common usb: common: usb-conn-gpio: Make VBUS supply completely optional 2022-03-15 18:22:15 +01:00
core usb: core: hcd: Add support for deferring roothub registration 2022-05-12 13:59:59 +02:00
dwc2 usb: dwc2: gadget: don't reset gadget's driver->bus 2022-05-05 21:52:16 +02:00
dwc3 USB / dwc3: Fix a checkpatch warning in core.c 2022-05-12 11:36:36 +02:00
early usb: early: xhci-dbc: Fix xdbc number parsing 2022-03-15 18:20:34 +01:00
gadget usb: gadget: udc: Remove useless variable assignment in xudc_read_fifo() 2022-05-12 13:58:27 +02:00
host usb: host: ehci-xilinx: adding description for return value 2022-05-12 13:58:48 +02:00
image scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
isp1760 usb: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
misc Revert "usb: misc: Add onboard_usb_hub driver" 2022-05-03 16:48:13 +02:00
mon
mtu3 usb: mtu3: fix USB 3.0 dual-role-switch from device to host 2022-04-21 19:06:41 +02:00
musb usb: musb: mediatek: Use clk_bulk API to simplify clock operations 2022-04-21 19:23:46 +02:00
phy usb: phy: generic: Get the vbus supply 2022-04-26 14:10:54 +02:00
renesas_usbhs usb: renesas_usbhs: Use platform_get_irq() to get the interrupt 2021-12-21 08:51:57 +01:00
roles
serial USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS 2022-04-21 10:08:06 +02:00
storage usb: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
typec Linux 5.18-rc5 2022-05-03 16:35:26 +02:00
usbip usb: usbip: add missing device lock on tweak configuration cmd 2022-04-21 19:01:25 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c usb: usb-skeleton: Update min() to min_t() 2021-10-05 12:56:48 +02:00