diff options
author | Greg Kroah-Hartman | 2016-08-30 14:07:01 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2016-08-30 14:09:17 +0200 |
commit | 83b4a3d79efb291c17cd9b2182e187c1217f8276 (patch) | |
tree | 9f10e311a2e010142471d1342d590710afb773cf /drivers/usb | |
parent | d1228f4ff3e7c257788ba86ed02a22f5266552ea (diff) | |
parent | c4e94174983a86c935be1537a73e496b778b0287 (diff) |
Merge tag 'usb-ci-v4.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus
Peter writes:
Fix one bug that host can't work after insmod gadget module
at dual-role mode, the root cause of this issue is the usbcmd.rs
is cleared by chipidea udc code.
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/chipidea/udc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c index 065f5d97aa67..dfec5a176315 100644 --- a/drivers/usb/chipidea/udc.c +++ b/drivers/usb/chipidea/udc.c @@ -1596,8 +1596,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); |