usb: gadget: composite: Configure the usb_ep for SuperSpeedPlus
authorJohn Youn <John.Youn@synopsys.com>
Sat, 6 Feb 2016 01:07:30 +0000 (17:07 -0800)
committerFelipe Balbi <balbi@kernel.org>
Fri, 4 Mar 2016 13:14:25 +0000 (15:14 +0200)
Configure the usb_ep using the SuperSpeedPlus descriptors if connected
in SuperSpeedPlus.

Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/gadget/composite.c

index b938fcfee235e4f59832c374bbfa8bc43b7f5812..60b6e4b4c7e5772aa35a2725881e4d417366830c 100644 (file)
@@ -148,6 +148,13 @@ int config_ep_by_speed(struct usb_gadget *g,
 
        /* select desired speed */
        switch (g->speed) {
+       case USB_SPEED_SUPER_PLUS:
+               if (gadget_is_superspeed_plus(g)) {
+                       speed_desc = f->ssp_descriptors;
+                       want_comp_desc = 1;
+                       break;
+               }
+               /* else: Fall trough */
        case USB_SPEED_SUPER:
                if (gadget_is_superspeed(g)) {
                        speed_desc = f->ss_descriptors;
@@ -191,7 +198,7 @@ ep_found:
            (comp_desc->bDescriptorType != USB_DT_SS_ENDPOINT_COMP))
                return -EIO;
        _ep->comp_desc = comp_desc;
-       if (g->speed == USB_SPEED_SUPER) {
+       if (g->speed >= USB_SPEED_SUPER) {
                switch (usb_endpoint_type(_ep->desc)) {
                case USB_ENDPOINT_XFER_ISOC:
                        /* mult: bits 1:0 of bmAttributes */