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
From: Peter Chen <hidden>
Date: 2018-06-06 02:10:13
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 index19d60ed..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