usb: xhci: support 'new_scheme' device probing

As is the case with ehci, some devices misbehave when encountering a
SetAddress command prior to GetDescriptor.  To support this enumeration
scheme on xhci the AddressDevice operation needs to be performed twice.  The
first instance of the command enables the HC's device and slot context info
for the device, but omits sending the device a SetAddress command (BSR ==
block set address request).  Then, after GetDescriptor completes, follow up
with the full AddressDevice+SetAddress operation.

Reported-by: David Moore <david.moore@gmail.com>
Suggested-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
7 files changed