aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/chipidea/udc.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2016-09-19 17:38:58 +0800
committerAlex Shi <alex.shi@linaro.org>2016-09-19 17:38:58 +0800
commitb54e5ceb73399ab487b2dff4a8712a33bdeec299 (patch)
tree432db4d71f1e37b9285517423ab5aacd0259c9f2 /drivers/usb/chipidea/udc.c
parentf830d1995d29610977cb4c65051421d74ea068d4 (diff)
parent7ddc655ad909372848a3e7995e222c2b9224c2e0 (diff)
Merge branch 'linux-linaro-lsk-v4.1' into linux-linaro-lsk-v4.1-androidlsk-v4.1-16.09-android
Diffstat (limited to 'drivers/usb/chipidea/udc.c')
-rw-r--r--drivers/usb/chipidea/udc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 92937c14f818..d93e43cfb6f8 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1578,8 +1578,11 @@ static int ci_udc_pullup(struct usb_gadget *_gadget, int is_on)
{
struct ci_hdrc *ci = container_of(_gadget, struct ci_hdrc, gadget);
- /* Data+ pullup controlled by OTG state machine in OTG fsm mode */
- if (ci_otg_is_fsm_mode(ci))
+ /*
+ * Data+ pullup controlled by OTG state machine in OTG fsm mode;
+ * and don't touch Data+ in host mode for dual role config.
+ */
+ if (ci_otg_is_fsm_mode(ci) || ci->role == CI_ROLE_HOST)
return 0;
pm_runtime_get_sync(&ci->gadget.dev);