Re: Random Interface numbers
Greg KH <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Sep 12, 2007 at 06:46:23PM -0700, Pete Zaitcev wrote: > On Fri, 31 Aug 2007 09:57:18 -0400 (EDT), Alan Stern <[email protected]> wrote: > > > > T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=1.5 MxCh= 0 > > > D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 > > > P: Vendor=1267 ProdID=0210 Rev= 0.01 > > > S: Product=PS/2+USB Mouse > > > C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA > > > I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid > > > E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms > > > > > > usb 2-1: new low speed USB device using uhci_hcd and address 8 > > > usb 2-1: config 1 has an invalid interface number: 1 but max is 0 > > > usb 2-1: config 1 has no interface number 0 > > > usb 2-1: configuration #1 chosen from 1 choice > > > input: PS/2+USB Mouse as /class/input/input8 > > > input: USB HID v1.00 Mouse [PS/2+USB Mouse] on usb-0000:00:1d.1-1 > > > > > > I don't get it, why is max zero in this case? > > > > In any configuration, the interface numbers must run from 0 to > > bNumInterfaces - 1. Hence if there is only one interface, its number > > must be 0. > > What do you think about this: > > http://www.microsoft.com/whdc/system/bus/USB/USBFAQ_intermed.mspx > > Does Windows have requirements or guidelines for assigning numbers to multiple interfaces on a composite device? > > > > A USB device with more than one interface on the first configuration is treated as a composite device. Windows XP (prior to Service Pack 2) mandates that interface numbers follow these rules: > > ??? Interface numbers must be zero-based. > > ??? Interface numbers must be consecutive and increasing. > > > > Windows XP Service Pack 2 (SP2) relaxed the requirement that interface numbers be consecutive by making changes to the driver Usbccgp.sys. Beginning with SP2, interface numbers need only be increasing. > > > > For additional information about interface numbers, see Microsoft Knowledge Base article 814560. > > > > Windows has provided support for USB composite devices since Windows 98. The driver Usbhub.sys supports composite devices on the following operating systems: > > ??? The default value for an interface is always alternate setting zero. > > ??? Additional alternate setting numbers must be consecutive and increasing. > > > > For additional information on alternate settings, see Section 9.6.5 of the USB 2.0 specification, which is available from the USB Web site at http://www.usb.org/developers/docs . I think it looks like Microsoft has to work around stupid hardware developers just like we do :) I'm guessing that people forgot to put a test for this in the USB validation test suite, so they have to handle it. Because of that, there must be devices out there in the wild that do this, so we too, need to also handle this kind of "broken" device. Anyone want to make up a patch? thanks, greg k-h ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel