123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- From 2ca9749f5b4326dad52756eaf5e7865504b4d374 Mon Sep 17 00:00:00 2001
- From: ED6E0F17 <[email protected]>
- Date: Fri, 3 Feb 2017 14:52:42 +0000
- Subject: [PATCH] usb: dwc2: Avoid suspending if we're in gadget mode (#1825)
- I've found when booting HiKey with the usb gadget cable attached
- if I then try to connect via adb, I get an infinite spew of:
- dwc2 f72c0000.usb: dwc2_hsotg_ep_sethalt(ep ffffffc0790ecb18 ep1out, 0)
- dwc2 f72c0000.usb: dwc2_hsotg_ep_sethalt(ep ffffffc0790eca18 ep1in, 0)
- It seems that the usb autosuspend is suspending the bus shortly
- after bootup when the gadget cable is attached. So when adbd
- then tries to use the device, it doesn't work and it then tries
- to restart it over and over via the ep_sethalt calls (via
- FUNCTIONFS_CLEAR_HALT ioctl).
- Chen Yu suggested this patch to avoid suspending if we're
- in device mode, and it avoids the problem.
- Cc: Wei Xu <[email protected]>
- Cc: Guodong Xu <[email protected]>
- Cc: Amit Pundir <[email protected]>
- Cc: Rob Herring <[email protected]>
- Cc: John Youn <[email protected]>
- Cc: Douglas Anderson <[email protected]>
- Cc: Chen Yu <[email protected]>
- Cc: Kishon Vijay Abraham I <[email protected]>
- Cc: Felipe Balbi <[email protected]>
- Cc: Greg Kroah-Hartman <[email protected]>
- Cc: [email protected]
- Suggested-by: Chen Yu <[email protected]>
- Signed-off-by: John Stultz <[email protected]>
- Signed-off-by: John Youn <[email protected]>
- Signed-off-by: Felipe Balbi <[email protected]>
- ---
- drivers/usb/dwc2/hcd.c | 3 +++
- 1 file changed, 3 insertions(+)
- --- a/drivers/usb/dwc2/hcd.c
- +++ b/drivers/usb/dwc2/hcd.c
- @@ -4381,6 +4381,9 @@ static int _dwc2_hcd_suspend(struct usb_
- if (!HCD_HW_ACCESSIBLE(hcd))
- goto unlock;
-
- + if (hsotg->op_state == OTG_STATE_B_PERIPHERAL)
- + goto unlock;
- +
- if (!hsotg->core_params->hibernation)
- goto skip_power_saving;
-
|