On Tue, Oct 20, 2015 at 11:29:18AM +0900, Jiada Wang wrote: > Currently in udc_stop, if vbus_active flag is true, all USB activities > will be stopped, but vbus_active flag is still left to be true, > this causes issue, when afterwards driver tries to connect gadget > device to host, But due to the uncleared vbus_active, some necessary > setup steps are skipped. > > This patch clears vbus_active flag in udc_stop callback. > > Signed-off-by: Jiada Wang <jiada_wang@xxxxxxxxxx> > --- > drivers/usb/chipidea/udc.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c > index 8223fe7..b9ac228 100644 > --- a/drivers/usb/chipidea/udc.c > +++ b/drivers/usb/chipidea/udc.c > @@ -1762,6 +1762,7 @@ static int ci_udc_stop(struct usb_gadget *gadget) > spin_lock_irqsave(&ci->lock, flags); > > if (ci->vbus_active) { > + ci->vbus_active = 0; > hw_device_state(ci, 0); > if (ci->platdata->notify_event) > ci->platdata->notify_event(ci, > -- > 2.4.5 > This flag will be handled by vbus interrupt, would you please explain more what problem you have met? -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html