usb: dwc3: gadget: Workaround Mirosoft's BESL check
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Fri, 30 Aug 2019 01:00:16 +0000 (18:00 -0700)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 30 Aug 2019 06:14:33 +0000 (09:14 +0300)
commit17b63704ec7cd4a37c513d964bc09c7e3fde8988
treec9b806ebc18e75670962b557572abec800280d3c
parent6bbf87a131edd39040974f3843ff97e89310ebde
usb: dwc3: gadget: Workaround Mirosoft's BESL check

While testing our host system using Microsoft's usb stack against our
gadget for various BESL values, we found an issue with their usb stack
when the recommended baseline BESL value is 0 (125us) or when the deep
BESL is 1 or less. The Windows host will issue a usb reset immediately
after it receives the extended BOS descriptor and the enumeration will
fail after a few attempts.

To keep compatibility with Microsoft's host usb stack, let's workaround
this issue by using the recommended baseline BESL of 1 (or 150us)
and clamp the deep BESL value within 2 to 15.

This was tested against Windows 10 build 18956.

Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/gadget.c