Message ID | 1305725244-5327-1-git-send-email-benjamin.tissoires@enac.fr (mailing list archive) |
---|---|
State | Accepted |
Commit | df167c4a0d68a9dbde044a39a77f255ac666f93e |
Headers | show |
On Wed, 18 May 2011, Benjamin Tissoires wrote:
> This patch enables support for Lumio optical devices.
Applied, thanks Benjamin.
>>>>> "Benjamin" == Benjamin Tissoires <benjamin.tissoires@enac.fr> writes:
Benjamin> This patch enables support for Lumio optical devices.
Benjamin> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
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
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 <jacmet@sunsite.dk> wrote: >>>>>> "Benjamin" == Benjamin Tissoires <benjamin.tissoires@enac.fr> writes: > > Benjamin> This patch enables support for Lumio optical devices. > Benjamin> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr> > > 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 > -- 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
Le 20 mai 2011 à 00:37, Benjamin Tissoires a écrit : > 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. Might be the same serial protocol as in capacitive eGalax panels. St. -- 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
>>>>> "Benjamin" == Benjamin Tissoires <benjamin.tissoires@enac.fr> writes:
Hi,
Benjamin> your device presents Contact ID, Tip Switch, In Range and
Benjamin> Confidence. I would say that Win 7 would treat it as a
Benjamin> multitouch screen, so this might work with
Benjamin> hid-multitouch. Please note that's the first time I see a
Benjamin> report descriptor with only one touch reported for a
Benjamin> multitouch screen.
Benjamin> For the configuration, the device may emulate a mouse by
Benjamin> default, and hid-multitouch is able to switch to the
Benjamin> multitouch mode. You will loose the right click, but it can
Benjamin> be enabled in gnome at least (accessibility settings).
Benjamin> Can you just replace in hid-ids.h:
Benjamin> - #define USB_DEVICE_ID_CRYSTALTOUCH 0x0006
Benjamin> + #define USB_DEVICE_ID_CRYSTALTOUCH 0x0005
Benjamin> and see if it's working? If you prefer, I can make a new
Benjamin> patch, but I'll need to know which kernel you are running
Benjamin> (tree and branch). A 2.6.39 and above would be great.
I'm on 2.6.39. The patch doesn't apply cleanly, but I've fixed it up
manually (http://peter.korsgaard.com/lumio-2.6.29.patch).
hid-multitouch does get loaded, and everything looks OK:
usb 2-1.1: new full speed USB device number 4 using uhci_hcd
hid-multitouch 0003:202E:0005.0008: hiddev0: USB HID v1.10 Device [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input0
input: LUMIO Inc LUMIO CrystalTouch ver 1.1C as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input18
hid-multitouch 0003:202E:0005.0009: input: USB HID v1.11 Keyboard [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input1
input: LUMIO Inc LUMIO CrystalTouch ver 1.1C as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.2/input/input19
hid-multitouch 0003:202E:0005.000A: input: USB HID v1.11 Mouse [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input2
input: LUMIO Inc LUMIO CrystalTouch ver 1.1C as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input20
hid-multitouch 0003:202E:0005.000B: input: USB HID v1.11 Device [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input3
Evdev output is also different, but it doesn't seem to ever generate any
events when I touch the screen.
Before I had:
I: Bus=0003 Vendor=202e Product=0005 Version=0111
N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C"
P: Phys=usb-0000:00:1d.0-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input28
U: Uniq=
H: Handlers=mac-button-emul sysrq kbd event16
B: PROP=0
B: EV=100013
B: KEY=e080ffdf01cfffff fffffffffffffffe
B: MSC=10
I: Bus=0003 Vendor=202e Product=0005 Version=0111
N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C"
P: Phys=usb-0000:00:1d.0-1.1/input2
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.2/input/input29
U: Uniq=
H: Handlers=mac-button-emul event17
B: PROP=0
B: EV=1f
B: KEY=70000 0 0 0 0
B: REL=200
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=202e Product=0005 Version=0111
N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C"
P: Phys=usb-0000:00:1d.0-1.1/input3
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input30
U: Uniq=
H: Handlers=mac-button-emul event18
B: PROP=0
B: EV=1b
B: KEY=420 1 0 0 0 0
B: ABS=10000000003
B: MSC=10
With event16 + event18 never generating any events, and event17 giving:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x202e product 0x5 version 0x111
Input device name: "LUMIO Inc LUMIO CrystalTouch ver 1.1C"
Supported events:
Event type 0 (Sync)
Event type 1 (Key)
Event code 272 (LeftBtn)
Event code 273 (RightBtn)
Event code 274 (MiddleBtn)
Event type 2 (Relative)
Event code 9 (Misc)
Event type 3 (Absolute)
Event code 0 (X)
Value 650
Min 0
Max 4095
Event code 1 (Y)
Value 3221
Min 0
Max 4095
Event type 4 (Misc)
Event code 4 (ScanCode)
Testing ... (interrupt to exit)
Event: time 1305882024.934011, type 4 (Misc), code 4 (ScanCode), value 90001
Event: time 1305882024.934017, type 1 (Key), code 272 (LeftBtn), value 1
Event: time 1305882024.934029, type 3 (Absolute), code 0 (X), value 270
Event: time 1305882024.934034, type 3 (Absolute), code 1 (Y), value 1513
Event: time 1305882024.934039, type 2 (Relative), code 9 (Misc), value 1
Event: time 1305882024.934043, -------------- Report Sync ------------
Event: time 1305882024.943019, type 2 (Relative), code 9 (Misc), value 1
Event: time 1305882024.943025, -------------- Report Sync ------------
Event: time 1305882024.951998, type 3 (Absolute), code 0 (X), value 275
Event: time 1305882024.952006, type 3 (Absolute), code 1 (Y), value 1519
Event: time 1305882024.952010, type 2 (Relative), code 9 (Misc), value 1
Event: time 1305882024.952014, -------------- Report Sync ------------
Now with hid-multitouch I have:
I: Bus=0003 Vendor=202e Product=0005 Version=0111
N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C"
P: Phys=usb-0000:00:1d.0-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input18
U: Uniq=
H: Handlers=mac-button-emul event16
B: PROP=0
B: EV=100003
B: KEY=0
I: Bus=0003 Vendor=202e Product=0005 Version=0111
N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C"
P: Phys=usb-0000:00:1d.0-1.1/input2
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.2/input/input19
U: Uniq=
H: Handlers=mac-button-emul event17
B: PROP=0
B: EV=b
B: KEY=0
B: ABS=60000000000003
I: Bus=0003 Vendor=202e Product=0005 Version=0111
N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C"
P: Phys=usb-0000:00:1d.0-1.1/input3
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input20
U: Uniq=
H: Handlers=mac-button-emul event18
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=60000000000003
And event17:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x202e product 0x5 version 0x111
Input device name: "LUMIO Inc LUMIO CrystalTouch ver 1.1C"
Supported events:
Event type 0 (Sync)
Event type 1 (Key)
Event type 3 (Absolute)
Event code 0 (X)
Value 0
Min 0
Max 4095
Event code 1 (Y)
Value 0
Min 0
Max 4095
Event code 53 (?)
Value 0
Min 0
Max 4095
Event code 54 (?)
Value 0
Min 0
Max 4095
Testing ... (interrupt to exit)
Event: time 1305886175.641112, -------------- Report Sync ------------
And then nothing. Any idea about how to progress?
Hi Peter, I'll see with the device maker if your device should work in multitouch. Your new evtest does not report enough multitouch things, which is weird. Cheers, Benjamin On Fri, May 20, 2011 at 12:12, Peter Korsgaard <jacmet@sunsite.dk> wrote: >>>>>> "Benjamin" == Benjamin Tissoires <benjamin.tissoires@enac.fr> writes: > > Hi, > > Benjamin> your device presents Contact ID, Tip Switch, In Range and > Benjamin> Confidence. I would say that Win 7 would treat it as a > Benjamin> multitouch screen, so this might work with > Benjamin> hid-multitouch. Please note that's the first time I see a > Benjamin> report descriptor with only one touch reported for a > Benjamin> multitouch screen. > > Benjamin> For the configuration, the device may emulate a mouse by > Benjamin> default, and hid-multitouch is able to switch to the > Benjamin> multitouch mode. You will loose the right click, but it can > Benjamin> be enabled in gnome at least (accessibility settings). > > Benjamin> Can you just replace in hid-ids.h: > Benjamin> - #define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 > Benjamin> + #define USB_DEVICE_ID_CRYSTALTOUCH 0x0005 > > Benjamin> and see if it's working? If you prefer, I can make a new > Benjamin> patch, but I'll need to know which kernel you are running > Benjamin> (tree and branch). A 2.6.39 and above would be great. > > I'm on 2.6.39. The patch doesn't apply cleanly, but I've fixed it up > manually (http://peter.korsgaard.com/lumio-2.6.29.patch). > > hid-multitouch does get loaded, and everything looks OK: > > usb 2-1.1: new full speed USB device number 4 using uhci_hcd > hid-multitouch 0003:202E:0005.0008: hiddev0: USB HID v1.10 Device [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input0 > input: LUMIO Inc LUMIO CrystalTouch ver 1.1C as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input18 > hid-multitouch 0003:202E:0005.0009: input: USB HID v1.11 Keyboard [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input1 > input: LUMIO Inc LUMIO CrystalTouch ver 1.1C as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.2/input/input19 > hid-multitouch 0003:202E:0005.000A: input: USB HID v1.11 Mouse [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input2 > input: LUMIO Inc LUMIO CrystalTouch ver 1.1C as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input20 > hid-multitouch 0003:202E:0005.000B: input: USB HID v1.11 Device [LUMIO Inc LUMIO CrystalTouch ver 1.1C] on usb-0000:00:1d.0-1.1/input3 > > Evdev output is also different, but it doesn't seem to ever generate any > events when I touch the screen. > > Before I had: > > I: Bus=0003 Vendor=202e Product=0005 Version=0111 > N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C" > P: Phys=usb-0000:00:1d.0-1.1/input1 > S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input28 > U: Uniq= > H: Handlers=mac-button-emul sysrq kbd event16 > B: PROP=0 > B: EV=100013 > B: KEY=e080ffdf01cfffff fffffffffffffffe > B: MSC=10 > > I: Bus=0003 Vendor=202e Product=0005 Version=0111 > N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C" > P: Phys=usb-0000:00:1d.0-1.1/input2 > S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.2/input/input29 > U: Uniq= > H: Handlers=mac-button-emul event17 > B: PROP=0 > B: EV=1f > B: KEY=70000 0 0 0 0 > B: REL=200 > B: ABS=3 > B: MSC=10 > > I: Bus=0003 Vendor=202e Product=0005 Version=0111 > N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C" > P: Phys=usb-0000:00:1d.0-1.1/input3 > S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input30 > U: Uniq= > H: Handlers=mac-button-emul event18 > B: PROP=0 > B: EV=1b > B: KEY=420 1 0 0 0 0 > B: ABS=10000000003 > B: MSC=10 > > With event16 + event18 never generating any events, and event17 giving: > > Input driver version is 1.0.1 > Input device ID: bus 0x3 vendor 0x202e product 0x5 version 0x111 > Input device name: "LUMIO Inc LUMIO CrystalTouch ver 1.1C" > Supported events: > Event type 0 (Sync) > Event type 1 (Key) > Event code 272 (LeftBtn) > Event code 273 (RightBtn) > Event code 274 (MiddleBtn) > Event type 2 (Relative) > Event code 9 (Misc) > Event type 3 (Absolute) > Event code 0 (X) > Value 650 > Min 0 > Max 4095 > Event code 1 (Y) > Value 3221 > Min 0 > Max 4095 > Event type 4 (Misc) > Event code 4 (ScanCode) > Testing ... (interrupt to exit) > Event: time 1305882024.934011, type 4 (Misc), code 4 (ScanCode), value 90001 > Event: time 1305882024.934017, type 1 (Key), code 272 (LeftBtn), value 1 > Event: time 1305882024.934029, type 3 (Absolute), code 0 (X), value 270 > Event: time 1305882024.934034, type 3 (Absolute), code 1 (Y), value 1513 > Event: time 1305882024.934039, type 2 (Relative), code 9 (Misc), value 1 > Event: time 1305882024.934043, -------------- Report Sync ------------ > Event: time 1305882024.943019, type 2 (Relative), code 9 (Misc), value 1 > Event: time 1305882024.943025, -------------- Report Sync ------------ > Event: time 1305882024.951998, type 3 (Absolute), code 0 (X), value 275 > Event: time 1305882024.952006, type 3 (Absolute), code 1 (Y), value 1519 > Event: time 1305882024.952010, type 2 (Relative), code 9 (Misc), value 1 > Event: time 1305882024.952014, -------------- Report Sync ------------ > > > Now with hid-multitouch I have: > > I: Bus=0003 Vendor=202e Product=0005 Version=0111 > N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C" > P: Phys=usb-0000:00:1d.0-1.1/input1 > S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input18 > U: Uniq= > H: Handlers=mac-button-emul event16 > B: PROP=0 > B: EV=100003 > B: KEY=0 > > I: Bus=0003 Vendor=202e Product=0005 Version=0111 > N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C" > P: Phys=usb-0000:00:1d.0-1.1/input2 > S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.2/input/input19 > U: Uniq= > H: Handlers=mac-button-emul event17 > B: PROP=0 > B: EV=b > B: KEY=0 > B: ABS=60000000000003 > > I: Bus=0003 Vendor=202e Product=0005 Version=0111 > N: Name="LUMIO Inc LUMIO CrystalTouch ver 1.1C" > P: Phys=usb-0000:00:1d.0-1.1/input3 > S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input20 > U: Uniq= > H: Handlers=mac-button-emul event18 > B: PROP=0 > B: EV=b > B: KEY=400 0 0 0 0 0 > B: ABS=60000000000003 > > And event17: > > Input driver version is 1.0.1 > Input device ID: bus 0x3 vendor 0x202e product 0x5 version 0x111 > Input device name: "LUMIO Inc LUMIO CrystalTouch ver 1.1C" > Supported events: > Event type 0 (Sync) > Event type 1 (Key) > Event type 3 (Absolute) > Event code 0 (X) > Value 0 > Min 0 > Max 4095 > Event code 1 (Y) > Value 0 > Min 0 > Max 4095 > Event code 53 (?) > Value 0 > Min 0 > Max 4095 > Event code 54 (?) > Value 0 > Min 0 > Max 4095 > Testing ... (interrupt to exit) > Event: time 1305886175.641112, -------------- Report Sync ------------ > > And then nothing. Any idea about how to progress? > > -- > 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 > -- 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
>>>>> "Benjamin" == Benjamin Tissoires <benjamin.tissoires@enac.fr> writes:
Benjamin> Hi Peter,
Benjamin> I'll see with the device maker if your device should work in
Benjamin> multitouch. Your new evtest does not report enough multitouch
Benjamin> things, which is weird.
Thanks. I haven't tried myself, but I believe it works with multitouch
in Win7.
Le 20 mai 2011 à 15:31, Peter Korsgaard a écrit : >>>>>> "Benjamin" == Benjamin Tissoires <benjamin.tissoires@enac.fr> writes: > > Benjamin> Hi Peter, > > Benjamin> I'll see with the device maker if your device should work in > Benjamin> multitouch. Your new evtest does not report enough multitouch > Benjamin> things, which is weird. > > Thanks. I haven't tried myself, but I believe it works with multitouch > in Win7. Benjamin and I have been in touch with the Lumio people about this device and their reply is "old firmware, not supported anymore". Peter, is there a way to upgrade your firmware? Cheers, St. -- 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
>>>>> "Stéphane" == Stéphane Chatty <chatty@enac.fr> writes:
Hi,
Stéphane> Benjamin and I have been in touch with the Lumio people about
Stéphane> this device and their reply is "old firmware, not supported
Stéphane> anymore". Peter, is there a way to upgrade your firmware?
Thanks. I've not been directly involved with this project earlier or in
communication with Lumio, so I'm not 100% sure if this controller board
is able to handle new firmware. This configuration uses 2 cameras, but
we also have another setup with 4 cameras (where multitouch has been
verified under Win7). That one uses a different controller board, and
its firmware uses product ID 6 like on your setup.
I'll try to contact Lumio to verify.
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index d9635d6..5a54b13 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -308,6 +308,7 @@ config HID_MULTITOUCH - Hanvon dual touch panels - Ilitek dual touch panel - IrTouch Infrared USB panels + - Lumio CrystalTouch panels - MosArt dual-touch panels - PenMount dual touch panels - Pixcir dual touch panels diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 77f27ed..8a3ae13 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1411,6 +1411,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACETRAVELLER) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACENAVIGATOR) }, + { HID_USB_DEVICE(USB_VENDOR_ID_LUMIO, USB_DEVICE_ID_CRYSTALTOUCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICOLCD) }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICOLCD_BOOTLOADER) }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 2e46eb2..a8c46b0 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -411,6 +411,9 @@ #define USB_DEVICE_ID_DINOVO_MINI 0xc71f #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 0xca03 +#define USB_VENDOR_ID_LUMIO 0x202e +#define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 + #define USB_VENDOR_ID_MCC 0x09db #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 #define USB_DEVICE_ID_MCC_PMD1208LS 0x007a diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index b21251b..ef33e2d 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -599,6 +599,11 @@ static const struct hid_device_id mt_devices[] = { HID_USB_DEVICE(USB_VENDOR_ID_IRTOUCHSYSTEMS, USB_DEVICE_ID_IRTOUCH_INFRARED_USB) }, + /* Lumio panels */ + { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, + HID_USB_DEVICE(USB_VENDOR_ID_LUMIO, + USB_DEVICE_ID_CRYSTALTOUCH) }, + /* MosArt panels */ { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, HID_USB_DEVICE(USB_VENDOR_ID_ASUS,
This patch enables support for Lumio optical devices. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr> --- drivers/hid/Kconfig | 1 + drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 3 +++ drivers/hid/hid-multitouch.c | 5 +++++ 4 files changed, 10 insertions(+), 0 deletions(-)