aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/chipidea/udc.c
diff options
context:
space:
mode:
authorLi Jun <b47624@freescale.com>2014-04-23 03:56:50 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-24 15:56:35 -0400
commit4dcf720c5d40b27c916e7115ad75b335c9c1e264 (patch)
treedd40e11f5e40ee2dbe96b8a9ac2b12538692dd33 /drivers/usb/chipidea/udc.c
parente287b67b00c8d5306e0fe6be1d597e23d8c4783e (diff)
usb: chipidea: OTG HNP and SRP fsm implementation
USB OTG interrupt handling and fsm transitions according to USB OTG and EH 2.0. Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Li Jun <b47624@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/chipidea/udc.c')
-rw-r--r--drivers/usb/chipidea/udc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index cba7fd63d6e3..150592f10b3d 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -28,6 +28,7 @@
28#include "bits.h" 28#include "bits.h"
29#include "debug.h" 29#include "debug.h"
30#include "otg.h" 30#include "otg.h"
31#include "otg_fsm.h"
31 32
32/* control endpoint description */ 33/* control endpoint description */
33static const struct usb_endpoint_descriptor 34static const struct usb_endpoint_descriptor
@@ -1644,6 +1645,13 @@ static int ci_udc_start(struct usb_gadget *gadget,
1644 return retval; 1645 return retval;
1645 1646
1646 ci->driver = driver; 1647 ci->driver = driver;
1648
1649 /* Start otg fsm for B-device */
1650 if (ci_otg_is_fsm_mode(ci) && ci->fsm.id) {
1651 ci_hdrc_otg_fsm_start(ci);
1652 return retval;
1653 }
1654
1647 pm_runtime_get_sync(&ci->gadget.dev); 1655 pm_runtime_get_sync(&ci->gadget.dev);
1648 if (ci->vbus_active) { 1656 if (ci->vbus_active) {
1649 spin_lock_irqsave(&ci->lock, flags); 1657 spin_lock_irqsave(&ci->lock, flags);