Enable writing of SuperSpeedPlus descriptors for any SuperSpeedPlus
capable configuration when connected in SuperSpeedPlus.

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

diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 1d4f324..b938fcf 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -473,7 +473,7 @@ static int config_desc(struct usb_composite_dev *cdev, 
unsigned w_value)
        u8                              type = w_value >> 8;
        enum usb_device_speed           speed = USB_SPEED_UNKNOWN;
 
-       if (gadget->speed == USB_SPEED_SUPER)
+       if (gadget->speed >= USB_SPEED_SUPER)
                speed = gadget->speed;
        else if (gadget_is_dualspeed(gadget)) {
                int     hs = 0;
@@ -504,6 +504,10 @@ static int config_desc(struct usb_composite_dev *cdev, 
unsigned w_value)
 check_config:
                /* ignore configs that won't work at this speed */
                switch (speed) {
+               case USB_SPEED_SUPER_PLUS:
+                       if (!c->superspeed_plus)
+                               continue;
+                       break;
                case USB_SPEED_SUPER:
                        if (!c->superspeed)
                                continue;
-- 
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