Re: [PATCH 3/3] xhci: Set HCD flag to defer primary roothub registration

From: Kishon Vijay Abraham I
Date: Wed Aug 25 2021 - 10:47:08 EST


Hi,

On 25/08/21 4:21 pm, Kishon Vijay Abraham I wrote:
> Set "HCD_FLAG_DEFER_PRI_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).
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
> Suggested-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
> ---
> drivers/usb/host/xhci.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> index 3618070eba78..9b7d968022c8 100644
> --- a/drivers/usb/host/xhci.c
> +++ b/drivers/usb/host/xhci.c
> @@ -644,7 +644,6 @@ int xhci_run(struct usb_hcd *hcd)
> /* Start the xHCI host controller running only after the USB 2.0 roothub
> * is setup.
> */
> -

I just realized I've left a spurious space here. While fixing Alan's
comment, I'll fix this one.

Regards,
Kishon
> hcd->uses_new_polling = 1;
> if (!usb_hcd_is_primary_hcd(hcd))
> return xhci_run_finished(xhci);
> @@ -692,6 +691,7 @@ int xhci_run(struct usb_hcd *hcd)
> if (ret)
> xhci_free_command(xhci, command);
> }
> + set_bit(HCD_FLAG_DEFER_PRI_RH_REGISTER, &hcd->flags);
> xhci_dbg_trace(xhci, trace_xhci_dbg_init,
> "Finished xhci_run for USB2 roothub");
>
>