How do I prevent the “This device can perform faster” pop-up message from appearing when operating a SuperSpeedcapable device at Hi-Speed?
When a SuperSpeed-capable device (FX3/CX3) is made to work only at Hi-Speed (480 Mbps) in one of the following ways, the "This device can perform faster" pop up appears:
- Invoke the API apiRetStatus = CyU3PConnectState(CyTrue, CyFalse);
- Connect FX3/CX3 to a Host with a USB2.0 cable.
Devices in this scenario are required to report their bcdUSB parameter in the Device Descriptor as '0210' (defined in USB 3.0 Specification Section 126.96.36.199). The device reports this filed as '0210' to indicate that not only does it support LPM in USB 3.0 devices when operating at Hi-Speed, but also to indicate to a Host that it can operate at SuperSpeed. When the Host driver stack receives the value, it will initiate the pop-up message.
You can prevent this pop-up by modifying the bcdUSB value to '0200'. In that condition, the driver stack cannot detect this error and therefore the device will enumerate and continue to work. However, the driver stack will not query for the BOS descriptor for such a device and therefore will not be able to indicate that the device can perform faster when connected to USB 3.0. The user will get the lower speed and potentially reduced functionality without knowing the remedy. This failure cannot be caught by the USB hardware verifier.