Message ID | d22e816c-0166-fa12-efc0-a9016acec638@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> > 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
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;