Regression caused by: usb: add a flag to skip PHY initialization to struct usb_hcd

From: Peter Chen <hidden>
Date: 2018-06-06 02:10:13

quoted hunk
Admittedly without really understanding everything that is going on, I put back the
deleted lines from this patch chunk and it started working again:
diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index
19d60ed..af45aa32 100644
--- a/drivers/usb/chipidea/host.c
+++ b/drivers/usb/chipidea/host.c
@@ -124,10 +124,8 @@ static int host_start(struct ci_hdrc *ci)

         hcd->power_budget = ci->platdata->power_budget;
         hcd->tpl_support = ci->platdata->tpl_support;
-       if (ci->phy)
-               hcd->phy = ci->phy;
-       else
-               hcd->usb_phy = ci->usb_phy;
+       if (ci->phy || ci->usb_phy)
+               hcd->skip_phy_initialization = 1;

         ehci = hcd_to_ehci(hcd);
         ehci->caps = ci->hw_bank.cap;
Without a value in hcd->usb_phy, the call to usb_phy_notify_disconnect() in
hub_port_connect() (usb/core/hub.c) never fires but that is only part of the problem.
Hope this helps.
Thanks, Mat.
I posted a patch for this fix, help to test please.

Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help