lkml.org 
[lkml]   [2020]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 31/32] usb: dwc3: dont set gadget->is_otg flag
    Date
    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

    \
     
     \ /
      Last update: 2020-04-11 14:28    [W:4.076 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site