On 05.04.2013 15:07, Felipe Balbi wrote: > Hi, > > On Thu, Apr 04, 2013 at 09:50:11PM +0200, Daniel Mack wrote: >> diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c >> index d564580..d298be7 100644 >> --- a/drivers/usb/musb/musb_host.c >> +++ b/drivers/usb/musb/musb_host.c >> @@ -2649,6 +2649,27 @@ void musb_host_free(struct musb *musb) >> usb_put_hcd(musb->hcd); >> } >> >> +int musb_host_setup(struct musb *musb, int power_budget) >> +{ >> + int ret; >> + struct usb_hcd *hcd = musb->hcd; >> + >> + MUSB_HST_MODE(musb); >> + musb->xceiv->otg->default_a = 1; >> + musb->xceiv->state = OTG_STATE_A_IDLE; >> + >> + otg_set_host(musb->xceiv->otg, &hcd->self); > > you don't want to do these by default. You might screw things up for OTG > builds where you *must* start in b_idle state.
Which is why my initialitation code calls musb_gadget_setup() *after* musb_host_setup(), so things are configured properly for OTG. Any better idea on how to solve that? >> + hcd->self.otg_port = 1; >> + musb->xceiv->otg->host = &hcd->self; >> + hcd->power_budget = 2 * (power_budget ? : 250); > > not sure you should default to 500mA budget. you might burn some boards > which aren't passing proper power_budget here. These values were taken from the original implementation, I just copied them over. Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html