1
0
Fork 0

MLK-9831-1 usb: chipidea: udc: refine ci_udc_start

Use ci_hdrc_gadget_connect() API directly if vbus is on.

Acked-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
5.4-rM2-2.2.x-imx-squashed
Li Jun 2014-12-25 17:34:01 +08:00 committed by Dong Aisheng
parent 214ed5edf0
commit ded9d896fa
1 changed files with 5 additions and 14 deletions

View File

@ -1765,23 +1765,14 @@ static int ci_udc_start(struct usb_gadget *gadget,
ci->driver = driver;
/* Start otg fsm for B-device */
if (ci_otg_is_fsm_mode(ci) && ci->fsm.id) {
ci_hdrc_otg_fsm_start(ci);
if (ci_otg_is_fsm_mode(ci)) {
if (ci->fsm.id)
ci_hdrc_otg_fsm_start(ci);
return retval;
}
pm_runtime_get_sync(&ci->gadget.dev);
if (ci->vbus_active) {
hw_device_reset(ci);
} else {
usb_udc_vbus_handler(&ci->gadget, false);
pm_runtime_put_sync(&ci->gadget.dev);
return retval;
}
retval = hw_device_state(ci, ci->ep0out->qh.dma);
if (retval)
pm_runtime_put_sync(&ci->gadget.dev);
if (ci->vbus_active)
ci_hdrc_gadget_connect(&ci->gadget, 1);
return retval;
}