| From c09b73cfac2a9317f1104169045c519c6021aa1d Mon Sep 17 00:00:00 2001 |
| From: Roger Quadros <rogerq@ti.com> |
| Date: Mon, 26 Aug 2019 16:10:58 +0300 |
| Subject: usb: dwc3: don't set gadget->is_otg flag |
| |
| From: Roger Quadros <rogerq@ti.com> |
| |
| commit c09b73cfac2a9317f1104169045c519c6021aa1d upstream. |
| |
| This reverts |
| commit 6a4290cc28be1 ("usb: dwc3: gadget: set the OTG flag in dwc3 gadget driver.") |
| |
| We don't yet support any of the OTG mechanisms (HNP/SRP/ADP) |
| and are not setting gadget->otg_caps, so don't set gadget->is_otg |
| flag. |
| |
| If we do then we end up publishing a OTG1.0 descriptor in |
| the gadget descriptor which causes device enumeration to fail |
| if we are connected to a host with CONFIG_USB_OTG enabled. |
| |
| Host side log without this patch |
| |
| [ 96.720453] usb 1-1: new high-speed USB device number 2 using xhci-hcd |
| [ 96.901391] usb 1-1: Dual-Role OTG device on non-HNP port |
| [ 96.907552] usb 1-1: set a_alt_hnp_support failed: -32 |
| [ 97.060447] usb 1-1: new high-speed USB device number 3 using xhci-hcd |
| [ 97.241378] usb 1-1: Dual-Role OTG device on non-HNP port |
| [ 97.247536] usb 1-1: set a_alt_hnp_support failed: -32 |
| [ 97.253606] usb usb1-port1: attempt power cycle |
| [ 97.960449] usb 1-1: new high-speed USB device number 4 using xhci-hcd |
| [ 98.141383] usb 1-1: Dual-Role OTG device on non-HNP port |
| [ 98.147540] usb 1-1: set a_alt_hnp_support failed: -32 |
| [ 98.300453] usb 1-1: new high-speed USB device number 5 using xhci-hcd |
| [ 98.481391] usb 1-1: Dual-Role OTG device on non-HNP port |
| [ 98.487545] usb 1-1: set a_alt_hnp_support failed: -32 |
| [ 98.493532] usb usb1-port1: unable to enumerate USB device |
| |
| Signed-off-by: Roger Quadros <rogerq@ti.com> |
| Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> |
| Signed-off-by: Lee Jones <lee.jones@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/dwc3/gadget.c | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| --- a/drivers/usb/dwc3/gadget.c |
| +++ b/drivers/usb/dwc3/gadget.c |
| @@ -2996,7 +2996,6 @@ int dwc3_gadget_init(struct dwc3 *dwc) |
| dwc->gadget.speed = USB_SPEED_UNKNOWN; |
| dwc->gadget.sg_supported = true; |
| dwc->gadget.name = "dwc3-gadget"; |
| - dwc->gadget.is_otg = dwc->dr_mode == USB_DR_MODE_OTG; |
| |
| /* |
| * FIXME We might be setting max_speed to <SUPER, however versions |