Hi!

When testing our USB 3.0 Device IP solution we typically run the Compliance
Tests for USB 3.0 and also for USB 2.0. We find an issue regarding the USB 2.0
CV Chapter 9 test: LPM L1 Suspend Resume Test.
For it to be successful we have to edit the gadget driver in order to configure
the baseline and deep besl parameters:

--- b/drivers/usb/gadget/composite.c    2015-08-05 07:21:03.000000000 +0100
+++ a/drivers/usb/gadget/composite.c    2015-08-07 11:20:52.037425955 +0100
@@ -560,7 +560,17 @@
        usb_ext->bLength = USB_DT_USB_EXT_CAP_SIZE;
        usb_ext->bDescriptorType = USB_DT_DEVICE_CAPABILITY;
        usb_ext->bDevCapabilityType = USB_CAP_TYPE_EXT;
-       usb_ext->bmAttributes = cpu_to_le32(USB_LPM_SUPPORT | USB_BESL_SUPPORT);
+       usb_ext->bmAttributes = cpu_to_le32(USB_LPM_SUPPORT |
+                               USB_BESL_SUPPORT |
+                               USB_BESL_BASELINE_VALID |
+                               USB_BESL_DEEP_VALID);
+
+       //baseline besl bits (0x00f00) and deep besl bits (0x0f000)
+       usb_ext->bmAttributes &= cpu_to_le32(~(0x00f00 | 0x0f000));
+       //setting baseline besl = 4
+       usb_ext->bmAttributes |= cpu_to_le32(4 << 8);
+       //setting deep besl = 5
+       usb_ext->bmAttributes |= cpu_to_le32(5 << 12);

        /*
         * The Superspeed USB Capability descriptor shall be implemented by all

Is there any plans to put this parameters configurable in the gadget driver
avoiding the need of patching it like shown previously?

Thanks,
Joao Pinto
--
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