If enumerated in SuperSpeedPlus, count the configurations that support
it.

Signed-off-by: John Youn <johny...@synopsys.com>
---
 drivers/usb/gadget/composite.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 560330f..44ad7aa 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -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) {
-- 
2.6.3

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to