usb: gadget: composite: Count configs for SuperSpeedPlus
authorJohn Youn <John.Youn@synopsys.com>
Sat, 6 Feb 2016 01:06:49 +0000 (17:06 -0800)
committerFelipe Balbi <balbi@kernel.org>
Fri, 4 Mar 2016 13:14:24 +0000 (15:14 +0200)
If enumerated in SuperSpeedPlus, count the configurations that support
it.

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

index 560330f5457c02f589c33e5de2f8a119e8db8768..44ad7aa6f8f1beaaa104578336bbce6cf6c5007d 100644 (file)
@@ -511,18 +511,24 @@ static int count_configs(struct usb_composite_dev *cdev, unsigned type)
        unsigned                        count = 0;
        int                             hs = 0;
        int                             ss = 0;
+       int                             ssp = 0;
 
        if (gadget_is_dualspeed(gadget)) {
                if (gadget->speed == USB_SPEED_HIGH)
                        hs = 1;
                if (gadget->speed == USB_SPEED_SUPER)
                        ss = 1;
+               if (gadget->speed == USB_SPEED_SUPER_PLUS)
+                       ssp = 1;
                if (type == USB_DT_DEVICE_QUALIFIER)
                        hs = !hs;
        }
        list_for_each_entry(c, &cdev->configs, list) {
                /* ignore configs that won't work at this speed */
-               if (ss) {
+               if (ssp) {
+                       if (!c->superspeed_plus)
+                               continue;
+               } else if (ss) {
                        if (!c->superspeed)
                                continue;
                } else if (hs) {