From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932411Ab1ESWhK (ORCPT ); Thu, 19 May 2011 18:37:10 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:44095 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754538Ab1ESWhH convert rfc822-to-8bit (ORCPT ); Thu, 19 May 2011 18:37:07 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=AlMUEZ3ohJ+9tS9LUo/a9vz0/S6ZnQTPHdzEyKaErpQa8IuHd01XHR+dkzzYDAkB9U ZmqAeL11QK3uoIGJx5kyhtmJBbNVF2T0a19ZCh2Kqus/TG3bOe7TKBxOumlM91MuAfis 7izWbVfXKBNsjuP2YKf6uEnoA01yjuD1Thj0k= MIME-Version: 1.0 In-Reply-To: <87boyyo0gr.fsf@macbook.be.48ers.dk> References: <1305725244-5327-1-git-send-email-benjamin.tissoires@enac.fr> <87boyyo0gr.fsf@macbook.be.48ers.dk> Date: Fri, 20 May 2011 00:37:05 +0200 X-Google-Sender-Auth: S82uf5YlrfR2nq-e5nQXNywBB2w Message-ID: Subject: Re: [PATCH] hid-multitouch: Add support for Lumio panels From: Benjamin Tissoires To: Peter Korsgaard Cc: Dmitry Torokhov , Henrik Rydberg , Jiri Kosina , Stephane Chatty , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Peter, your device presents Contact ID, Tip Switch, In Range and Confidence. I would say that Win 7 would treat it as a multitouch screen, so this might work with hid-multitouch. Please note that's the first time I see a report descriptor with only one touch reported for a multitouch screen. For the configuration, the device may emulate a mouse by default, and hid-multitouch is able to switch to the multitouch mode. You will loose the right click, but it can be enabled in gnome at least (accessibility settings). Can you just replace in hid-ids.h: - #define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 + #define USB_DEVICE_ID_CRYSTALTOUCH 0x0005 and see if it's working? If you prefer, I can make a new patch, but I'll need to know which kernel you are running (tree and branch). A 2.6.39 and above would be great. Cheers, Benjamin On Thu, May 19, 2011 at 23:16, Peter Korsgaard wrote: >>>>>> "Benjamin" == Benjamin Tissoires writes: > >  Benjamin> This patch enables support for Lumio optical devices. >  Benjamin> Signed-off-by: Benjamin Tissoires > >  Benjamin> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h >  Benjamin> index 2e46eb2..a8c46b0 100644 >  Benjamin> --- a/drivers/hid/hid-ids.h >  Benjamin> +++ b/drivers/hid/hid-ids.h >  Benjamin> @@ -411,6 +411,9 @@ >  Benjamin>  #define USB_DEVICE_ID_DINOVO_MINI   0xc71f >  Benjamin>  #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2  0xca03 > >  Benjamin> +#define USB_VENDOR_ID_LUMIO         0x202e >  Benjamin> +#define USB_DEVICE_ID_CRYSTALTOUCH  0x0006 >  Benjamin> + > > Does this require any special configuration of the touchscreen > controller? I have a 202e:0005 device which afaik normally doesn't send > any multi touch events. > > HID descriptors: > > Bus 001 Device 021: ID 202e:0005 > Device Descriptor: >  bLength                18 >  bDescriptorType         1 >  bcdUSB               2.00 >  bDeviceClass            0 (Defined at Interface level) >  bDeviceSubClass         0 >  bDeviceProtocol         0 >  bMaxPacketSize0        64 >  idVendor           0x202e >  idProduct          0x0005 >  bcdDevice            2.00 >  iManufacturer           1 LUMIO Inc >  iProduct                2 LUMIO CrystalTouch ver 1.1C >  iSerial                 0 >  bNumConfigurations      1 >  Configuration Descriptor: >    bLength                 9 >    bDescriptorType         2 >    wTotalLength          116 >    bNumInterfaces          4 >    bConfigurationValue     1 >    iConfiguration          0 >    bmAttributes         0x80 >      (Bus Powered) >    MaxPower              500mA >    Interface Descriptor: >      bLength                 9 >      bDescriptorType         4 >      bInterfaceNumber        0 >      bAlternateSetting       0 >      bNumEndpoints           2 >      bInterfaceClass         3 Human Interface Device >      bInterfaceSubClass      0 No Subclass >      bInterfaceProtocol      0 None >      iInterface              0 >        HID Device Descriptor: >          bLength                 9 >          bDescriptorType        33 >          bcdHID               1.10 >          bCountryCode            0 Not supported >          bNumDescriptors         1 >          bDescriptorType        34 Report >          wDescriptorLength      38 >          Report Descriptor: (length is 38) >            Item(Global): Usage Page, data= [ 0xa0 0xff ] 65440 >                            (null) >            Item(Local ): Usage, data= [ 0x05 ] 5 >                            (null) >            Item(Main  ): Collection, data= [ 0x01 ] 1 >                            Application >            Item(Local ): Usage, data= [ 0xa6 ] 166 >                            (null) >            Item(Local ): Usage, data= [ 0xa7 ] 167 >                            (null) >            Item(Global): Logical Minimum, data= [ 0x80 ] 128 >            Item(Global): Logical Maximum, data= [ 0x7f ] 127 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Report Count, data= [ 0x40 ] 64 >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Local ): Usage, data= [ 0x33 ] 51 >                            (null) >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Report Count, data= [ 0x40 ] 64 >            Item(Main  ): Output, data= [ 0x00 ] 0 >                            Data Array Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Local ): Usage, data= [ 0x33 ] 51 >                            (null) >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Report Count, data= [ 0x08 ] 8 >            Item(Main  ): Feature, data= [ 0x00 ] 0 >                            Data Array Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            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 >          Usage Type               Data >        wMaxPacketSize     0x0040  1x 64 bytes >        bInterval               2 >      Endpoint Descriptor: >        bLength                 7 >        bDescriptorType         5 >        bEndpointAddress     0x02  EP 2 OUT >        bmAttributes            3 >          Transfer Type            Interrupt >          Synch Type               None >          Usage Type               Data >        wMaxPacketSize     0x0040  1x 64 bytes >        bInterval               2 >    Interface Descriptor: >      bLength                 9 >      bDescriptorType         4 >      bInterfaceNumber        1 >      bAlternateSetting       0 >      bNumEndpoints           1 >      bInterfaceClass         3 Human Interface Device >      bInterfaceSubClass      0 No Subclass >      bInterfaceProtocol      0 None >      iInterface              0 >        HID Device Descriptor: >          bLength                 9 >          bDescriptorType        33 >          bcdHID               1.11 >          bCountryCode            0 Not supported >          bNumDescriptors         1 >          bDescriptorType        34 Report >          wDescriptorLength      64 >          Report Descriptor: (length is 64) >            Item(Global): Usage Page, data= [ 0x01 ] 1 >                            Generic Desktop Controls >            Item(Local ): Usage, data= [ 0x06 ] 6 >                            Keyboard >            Item(Main  ): Collection, data= [ 0x01 ] 1 >                            Application >            Item(Global): Usage Page, data= [ 0x07 ] 7 >                            Keyboard >            Item(Local ): Usage Minimum, data= [ 0xe0 ] 224 >                            Control Left >            Item(Local ): Usage Maximum, data= [ 0xe7 ] 231 >                            GUI Right >            Item(Global): Logical Minimum, data= [ 0x00 ] 0 >            Item(Global): Logical Maximum, data= [ 0x01 ] 1 >            Item(Global): Report Size, data= [ 0x01 ] 1 >            Item(Global): Report Count, data= [ 0x08 ] 8 >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Main  ): Input, data= [ 0x03 ] 3 >                            Constant Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Report Count, data= [ 0x05 ] 5 >            Item(Global): Report Size, data= [ 0x01 ] 1 >            Item(Global): Report Count, data= [ 0x06 ] 6 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Logical Minimum, data= [ 0x00 ] 0 >            Item(Global): Logical Maximum, data= [ 0x65 ] 101 >            Item(Global): Usage Page, data= [ 0x07 ] 7 >                            Keyboard >            Item(Local ): Usage Minimum, data= [ 0x00 ] 0 >                            No Event >            Item(Local ): Usage Maximum, data= [ 0x65 ] 101 >                            Keyboard Application (Windows Key for Win95 or Compose) >            Item(Main  ): Input, data= [ 0x00 ] 0 >                            Data Array Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Usage Page, data= [ 0xa0 0xff ] 65440 >                            (null) >            Item(Local ): Usage, data= [ 0xa5 ] 165 >                            (null) >            Item(Global): Logical Minimum, data= [ 0x80 ] 128 >            Item(Global): Logical Maximum, data= [ 0x7f ] 127 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Report Count, data= [ 0x08 ] 8 >            Item(Main  ): Feature, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Main  ): End Collection, data=none >      Endpoint Descriptor: >        bLength                 7 >        bDescriptorType         5 >        bEndpointAddress     0x86  EP 6 IN >        bmAttributes            3 >          Transfer Type            Interrupt >          Synch Type               None >          Usage Type               Data >        wMaxPacketSize     0x0008  1x 8 bytes >        bInterval               1 >    Interface Descriptor: >      bLength                 9 >      bDescriptorType         4 >      bInterfaceNumber        2 >      bAlternateSetting       0 >      bNumEndpoints           1 >      bInterfaceClass         3 Human Interface Device >      bInterfaceSubClass      0 No Subclass >      bInterfaceProtocol      0 None >      iInterface              0 >        HID Device Descriptor: >          bLength                 9 >          bDescriptorType        33 >          bcdHID               1.11 >          bCountryCode            0 Not supported >          bNumDescriptors         1 >          bDescriptorType        34 Report >          wDescriptorLength      85 >          Report Descriptor: (length is 85) >            Item(Global): Usage Page, data= [ 0x01 ] 1 >                            Generic Desktop Controls >            Item(Local ): Usage, data= [ 0x02 ] 2 >                            Mouse >            Item(Main  ): Collection, data= [ 0x01 ] 1 >                            Application >            Item(Local ): Usage, data= [ 0x01 ] 1 >                            Pointer >            Item(Main  ): Collection, data= [ 0x00 ] 0 >                            Physical >            Item(Global): Usage Page, data= [ 0x09 ] 9 >                            Buttons >            Item(Local ): Usage Minimum, data= [ 0x01 ] 1 >                            Button 1 (Primary) >            Item(Local ): Usage Maximum, data= [ 0x03 ] 3 >                            Button 3 (Tertiary) >            Item(Global): Logical Minimum, data= [ 0x00 ] 0 >            Item(Global): Logical Maximum, data= [ 0x01 ] 1 >            Item(Global): Report Count, data= [ 0x03 ] 3 >            Item(Global): Report Size, data= [ 0x01 ] 1 >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Global): Report Size, data= [ 0x05 ] 5 >            Item(Main  ): Input, data= [ 0x01 ] 1 >                            Constant Array Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Usage Page, data= [ 0x01 ] 1 >                            Generic Desktop Controls >            Item(Local ): Usage, data= [ 0x30 ] 48 >                            Direction-X >            Item(Local ): Usage, data= [ 0x31 ] 49 >                            Direction-Y >            Item(Global): Logical Minimum, data= [ 0x00 0x00 ] 0 >            Item(Global): Logical Maximum, data= [ 0xff 0x0f ] 4095 >            Item(Global): Physical Minimum, data= [ 0x00 0x00 ] 0 >            Item(Global): Physical Maximum, data= [ 0xff 0x7f ] 32767 >            Item(Global): Unit, data= [ 0x00 0x00 ] 0 >                            System: None, Unit: (None) >            Item(Global): Report Size, data= [ 0x10 ] 16 >            Item(Global): Report Count, data= [ 0x02 ] 2 >            Item(Main  ): Input, data= [ 0x62 ] 98 >                            Data Variable Absolute No_Wrap Linear >                            No_Preferred_State Null_State Non_Volatile Bitfield >            Item(Global): Usage Page, data= [ 0x01 ] 1 >                            Generic Desktop Controls >            Item(Local ): Usage, data= [ 0x88 ] 136 >                            System Menu Exit >            Item(Global): Logical Minimum, data= [ 0x81 ] 129 >            Item(Global): Logical Maximum, data= [ 0x7f ] 127 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Main  ): Input, data= [ 0x06 ] 6 >                            Data Variable Relative No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Usage Page, data= [ 0xff ] 255 >                            Vendor Specific >            Item(Local ): Usage, data= [ 0x02 ] 2 >                            (null) >            Item(Global): Report Count, data= [ 0x02 ] 2 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            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 >            Item(Main  ): End Collection, data=none >      Endpoint Descriptor: >        bLength                 7 >        bDescriptorType         5 >        bEndpointAddress     0x85  EP 5 IN >        bmAttributes            3 >          Transfer Type            Interrupt >          Synch Type               None >          Usage Type               Data >        wMaxPacketSize     0x0008  1x 8 bytes >        bInterval               1 >    Interface Descriptor: >      bLength                 9 >      bDescriptorType         4 >      bInterfaceNumber        3 >      bAlternateSetting       0 >      bNumEndpoints           1 >      bInterfaceClass         3 Human Interface Device >      bInterfaceSubClass      0 No Subclass >      bInterfaceProtocol      0 None >      iInterface              0 >        HID Device Descriptor: >          bLength                 9 >          bDescriptorType        33 >          bcdHID               1.11 >          bCountryCode            0 Not supported >          bNumDescriptors         1 >          bDescriptorType        34 Report >          wDescriptorLength      89 >          Report Descriptor: (length is 89) >            Item(Global): Usage Page, data= [ 0x0d ] 13 >                            Digitizer >            Item(Local ): Usage, data= [ 0x04 ] 4 >                            Touch Screen >            Item(Main  ): Collection, data= [ 0x01 ] 1 >                            Application >            Item(Local ): Usage, data= [ 0x22 ] 34 >                            Finger >            Item(Main  ): Collection, data= [ 0x00 ] 0 >                            Physical >            Item(Local ): Usage, data= [ 0x42 ] 66 >                            Tip Switch >            Item(Global): Logical Minimum, data= [ 0x00 ] 0 >            Item(Global): Logical Maximum, data= [ 0x01 ] 1 >            Item(Global): Report Size, data= [ 0x01 ] 1 >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Report Count, data= [ 0x03 ] 3 >            Item(Main  ): Input, data= [ 0x03 ] 3 >                            Constant Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Local ): Usage, data= [ 0x32 ] 50 >                            In Range >            Item(Local ): Usage, data= [ 0x47 ] 71 >                            Confidence >            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(Global): Report Count, data= [ 0x0a ] 10 >            Item(Main  ): Input, data= [ 0x03 ] 3 >                            Constant Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Usage Page, data= [ 0x01 ] 1 >                            Generic Desktop Controls >            Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767 >            Item(Global): Unit, data= [ 0x11 ] 17 >                            System: SI Linear, Unit: Centimeter >            Item(Global): Unit Exponent, data= [ 0x0e ] 14 >                            Unit Exponent: 14 >            Item(Global): Physical Maximum, data= [ 0x5d 0x14 ] 5213 >            Item(Global): Report Size, data= [ 0x10 ] 16 >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Local ): Usage, data= [ 0x30 ] 48 >                            Direction-X >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Local ): Usage, data= [ 0x31 ] 49 >                            Direction-Y >            Item(Global): Physical Maximum, data= [ 0x75 0x0b ] 2933 >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Global): Usage Page, data= [ 0x0d ] 13 >                            Digitizer >            Item(Local ): Usage, data= [ 0x51 ] 81 >                            Contact ID >            Item(Global): Report Size, data= [ 0x10 ] 16 >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Main  ): Input, data= [ 0x02 ] 2 >                            Data Variable Absolute No_Wrap Linear >                            Preferred_State No_Null_Position Non_Volatile Bitfield >            Item(Local ): Usage, data= [ 0x55 ] 85 >                            Maximum Contact Number >            Item(Global): Logical Minimum, data= [ 0x00 ] 0 >            Item(Global): Logical Maximum, data= [ 0x08 ] 8 >            Item(Global): Report Size, data= [ 0x08 ] 8 >            Item(Global): Report Count, data= [ 0x01 ] 1 >            Item(Main  ): Feature, 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     0x87  EP 7 IN >        bmAttributes            3 >          Transfer Type            Interrupt >          Synch Type               None >          Usage Type               Data >        wMaxPacketSize     0x0008  1x 8 bytes >        bInterval               1 > Device Status:     0x0001 >  Self Powered > > -- > Bye, Peter Korsgaard > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at  http://vger.kernel.org/majordomo-info.html > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Tissoires Subject: Re: [PATCH] hid-multitouch: Add support for Lumio panels Date: Fri, 20 May 2011 00:37:05 +0200 Message-ID: References: <1305725244-5327-1-git-send-email-benjamin.tissoires@enac.fr> <87boyyo0gr.fsf@macbook.be.48ers.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:44095 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754538Ab1ESWhH convert rfc822-to-8bit (ORCPT ); Thu, 19 May 2011 18:37:07 -0400 In-Reply-To: <87boyyo0gr.fsf@macbook.be.48ers.dk> Sender: linux-input-owner@vger.kernel.org List-Id: linux-input@vger.kernel.org To: Peter Korsgaard Cc: Dmitry Torokhov , Henrik Rydberg , Jiri Kosina , Stephane Chatty , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Hi Peter, your device presents Contact ID, Tip Switch, In Range and Confidence. I would say that Win 7 would treat it as a multitouch screen, so this might work with hid-multitouch. Please note that's the first time I see a report descriptor with only one touch reported for a multitouch screen. =46or the configuration, the device may emulate a mouse by default, and hid-multitouch is able to switch to the multitouch mode. You will loose the right click, but it can be enabled in gnome at least (accessibility settings). Can you just replace in hid-ids.h: - #define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 + #define USB_DEVICE_ID_CRYSTALTOUCH 0x0005 and see if it's working? If you prefer, I can make a new patch, but I'll need to know which kernel you are running (tree and branch). A 2.6.39 and above would be great. Cheers, Benjamin On Thu, May 19, 2011 at 23:16, Peter Korsgaard wrot= e: >>>>>> "Benjamin" =3D=3D Benjamin Tissoires writes: > > =A0Benjamin> This patch enables support for Lumio optical devices. > =A0Benjamin> Signed-off-by: Benjamin Tissoires > > =A0Benjamin> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids= =2Eh > =A0Benjamin> index 2e46eb2..a8c46b0 100644 > =A0Benjamin> --- a/drivers/hid/hid-ids.h > =A0Benjamin> +++ b/drivers/hid/hid-ids.h > =A0Benjamin> @@ -411,6 +411,9 @@ > =A0Benjamin> =A0#define USB_DEVICE_ID_DINOVO_MINI =A0 0xc71f > =A0Benjamin> =A0#define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 =A00xca03 > > =A0Benjamin> +#define USB_VENDOR_ID_LUMIO =A0 =A0 =A0 =A0 0x202e > =A0Benjamin> +#define USB_DEVICE_ID_CRYSTALTOUCH =A00x0006 > =A0Benjamin> + > > Does this require any special configuration of the touchscreen > controller? I have a 202e:0005 device which afaik normally doesn't se= nd > any multi touch events. > > HID descriptors: > > Bus 001 Device 021: ID 202e:0005 > Device Descriptor: > =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A018 > =A0bDescriptorType =A0 =A0 =A0 =A0 1 > =A0bcdUSB =A0 =A0 =A0 =A0 =A0 =A0 =A0 2.00 > =A0bDeviceClass =A0 =A0 =A0 =A0 =A0 =A00 (Defined at Interface level) > =A0bDeviceSubClass =A0 =A0 =A0 =A0 0 > =A0bDeviceProtocol =A0 =A0 =A0 =A0 0 > =A0bMaxPacketSize0 =A0 =A0 =A0 =A064 > =A0idVendor =A0 =A0 =A0 =A0 =A0 0x202e > =A0idProduct =A0 =A0 =A0 =A0 =A00x0005 > =A0bcdDevice =A0 =A0 =A0 =A0 =A0 =A02.00 > =A0iManufacturer =A0 =A0 =A0 =A0 =A0 1 LUMIO Inc > =A0iProduct =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A02 LUMIO CrystalTouch ver 1= =2E1C > =A0iSerial =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 0 > =A0bNumConfigurations =A0 =A0 =A01 > =A0Configuration Descriptor: > =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 2 > =A0 =A0wTotalLength =A0 =A0 =A0 =A0 =A0116 > =A0 =A0bNumInterfaces =A0 =A0 =A0 =A0 =A04 > =A0 =A0bConfigurationValue =A0 =A0 1 > =A0 =A0iConfiguration =A0 =A0 =A0 =A0 =A00 > =A0 =A0bmAttributes =A0 =A0 =A0 =A0 0x80 > =A0 =A0 =A0(Bus Powered) > =A0 =A0MaxPower =A0 =A0 =A0 =A0 =A0 =A0 =A0500mA > =A0 =A0Interface Descriptor: > =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 4 > =A0 =A0 =A0bInterfaceNumber =A0 =A0 =A0 =A00 > =A0 =A0 =A0bAlternateSetting =A0 =A0 =A0 0 > =A0 =A0 =A0bNumEndpoints =A0 =A0 =A0 =A0 =A0 2 > =A0 =A0 =A0bInterfaceClass =A0 =A0 =A0 =A0 3 Human Interface Device > =A0 =A0 =A0bInterfaceSubClass =A0 =A0 =A00 No Subclass > =A0 =A0 =A0bInterfaceProtocol =A0 =A0 =A00 None > =A0 =A0 =A0iInterface =A0 =A0 =A0 =A0 =A0 =A0 =A00 > =A0 =A0 =A0 =A0HID Device Descriptor: > =A0 =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A033 > =A0 =A0 =A0 =A0 =A0bcdHID =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.10 > =A0 =A0 =A0 =A0 =A0bCountryCode =A0 =A0 =A0 =A0 =A0 =A00 Not supporte= d > =A0 =A0 =A0 =A0 =A0bNumDescriptors =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A034 Report > =A0 =A0 =A0 =A0 =A0wDescriptorLength =A0 =A0 =A038 > =A0 =A0 =A0 =A0 =A0Report Descriptor: (length is 38) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0xa0 0xff = ] 65440 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x05 ] 5 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Collection, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Application > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0xa6 ] 166 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0xa7 ] 167 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x80 = ] 128 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x7f = ] 127 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x40 ] 6= 4 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x33 ] 51 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x40 ] 6= 4 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Output, data=3D [ 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Array Abs= olute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x33 ] 51 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Feature, data=3D [ 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Array Abs= olute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): End Collection, data=3Dnone > =A0 =A0 =A0Endpoint Descriptor: > =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 7 > =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 5 > =A0 =A0 =A0 =A0bEndpointAddress =A0 =A0 0x81 =A0EP 1 IN > =A0 =A0 =A0 =A0bmAttributes =A0 =A0 =A0 =A0 =A0 =A03 > =A0 =A0 =A0 =A0 =A0Transfer Type =A0 =A0 =A0 =A0 =A0 =A0Interrupt > =A0 =A0 =A0 =A0 =A0Synch Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 None > =A0 =A0 =A0 =A0 =A0Usage Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 Data > =A0 =A0 =A0 =A0wMaxPacketSize =A0 =A0 0x0040 =A01x 64 bytes > =A0 =A0 =A0 =A0bInterval =A0 =A0 =A0 =A0 =A0 =A0 =A0 2 > =A0 =A0 =A0Endpoint Descriptor: > =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 7 > =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 5 > =A0 =A0 =A0 =A0bEndpointAddress =A0 =A0 0x02 =A0EP 2 OUT > =A0 =A0 =A0 =A0bmAttributes =A0 =A0 =A0 =A0 =A0 =A03 > =A0 =A0 =A0 =A0 =A0Transfer Type =A0 =A0 =A0 =A0 =A0 =A0Interrupt > =A0 =A0 =A0 =A0 =A0Synch Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 None > =A0 =A0 =A0 =A0 =A0Usage Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 Data > =A0 =A0 =A0 =A0wMaxPacketSize =A0 =A0 0x0040 =A01x 64 bytes > =A0 =A0 =A0 =A0bInterval =A0 =A0 =A0 =A0 =A0 =A0 =A0 2 > =A0 =A0Interface Descriptor: > =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 4 > =A0 =A0 =A0bInterfaceNumber =A0 =A0 =A0 =A01 > =A0 =A0 =A0bAlternateSetting =A0 =A0 =A0 0 > =A0 =A0 =A0bNumEndpoints =A0 =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0bInterfaceClass =A0 =A0 =A0 =A0 3 Human Interface Device > =A0 =A0 =A0bInterfaceSubClass =A0 =A0 =A00 No Subclass > =A0 =A0 =A0bInterfaceProtocol =A0 =A0 =A00 None > =A0 =A0 =A0iInterface =A0 =A0 =A0 =A0 =A0 =A0 =A00 > =A0 =A0 =A0 =A0HID Device Descriptor: > =A0 =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A033 > =A0 =A0 =A0 =A0 =A0bcdHID =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.11 > =A0 =A0 =A0 =A0 =A0bCountryCode =A0 =A0 =A0 =A0 =A0 =A00 Not supporte= d > =A0 =A0 =A0 =A0 =A0bNumDescriptors =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A034 Report > =A0 =A0 =A0 =A0 =A0wDescriptorLength =A0 =A0 =A064 > =A0 =A0 =A0 =A0 =A0Report Descriptor: (length is 64) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Generic Deskto= p Controls > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x06 ] 6 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Keyboard > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Collection, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Application > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x07 ] 7 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Keyboard > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage Minimum, data=3D [ 0xe0 ] = 224 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Control Left > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage Maximum, data=3D [ 0xe7 ] = 231 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0GUI Right > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x00 = ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x01 = ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x03 ] 3 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Constant Varia= ble Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x05 ] 5 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x06 ] 6 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x00 = ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x65 = ] 101 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x07 ] 7 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Keyboard > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage Minimum, data=3D [ 0x00 ] = 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0No Event > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage Maximum, data=3D [ 0x65 ] = 101 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Keyboard Appli= cation (Windows Key for Win95 or Compose) > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Array Abs= olute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0xa0 0xff = ] 65440 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0xa5 ] 165 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x80 = ] 128 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x7f = ] 127 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Feature, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): End Collection, data=3Dnone > =A0 =A0 =A0Endpoint Descriptor: > =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 7 > =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 5 > =A0 =A0 =A0 =A0bEndpointAddress =A0 =A0 0x86 =A0EP 6 IN > =A0 =A0 =A0 =A0bmAttributes =A0 =A0 =A0 =A0 =A0 =A03 > =A0 =A0 =A0 =A0 =A0Transfer Type =A0 =A0 =A0 =A0 =A0 =A0Interrupt > =A0 =A0 =A0 =A0 =A0Synch Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 None > =A0 =A0 =A0 =A0 =A0Usage Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 Data > =A0 =A0 =A0 =A0wMaxPacketSize =A0 =A0 0x0008 =A01x 8 bytes > =A0 =A0 =A0 =A0bInterval =A0 =A0 =A0 =A0 =A0 =A0 =A0 1 > =A0 =A0Interface Descriptor: > =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 4 > =A0 =A0 =A0bInterfaceNumber =A0 =A0 =A0 =A02 > =A0 =A0 =A0bAlternateSetting =A0 =A0 =A0 0 > =A0 =A0 =A0bNumEndpoints =A0 =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0bInterfaceClass =A0 =A0 =A0 =A0 3 Human Interface Device > =A0 =A0 =A0bInterfaceSubClass =A0 =A0 =A00 No Subclass > =A0 =A0 =A0bInterfaceProtocol =A0 =A0 =A00 None > =A0 =A0 =A0iInterface =A0 =A0 =A0 =A0 =A0 =A0 =A00 > =A0 =A0 =A0 =A0HID Device Descriptor: > =A0 =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A033 > =A0 =A0 =A0 =A0 =A0bcdHID =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.11 > =A0 =A0 =A0 =A0 =A0bCountryCode =A0 =A0 =A0 =A0 =A0 =A00 Not supporte= d > =A0 =A0 =A0 =A0 =A0bNumDescriptors =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A034 Report > =A0 =A0 =A0 =A0 =A0wDescriptorLength =A0 =A0 =A085 > =A0 =A0 =A0 =A0 =A0Report Descriptor: (length is 85) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Generic Deskto= p Controls > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Mouse > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Collection, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Application > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Pointer > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Collection, data=3D [ 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Physical > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x09 ] 9 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Buttons > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage Minimum, data=3D [ 0x01 ] = 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Button 1 (Prim= ary) > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage Maximum, data=3D [ 0x03 ] = 3 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Button 3 (Tert= iary) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x00 = ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x01 = ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x03 ] 3 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x05 ] 5 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Constant Array= Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Generic Deskto= p Controls > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x30 ] 48 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Direction-X > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x31 ] 49 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Direction-Y > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x00 = 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0xff = 0x0f ] 4095 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Physical Minimum, data=3D [ 0x00= 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Physical Maximum, data=3D [ 0xff= 0x7f ] 32767 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Unit, data=3D [ 0x00 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0System: None, = Unit: (None) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x10 ] 16 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x62 ] 98 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0No_Preferred_S= tate Null_State Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Generic Deskto= p Controls > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x88 ] 136 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0System Menu Ex= it > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x81 = ] 129 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x7f = ] 127 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x06 ] 6 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Relative No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0xff ] 255 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Vendor Specifi= c > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(null) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Constant Array= Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): End Collection, data=3Dnone > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): End Collection, data=3Dnone > =A0 =A0 =A0Endpoint Descriptor: > =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 7 > =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 5 > =A0 =A0 =A0 =A0bEndpointAddress =A0 =A0 0x85 =A0EP 5 IN > =A0 =A0 =A0 =A0bmAttributes =A0 =A0 =A0 =A0 =A0 =A03 > =A0 =A0 =A0 =A0 =A0Transfer Type =A0 =A0 =A0 =A0 =A0 =A0Interrupt > =A0 =A0 =A0 =A0 =A0Synch Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 None > =A0 =A0 =A0 =A0 =A0Usage Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 Data > =A0 =A0 =A0 =A0wMaxPacketSize =A0 =A0 0x0008 =A01x 8 bytes > =A0 =A0 =A0 =A0bInterval =A0 =A0 =A0 =A0 =A0 =A0 =A0 1 > =A0 =A0Interface Descriptor: > =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 4 > =A0 =A0 =A0bInterfaceNumber =A0 =A0 =A0 =A03 > =A0 =A0 =A0bAlternateSetting =A0 =A0 =A0 0 > =A0 =A0 =A0bNumEndpoints =A0 =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0bInterfaceClass =A0 =A0 =A0 =A0 3 Human Interface Device > =A0 =A0 =A0bInterfaceSubClass =A0 =A0 =A00 No Subclass > =A0 =A0 =A0bInterfaceProtocol =A0 =A0 =A00 None > =A0 =A0 =A0iInterface =A0 =A0 =A0 =A0 =A0 =A0 =A00 > =A0 =A0 =A0 =A0HID Device Descriptor: > =A0 =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 9 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A033 > =A0 =A0 =A0 =A0 =A0bcdHID =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.11 > =A0 =A0 =A0 =A0 =A0bCountryCode =A0 =A0 =A0 =A0 =A0 =A00 Not supporte= d > =A0 =A0 =A0 =A0 =A0bNumDescriptors =A0 =A0 =A0 =A0 1 > =A0 =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A034 Report > =A0 =A0 =A0 =A0 =A0wDescriptorLength =A0 =A0 =A089 > =A0 =A0 =A0 =A0 =A0Report Descriptor: (length is 89) > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x0d ] 13 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Digitizer > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x04 ] 4 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Touch Screen > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Collection, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Application > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x22 ] 34 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Finger > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Collection, data=3D [ 0x00 ] 0 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Physical > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x42 ] 66 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Tip Switch > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x00 = ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x01 = ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x03 ] 3 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x03 ] 3 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Constant Varia= ble Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x32 ] 50 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0In Range > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x47 ] 71 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Confidence > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x0a ] 1= 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x03 ] 3 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Constant Varia= ble Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Generic Deskto= p Controls > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0xff = 0x7f ] 32767 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Unit, data=3D [ 0x11 ] 17 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0System: SI Lin= ear, Unit: Centimeter > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Unit Exponent, data=3D [ 0x0e ] = 14 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Unit Exponent:= 14 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Physical Maximum, data=3D [ 0x5d= 0x14 ] 5213 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x10 ] 16 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x30 ] 48 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Direction-X > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x31 ] 49 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Direction-Y > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Physical Maximum, data=3D [ 0x75= 0x0b ] 2933 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Usage Page, data=3D [ 0x0d ] 13 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Digitizer > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x51 ] 81 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Contact ID > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x10 ] 16 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Input, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Local ): Usage, data=3D [ 0x55 ] 85 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Maximum Contac= t Number > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Minimum, data=3D [ 0x00 = ] 0 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Logical Maximum, data=3D [ 0x08 = ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Size, data=3D [ 0x08 ] 8 > =A0 =A0 =A0 =A0 =A0 =A0Item(Global): Report Count, data=3D [ 0x01 ] 1 > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): Feature, data=3D [ 0x02 ] 2 > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Data Variable = Absolute No_Wrap Linear > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Preferred_Stat= e No_Null_Position Non_Volatile Bitfield > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): End Collection, data=3Dnone > =A0 =A0 =A0 =A0 =A0 =A0Item(Main =A0): End Collection, data=3Dnone > =A0 =A0 =A0Endpoint Descriptor: > =A0 =A0 =A0 =A0bLength =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 7 > =A0 =A0 =A0 =A0bDescriptorType =A0 =A0 =A0 =A0 5 > =A0 =A0 =A0 =A0bEndpointAddress =A0 =A0 0x87 =A0EP 7 IN > =A0 =A0 =A0 =A0bmAttributes =A0 =A0 =A0 =A0 =A0 =A03 > =A0 =A0 =A0 =A0 =A0Transfer Type =A0 =A0 =A0 =A0 =A0 =A0Interrupt > =A0 =A0 =A0 =A0 =A0Synch Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 None > =A0 =A0 =A0 =A0 =A0Usage Type =A0 =A0 =A0 =A0 =A0 =A0 =A0 Data > =A0 =A0 =A0 =A0wMaxPacketSize =A0 =A0 0x0008 =A01x 8 bytes > =A0 =A0 =A0 =A0bInterval =A0 =A0 =A0 =A0 =A0 =A0 =A0 1 > Device Status: =A0 =A0 0x0001 > =A0Self Powered > > -- > Bye, Peter Korsgaard > -- > To unsubscribe from this list: send the line "unsubscribe linux-input= " in > the body of a message to majordomo@vger.kernel.org > More majordomo info at =A0http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-input" = in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html