[PATCH 3/4][SRU][F/H] xhci: Set HCD flag to defer primary roothub registration

Chris Chiu chris.chiu at canonical.com
Tue Sep 28 05:07:31 UTC 2021


From: Kishon Vijay Abraham I <kishon at ti.com>

BugLink: https://bugs.launchpad.net/bugs/1945211

Set "HCD_FLAG_DEFER_RH_REGISTER" to hcd->flags in xhci_run() to defer
registering primary roothub in usb_add_hcd(). This will make sure both
primary roothub and secondary roothub will be registered along with the
second HCD. This is required for cold plugged USB devices to be detected
in certain PCIe USB cards (like Inateck USB card connected to AM64 EVM
or J7200 EVM).

CC: stable at vger.kernel.org # 5.4+
Suggested-by: Mathias Nyman <mathias.nyman at linux.intel.com>
Tested-by: Chris Chiu <chris.chiu at canonical.com>
Signed-off-by: Kishon Vijay Abraham I <kishon at ti.com>
Link: https://lore.kernel.org/r/20210909064200.16216-3-kishon@ti.com
Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
(cherry picked from commit b7a0a792f864583207c593b50fd1b752ed89f4c1)
Signed-off-by: Chris Chiu <chris.chiu at canonical.com>
---
 drivers/usb/host/xhci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 70813b003616..0d69f472f10f 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -693,6 +693,7 @@ int xhci_run(struct usb_hcd *hcd)
 		if (ret)
 			xhci_free_command(xhci, command);
 	}
+	set_bit(HCD_FLAG_DEFER_RH_REGISTER, &hcd->flags);
 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
 			"Finished xhci_run for USB2 roothub");
 
-- 
2.25.1




More information about the kernel-team mailing list