OSDN Git Service

usb: dwc3: gadget: Remove invalid low-speed setting
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Fri, 12 Mar 2021 00:58:50 +0000 (16:58 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Mar 2021 11:40:32 +0000 (12:40 +0100)
None of the DWC_usb3x IPs (and all their versions) supports low-speed
setting in device mode. In the early days, our "Early Adopter Edition"
DWC_usb3 databook shows that the controller may be configured to operate
in low-speed, but it was revised on release. Let's remove this invalid
speed setting to avoid any confusion.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/258b1c7fbb966454f4c4c2c1367508998498fc30.1615509438.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/core.c
drivers/usb/dwc3/core.h
drivers/usb/dwc3/gadget.c

index 94fdbe5..05e2e54 100644 (file)
@@ -1394,7 +1394,6 @@ static void dwc3_check_params(struct dwc3 *dwc)
 
        /* Check the maximum_speed parameter */
        switch (dwc->maximum_speed) {
-       case USB_SPEED_LOW:
        case USB_SPEED_FULL:
        case USB_SPEED_HIGH:
                break;
index ce6bd84..4ca4b4b 100644 (file)
 #define DWC3_DCFG_SUPERSPEED   (4 << 0)
 #define DWC3_DCFG_HIGHSPEED    (0 << 0)
 #define DWC3_DCFG_FULLSPEED    BIT(0)
-#define DWC3_DCFG_LOWSPEED     (2 << 0)
 
 #define DWC3_DCFG_NUMP_SHIFT   17
 #define DWC3_DCFG_NUMP(n)      (((n) >> DWC3_DCFG_NUMP_SHIFT) & 0x1f)
 #define DWC3_DSTS_SUPERSPEED           (4 << 0)
 #define DWC3_DSTS_HIGHSPEED            (0 << 0)
 #define DWC3_DSTS_FULLSPEED            BIT(0)
-#define DWC3_DSTS_LOWSPEED             (2 << 0)
 
 /* Device Generic Command Register */
 #define DWC3_DGCMD_SET_LMP             0x01
index 2c94cc9..4834ac1 100644 (file)
@@ -2113,9 +2113,6 @@ static void __dwc3_gadget_set_speed(struct dwc3 *dwc)
                reg |= DWC3_DCFG_SUPERSPEED;
        } else {
                switch (speed) {
-               case USB_SPEED_LOW:
-                       reg |= DWC3_DCFG_LOWSPEED;
-                       break;
                case USB_SPEED_FULL:
                        reg |= DWC3_DCFG_FULLSPEED;
                        break;
@@ -3455,11 +3452,6 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
                dwc->gadget->ep0->maxpacket = 64;
                dwc->gadget->speed = USB_SPEED_FULL;
                break;
-       case DWC3_DSTS_LOWSPEED:
-               dwc3_gadget_ep0_desc.wMaxPacketSize = cpu_to_le16(8);
-               dwc->gadget->ep0->maxpacket = 8;
-               dwc->gadget->speed = USB_SPEED_LOW;
-               break;
        }
 
        dwc->eps[1]->endpoint.maxpacket = dwc->gadget->ep0->maxpacket;