> -----Original Message----- > From: Clemens Ladisch [mailto:clemens@xxxxxxxxxx] > Sent: Friday, July 22, 2011 4:24 PM > To: Xu, Andiry > Cc: Alan Stern; Sebastian Andrzej Siewior; greg@xxxxxxxxx; linux- > usb@xxxxxxxxxxxxxxx > Subject: Re: bcdUSB field check when fetching BOS descriptor? > > Xu, Andiry wrote: > > Thanks for the ack. However, I found that when connect a USB3 device > > (Buffalo HD-HXU3) via a USB2 cable to a xHCI host, it's bcdUSB > > field is 0x0201. Since the check condition is bcdUSB >= 0x0210, > > driver does not fetch BOS descriptors. Another USB3 device (Kingston > > DT Ultimate) reports 0x0210 when connected via USB2 cable, and driver > > fetches BOS descriptor. > > > > The value I used is from USB3 spec 9.2.6.6, which says "Devices with > > a value of at least 0210H in the bcdUSB field of their device > > descriptor shall support GetDescriptor (BOS descriptor) requests". > > This does not forbid _other_ devices to support the BOS descriptor. > > > However, I checked USB2 LPM spec Chapt 3, which says: "Devices that > > support the BOS descriptor must have a bcdUSB value of 0201H or > > larger." > > > > Is this a conflict? > > No. > > bcdUSB < 2.01: no BOS > bcdUSB >= 2.01 and < 2.10: BOS optional > bcdUSB >= 2.10: BOS required > Thanks for the explanation. It is reasonable. > > Which value should I use, 0x0201 or 0x0210? > > 0x0201. > > No sane firmware writer will allow his 2.01 device to crash when it > revceives a BOS request. > But what about the insane ones? What does Windows do? > I've run USB-IF CV test suite on Windows. When running GetDescriptor (BOS descriptor) test, the test suite fetches BOS descriptor for 2.01 device and declines the request for 2.00 device. So I think 0x0201 is the right value. I'll resubmit the patch, thanks. Thanks, Andiry -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html