> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of Alan Stern > Sent: Monday, June 25, 2012 1:10 PM > > On Mon, 25 Jun 2012, Sarah Sharp wrote: > > > On Mon, Jun 25, 2012 at 01:30:56PM -0400, Alan Stern wrote: > > > On Mon, 25 Jun 2012, Sarah Sharp wrote: > > > > static void > > > > -dump_device_status(libusb_device_handle *fd, int otg, int wireless) > > > > +dump_device_status(libusb_device_handle *fd, int otg, int wireless, int super_speed) > > > > > > This doesn't seem consistent... > > > > > > > @@ -3796,7 +3804,7 @@ static void dumpdev(libusb_device *dev) > > > > do_dualspeed(udev); > > > > } > > > > do_debug(udev); > > > > - dump_device_status(udev, otg, wireless); > > > > + dump_device_status(udev, otg, wireless, desc.bcdUSB >= 0x0300); > > > > > > with this. Isn't it true that a USB-3 device will report a bcdUSB > > > value of 0x0300 or above, even when running at high speed or slower? > > > 9.6.1 in the USB-3 spec says: > > > > > > The device descriptor of a SuperSpeed capable device has > > > a version number of 3.0 (0300H). > > > > I plugged in a USB 3.0 camera from Point Grey into a USB 2.0 only port, > > and it reported a bcdUSB of 0x0210. A Pluggable USB 3.0 hard drive also > > reports 0x0210, as well as a TI UAS device. So I assume that the bcdUSB > > is always 0x0210 when operating at HS, and 0x0300 when operating at SS. > > Ah, so the manufacturers are not trying to comply with the spec... > > (Note that the spec says "A device has only one device descriptor." > Presumably it means only one device descriptor for each operating speed > -- the USB-2 spec makes the same mistake.) > > On the other hand, the USB-3 spec also says that when operating in a > USB-2 electrical environment, the device will "return appropriate > information according to the requirements laid out in the USB 2.0 > specification". This contradicts the requirement the bcdUSB value will > be 3.0. So maybe the manufacturers shouldn't be blamed. Just FYI, a device cannot have a bcdUSB of 0x300 in its device descriptor if it's not running at super speed, because a USB 3.0 device descriptor is incompatible with earlier versions, due to the bMaxPacketSize0 field being encoded as a power of 2 instead of a byte count. -- Paul -- 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