[Bug 214021] The USB devices fail to be detected during boot
From: <hidden>
Date: 2021-08-23 12:49:42
https://bugzilla.kernel.org/show_bug.cgi?id=214021
--- Comment #11 from Mathias Nyman (mathias.nyman@linux.intel.com) ---(In reply to Alan Stern from comment #10)
Would something like the attached patch fix the problem? It delays registration of the secondary root hub until after the primary hcd is started, just before the primary root hub is registered.
If I understood the problem correctly we would need to delay the registration
of the primary roothub until secondary hcd usb_hcd_add() reaches
hcd->driver->start()
xhci pci driver will first create and add primary hcd, then create and add
secondary hcd.
xhci_pci_probe()
/* create AND add primary hcd in one go */
usb_hcd_pci_probe(dev, id, &hc_driver)
primary_hcd = dev_get_drvdata(&dev->dev)
/* create secondary hcd */
secondary_hcd = usb_create_shared_hcd(...,primary_hcd)
/* add secondary hcd */
usb_add_hcd(secondary_hcd)
If we force xhci driver to always first create both hcds, and then add them, we
could maybe do somethinh like this:
usb_hcd_add()
...
if ((is_primary_hcd(hcd) && !hcd->shared_hcd) || !is_primary_hcd)
register_roothub(primary_hcd);
if(!is_primary_hcd(hcd))
register_roothub(hcd);
If this makes any sense I'll turn this into real code.
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.