On Tue, Aug 26, 2014 at 3:29 AM, Christian Gmeiner <christian.gmeiner@xxxxxxxxx> wrote: > Hi Benjamin. > > 2014-08-25 17:43 GMT+02:00 Benjamin Tissoires <benjamin.tissoires@xxxxxxxxx>: >> On Mon, Aug 25, 2014 at 10:48 AM, Christian Gmeiner >> <christian.gmeiner@xxxxxxxxx> wrote: >>> This driver is a cleaned up version of >>> http://git.android-x86.org/?p=kernel/cdv.git;a=blob_plain;f=drivers/hid/hid-penmount.c;hb=HEAD >> >> This is definitively weird. According to your driver, it should go by >> default through hid-multitouch and behave correctly (at least the >> multi-touch versions, and I would say yours too). >> > > I thought I have tried it with hid-multitouch, but I it never gets used. > > [ 94.342542] usb 2-1.7: USB disconnect, device number 6 > [ 96.312636] usb 2-1.7: new full-speed USB device number 7 using ehci-pci > [ 96.399606] usb 2-1.7: New USB device found, idVendor=14e1, idProduct=6000 > [ 96.399611] usb 2-1.7: New USB device strings: Mfr=1, Product=2, > SerialNumber=0 > [ 96.399614] usb 2-1.7: Product: PenMount USB > [ 96.399617] usb 2-1.7: Manufacturer: DIALOGUE INC > [ 96.402777] input: DIALOGUE INC PenMount USB as > /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.0/0003:14E1:6000.0004/input/input12 > [ 96.403533] hid-generic 0003:14E1:6000.0004: input,hidraw2: USB HID > v1.01 Mouse [DIALOGUE INC PenMount USB] on usb-0000:00:1d.0-1.7/input0 Yep, it will never go through hid-multitouch because the report descriptor does not contain the ContactID usage. So hid-generic is fine for now. > > >> Can you send me some touch recordings of your device with >> hid-recorder[1] please? No need to remove your driver, it will capture >> raw input events, so you should be just fine. > > [christian@chgm-pc hid]$ sudo hid-recorder > Available devices: > /dev/hidraw0: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) > /dev/hidraw1: LITE-ON Technology USB NetVista Full Width Keyboard. > /dev/hidraw2: DIALOGUE INC PenMount USB > Select the device event number [0-2]: 2 > R: 76 05 01 09 02 a1 01 09 01 a1 00 09 00 15 00 25 01 95 06 75 01 81 > 01 05 09 19 01 29 03 15 00 25 01 95 02 75 01 81 02 05 01 09 30 09 31 > 15 00 26 ff 03 36 80 00 46 ff 7f 75 10 95 02 81 02 09 00 15 00 26 ff > 00 75 08 95 05 b1 02 c0 c0 > N: DIALOGUE INC PenMount USB > P: usb-0000:00:1d.0-1.7/input0 > I: 3 14e1 6000 > E: 0.000000 5 30 d0 00 d1 01 > E: 0.000945 5 70 d0 00 d1 01 > E: 0.006984 5 70 d0 00 d1 01 > E: 0.012961 5 70 d0 00 d1 01 > E: 0.019001 5 70 d0 00 d1 01 > E: 0.025965 5 70 d0 00 d1 01 > E: 0.031960 5 70 d0 00 d1 01 > E: 0.037964 5 70 d0 00 d1 01 > E: 0.043964 5 70 d0 00 d1 01 > E: 0.050988 5 70 d0 00 d1 01 > E: 0.056945 5 70 d0 00 d1 01 > E: 0.062985 5 70 d0 00 d1 01 > E: 0.068965 5 70 d0 00 d1 01 > E: 0.075974 5 70 d0 00 d1 01 > E: 0.081961 5 70 d0 00 d1 01 > E: 0.112985 5 70 d0 00 d1 01 > E: 0.118978 5 70 d0 00 d0 01 > E: 0.124978 5 70 d1 00 d0 01 > E: 0.131973 5 70 d3 00 d0 01 > E: 0.137971 5 70 d4 00 d0 01 > E: 0.143919 5 70 d5 00 cf 01 > E: 0.149938 5 70 d7 00 cf 01 > E: 0.155971 5 70 d9 00 cf 01 > E: 0.163011 5 70 db 00 ce 01 > E: 0.168984 5 70 dc 00 ce 01 > E: 0.174996 5 70 de 00 cd 01 > E: 0.180957 5 70 e0 00 cd 01 > E: 0.187985 5 70 e1 00 cc 01 > E: 0.193991 5 70 e3 00 cc 01 > E: 0.199984 5 70 e5 00 cb 01 > E: 0.206006 5 70 e7 00 cb 01 > E: 0.212986 5 70 e9 00 ca 01 > E: 0.218988 5 70 eb 00 ca 01 > E: 0.224955 5 70 ed 00 c9 01 > E: 0.230943 5 70 f0 00 c9 01 > E: 0.237986 5 70 f2 00 c8 01 > E: 0.243951 5 70 f5 00 c7 01 > E: 0.262959 5 70 f8 00 c6 01 > E: 0.269008 5 70 fc 00 c5 01 > E: 0.274963 5 70 ff 00 c3 01 > E: 0.280913 5 70 03 01 c1 01 > E: 0.287962 5 70 07 01 c0 01 > E: 0.293989 5 70 0a 01 bf 01 > E: 0.299971 5 70 0e 01 be 01 > E: 0.305973 5 70 12 01 bd 01 > E: 0.313004 5 70 15 01 bc 01 > E: 0.318966 5 70 18 01 bb 01 > E: 0.324979 5 70 1b 01 ba 01 > E: 0.330975 5 70 1f 01 b9 01 > E: 0.337957 5 70 22 01 b8 01 > E: 0.343986 5 70 25 01 b7 01 > E: 0.349924 5 70 28 01 b5 01 > E: 0.355963 5 70 2c 01 b4 01 > E: 0.362928 5 70 2f 01 b3 01 > E: 0.368975 5 70 33 01 b1 01 > E: 0.374911 5 70 36 01 b0 01 > E: 0.380961 5 70 39 01 af 01 > E: 0.387969 5 70 3d 01 af 01 > E: 0.393916 5 70 40 01 ae 01 > E: 0.399961 5 70 43 01 ad 01 > E: 0.405957 5 70 47 01 ad 01 > E: 0.412947 5 70 4a 01 ac 01 > E: 0.418982 5 70 4d 01 ab 01 > E: 0.424983 5 70 50 01 aa 01 > E: 0.430989 5 70 54 01 a9 01 > E: 0.437946 5 70 57 01 a8 01 > E: 0.443999 5 70 5a 01 a7 01 > E: 0.449980 5 70 5d 01 a6 01 > E: 0.455972 5 70 61 01 a5 01 > E: 0.462986 5 70 64 01 a4 01 > E: 0.468994 5 70 67 01 a3 01 > E: 0.474981 5 70 6a 01 a3 01 > E: 0.480990 5 70 6c 01 a2 01 > E: 0.487974 5 70 6f 01 a1 01 > E: 0.493988 5 70 72 01 a1 01 > E: 0.500009 5 70 75 01 a0 01 > E: 0.505973 5 70 77 01 9f 01 > E: 0.512990 5 70 7a 01 9f 01 > E: 0.518971 5 70 7d 01 9e 01 > E: 0.524988 5 70 7f 01 9e 01 > E: 0.530969 5 70 81 01 9e 01 > E: 0.537991 5 70 83 01 9d 01 > E: 0.543979 5 70 86 01 9d 01 > E: 0.549988 5 70 88 01 9c 01 > E: 0.555973 5 70 8a 01 9c 01 > E: 0.562958 5 70 8c 01 9c 01 > E: 0.568917 5 70 8d 01 9b 01 > E: 0.574984 5 70 8f 01 9b 01 > E: 0.580986 5 70 92 01 9b 01 > E: 0.587984 5 70 94 01 9a 01 > E: 0.593990 5 70 95 01 9a 01 > E: 0.599959 5 70 97 01 99 01 > E: 0.605980 5 70 97 01 99 01 > E: 0.612983 5 70 98 01 99 01 > E: 0.618990 5 70 9a 01 98 01 > E: 0.624972 5 70 9b 01 98 01 > E: 0.630983 5 70 9c 01 97 01 > E: 0.638007 5 70 9e 01 97 01 > E: 0.643953 5 70 9f 01 97 01 > E: 0.649986 5 70 a1 01 96 01 > E: 0.655975 5 70 a1 01 96 01 > E: 0.662980 5 70 a3 01 96 01 > E: 0.668993 5 70 a4 01 95 01 > Weird, this trace is missing the release from the finger (it should start with 5 30 ...) As I understand, the only problem which your driver is trying to solve is to map the button 0 emitted by your touchscreen to BTN_TOUCH (I have the feeling that you already said that, but I can not find it in the thread :/ -> found your other thread). You have 2 possibilities: 1. fix the report descriptor and rely on the generic implementations 2. just handle the button mapping in this penmount driver and leave the rest to the generic code. The choice 2. might be easier if you never played with report descriptors. You will just have to heavily remove stuffs from your current version: - struct penmount_priv is not required anymore - in penmount_input_mapping() just map HID_UP_BUTTON to BTN_TOUCH, and return 0 for everything else - remove penmount_process() and penmount_event() - no need to have a probe or a remove function anymore - use the macro module_hid_driver(penmount_driver) instead of having your own penmount_init() and penmount_exit() You might also want to say that you are the author of the module and also just say that you based your work on a hid-penmount copyrighted by PenMount Touch Solution <...>. The code should be very different by now, so there is no need IMO to keep the author when you completely have rewritten the code. Cheers, Benjamin -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html