On Mon, 13 Apr 2009, Alan Stern wrote: > > Item(Global): Usage Page, data= [ 0x0c ] 12 > > Consumer > > Item(Local ): Usage, data= [ 0x01 ] 1 > > Consumer Control > > Item(Main ): Collection, data= [ 0x01 ] 1 > > Application > > Item(Global): Usage Page, data= [ 0x0c ] 12 > > Consumer > > Item(Local ): Usage, data= [ 0xe9 ] 233 > > Volume Increment > > Item(Global): Usage Page, data= [ 0x0c ] 12 > > Consumer > > Item(Local ): Usage, data= [ 0xea ] 234 > > Volume Decrement > > Item(Global): Logical Minimum, data= [ 0x00 ] 0 > > Item(Global): Logical Maximum, data= [ 0x01 ] 1 > > Item(Global): Report Count, data= [ 0x02 ] 2 > > Item(Global): Report Size, data= [ 0x01 ] 1 > > Item(Main ): Input, data= [ 0x42 ] 66 > > Data Variable Absolute No_Wrap Linear > > Preferred_State Null_State Non_Volatile Bitfield > > Item(Global): Report Count, data= [ 0x01 ] 1 > > Item(Global): Report Size, data= [ 0x06 ] 6 > > Item(Main ): Input, data= [ 0x01 ] 1 > > Constant Array Absolute No_Wrap Linear > > Preferred_State No_Null_Position Non_Volatile Bitfield > > Item(Main ): End Collection, data=none > I'm not an expert at HID, but this seems clear enough. The report > contains two 1-bit items, representing a Volume Increment and a Volume > Decrement button, plus a 6-bit item which has no meaning and is always > constant (i.e., padding to bring the total size up to 8 bits). > That explains why you only see two buttons in the event listing. > If you want, you can trace the actual operation of the device by using > usbmon. Instructions are in the kernel source file > Documentation/usb/usbmon.txt. Yes, probably the report descriptor of the device doens't really reflect what the device is actually sedning in its reports, and this causes events to be lost. We already have support for such devices in kernel, sometimes just run-time patching of the report descriptor before it enters the HID parser is sufficient. You could also try to recompile your kernel with CONFIG_HID_DEBUG (if not already done), modprobe the 'hid' module with 'debug=2' parameter, and show me the output that appears in dmesg when you press the non-working keys. -- Jiri Kosina SUSE Labs -- 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