diff options
author | Li Jun <b47624@freescale.com> | 2014-04-23 03:56:50 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-24 15:56:35 -0400 |
commit | 4dcf720c5d40b27c916e7115ad75b335c9c1e264 (patch) | |
tree | dd40e11f5e40ee2dbe96b8a9ac2b12538692dd33 /drivers/usb/chipidea/udc.c | |
parent | e287b67b00c8d5306e0fe6be1d597e23d8c4783e (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.c | 8 |
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 */ |
33 | static const struct usb_endpoint_descriptor | 34 | static 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); |