Hello Joey, Joey Lee [2011-03-16 1:06 -0600]: > P: /devices/virtual/input/input7 > E: UDEV_LOG=3 > E: DEVPATH=/devices/virtual/input/input7 > E: PRODUCT=19/0/0/0 > E: NAME="MSI Laptop hotkeys" > E: PHYS="msi-laptop/input0" > E: EV==3 > E: KEY==180000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > E: MODALIAS=input:b0019v0000p0000e0000-e0,1,k213,214,ramlsfw > E: SUBSYSTEM=input Ah, thanks for this data. This indeed helped to demonstrate the problem. First I added some debugging output to input_id [1]. While debugging I got an overflow, because your data is apparently from a 32 bit machine/kernel, while I'm running 64 bit. I fixed that as well while I was at it [2]. After fudging the data to be in the proper 64 bit format, I was able to see what the KEY_MAX problem was. Unfortunately the KEY_* and BTN_* blocks are alternating in linux/input.h, so the fix looks a bit unelegant, but it works now [3]. Thanks! Martin [1] http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=941c40bdc47d1fdee651558dd0e162cd8d674fab [2] http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=88149f668ea7ac23c61f6d1982db4f4517da763c [3] http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=792479aca54d266430c900f90557ea8d0da2c125 -- Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
Attachment:
signature.asc
Description: Digital signature