Hi, In hiddev.c (2.4.22 and 2.6.0-test6), setting the value with HIDIOCSUSAGE triggers the following piece of code:
> case HIDIOCSUSAGE: > field->value[uref.usage_index] = uref.value; > return 0; However, there may not be a one-to-one mapping between the "Usage" list and the values list (controls). http://www.usb.org/developers/devclass_docs/Hut1_11.pdf says (page 40): > While Local items do not carry over to the next Main item, they may > apply to more than one control within a single item. For example, if > an Input item defining five controls is preceded by three Usage > tags, the three usages would be assigned sequentially to the first > three controls, and the third usage would also be assigned to the > fourth and fifth controls. If an item has no controls (Report Count > = 0), the Local item tags apply to the Main item (usually a > collection item). > To assign unique usages to every control in a single Main item, > simply specify > each Usage tag sequentially (or use Usage Minimum or Usage Maximum). > All Local items are unsigned integers. It is likely to be the source of the problem reported by Jackson Chan, last in June 2003 http://marc.theaimsgroup.com/?l=linux-usb-devel&m=105614111827576&w=2 Here is the lsusb -v output for the device I'm using. HIDIOCSUSAGE will only let me access the first Output control. It should assign the first Usage to the other controls, as suggested in the HID document above. ---------------------------------------------------------------------- Bus 001 Device 005: ID 06c2:0052 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 Interface bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x06c2 idProduct 0x0052 bcdDevice 1.00 iManufacturer 1 Phidgets Inc. iProduct 2 PhidgetTextLCD iSerial 3 01559 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 MaxPower 64mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 32 Report Descriptor: (length is 32) Item(Global): Usage Page, data= [ 0xa0 0xff ] 65440 (null) Item(Local ): Usage, data= [ 0x01 ] 1 (null) Item(Main ): Collection, data= [ 0x01 ] 1 Application Item(Local ): Usage, data= [ 0x02 ] 2 (null) Item(Main ): Collection, data= [ 0x00 ] 0 Physical Item(Global): Usage Page, data= [ 0xa1 0xff ] 65441 (null) Item(Local ): Usage, data= [ 0x03 ] 3 (null) Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x02 ] 2 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x04 ] 4 (null) Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x08 ] 8 Item(Main ): Output, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): End Collection, data=none Item(Main ): End Collection, data=none Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type none wMaxPacketSize 8 bInterval 10 Language IDs: (length=4) 0409 English(US) ---------------------------------------------------------------------- If I misunderstood the rationale, I'd very much appreciate if someone could tell me how to set the values without HIDIOCSUSAGE. Cheers, -- Donate to FSF France online : http://rate.affero.net/fsffrance/ Loic Dachary, 12 bd Magenta, 75010 Paris. Tel: 33 1 42 45 07 97 http://www.fsffrance.org/ http://www.dachary.org/loic/gpg.txt ------------------------------------------------------- This SF.net email is sponsored by: The SF.net Donation Program. Do you like what SourceForge.net is doing for the Open Source Community? Make a contribution, and help us add new features and functionality. Click here: http://sourceforge.net/donate/ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel