* Problems with a Zytronic touchscreen on kernel 3.5 (USB ID 0x14c8:0x0005) - regression from kernel 3.0
@ 2012-08-01 8:20 Simon Farnsworth
2012-08-01 9:50 ` Benjamin Tissoires
0 siblings, 1 reply; 3+ messages in thread
From: Simon Farnsworth @ 2012-08-01 8:20 UTC (permalink / raw)
To: linux-input
[-- Attachment #1.1: Type: text/plain, Size: 2260 bytes --]
Hello,
Greg K-H pointed me this way from linux-usb; I've had no replies there, but if
you've already seen the message on linux-usb, nothing's changed in the text
below or the attachments.
I'm trying to get a Zytronic single-touch touchscreen to work with Linux
kernel 3.5; it previously worked on a 3.0 kernel. I'm happy to try git kernels
and patches, even if they're just intended to gather more information.
hid-multitouch is picking up the device because it has multitouch report
descriptors as well as the single-touch descriptors. There's a quirk to make
it use MT_CLS_SERIAL, but that seems to be insufficient for my needs.
I've got as far as determining that it's mt_event in hid-multitouch.c that
consumes the events, but as the screen never sends the events hid-multitouch.c
expects to see, mt_event nevers sends an input event.
evtest on 3.0 shows touch events as expected. evtest on 3.5 shows no touch
events.
I've attached /sys/kernel/debug/hid/0003:14C8:0005.0001/rdesc as
zyntronic.rdesc and /sys/kernel/debug/hid/0003:14C8:0005.0001/events while I
touch the screen as zytronic.events.
I had evtest /dev/input/event5 running while I captured zytronic.events, and
got the following output:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x14c8 product 0x5 version 0x101
Input device name: "Zytronic Displays Limited Zytronic Touchscreen Controller"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 4096
Event code 1 (ABS_Y)
Value 0
Min 0
Max 4096
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 9
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 4096
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 4096
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Testing ... (interrupt to exit)
^C
Any ideas, or instructions for gathering more debug information will be
gratefully received.
--
Simon Farnsworth
Software Engineer
ONELAN Ltd
http://www.onelan.com
[-- Attachment #1.2: zytronic.rdesc --]
[-- Type: text/plain, Size: 8524 bytes --]
05 0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 09 32 95 01 81 02 95 06 81 01 05 01 26 00 10 75 10 95 01 65 00 09 30 81 02 09 31 46 00 10 81 02 05 0d 09 51 26 ff 00 75 08 95 01 81 02 c0 85 02 09 55 15 00 25 08 75 08 95 01 b1 02 c0 05 0d 09 0e a1 01 85 03 a1 02 09 23 09 52 09 53 15 00 25 08 75 08 95 02 b1 02 c0 c0 05 01 09 02 a1 01 09 01 a1 00 85 04 05 09 19 01 29 02 15 00 25 01 95 02 75 01 81 02 95 01 75 06 81 01 05 01 09 30 09 31 15 00 26 00 10 35 00 46 00 10 65 00 75 10 95 02 81 62 c0 c0 06 00 ff 09 01 a1 01 85 05 09 00 15 00 26 ff 00 75 08 95 3f b1 02 c0 06 00 ff 09 01 a1 01 85 06 09 00 15 00 26 ff 00 75 08 95 3f 81 02 c0
INPUT(1)[INPUT]
Field(0)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.TipSwitch
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.InRange
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(1)
Flags( Variable Absolute )
Field(2)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.X
Logical Minimum(0)
Logical Maximum(4096)
Report Size(16)
Report Count(1)
Report Offset(8)
Flags( Variable Absolute )
Field(3)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(4096)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(16)
Report Count(1)
Report Offset(24)
Flags( Variable Absolute )
Field(4)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactID
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(8)
Report Count(1)
Report Offset(40)
Flags( Variable Absolute )
INPUT(4)[INPUT]
Field(0)
Physical(GenericDesktop.Pointer)
Application(GenericDesktop.Mouse)
Usage(2)
Button.0001
Button.0002
Logical Minimum(0)
Logical Maximum(1)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(1)
Report Count(2)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Physical(GenericDesktop.Pointer)
Application(GenericDesktop.Mouse)
Usage(2)
GenericDesktop.X
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(4096)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(16)
Report Count(2)
Report Offset(8)
Flags( Variable Absolute NoPreferredState NullState )
INPUT(6)[INPUT]
Field(0)
Application(ff00.0001)
Usage(63)
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(8)
Report Count(63)
Report Offset(0)
Flags( Variable Absolute )
FEATURE(2)[FEATURE]
Field(0)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactMaximumNumber
Logical Minimum(0)
Logical Maximum(8)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
FEATURE(3)[FEATURE]
Field(0)
Application(Digitizers.000e)
Usage(3)
Digitizers.0023
Digitizers.InputMode
Digitizers.DeviceIndex
Logical Minimum(0)
Logical Maximum(8)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(8)
Report Count(2)
Report Offset(0)
Flags( Variable Absolute )
FEATURE(5)[FEATURE]
Field(0)
Application(ff00.0001)
Usage(63)
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
ff00.0000
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(4096)
Report Size(8)
Report Count(63)
Report Offset(0)
Flags( Variable Absolute )
Digitizers.TipSwitch ---> Key.Touch
Digitizers.InRange ---> Sync.Report
GenericDesktop.X ---> Absolute.MTPositionX
GenericDesktop.Y ---> Absolute.MTPositionY
Digitizers.ContactID ---> Sync.Report
Button.0001 ---> Key.LeftBtn
Button.0002 ---> Key.RightBtn
GenericDesktop.X ---> Absolute.X
GenericDesktop.Y ---> Absolute.Y
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
ff00.0000 ---> Sync.Report
[-- Attachment #1.3: zytronic.events --]
[-- Type: text/plain, Size: 10032 bytes --]
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 0f 0a c7 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 00 0f 0a c7 04
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2575
GenericDesktop.Y = 1223
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 13 0a cc 03
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 00 13 0a cc 03
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2579
GenericDesktop.Y = 972
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 01 2b 09 10 04
Button.0001 = 1
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
report (size 6) (numbered) = 04 00 2b 09 10 04
Button.0001 = 0
Button.0002 = 0
GenericDesktop.X = 2347
GenericDesktop.Y = 1040
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Problems with a Zytronic touchscreen on kernel 3.5 (USB ID 0x14c8:0x0005) - regression from kernel 3.0
2012-08-01 8:20 Problems with a Zytronic touchscreen on kernel 3.5 (USB ID 0x14c8:0x0005) - regression from kernel 3.0 Simon Farnsworth
@ 2012-08-01 9:50 ` Benjamin Tissoires
2012-08-01 10:35 ` Simon Farnsworth
0 siblings, 1 reply; 3+ messages in thread
From: Benjamin Tissoires @ 2012-08-01 9:50 UTC (permalink / raw)
To: Simon Farnsworth; +Cc: linux-input, Greg Kroah-Hartman
Hi Simon,
well, it's a known bug. This panel is now fixed in 3.6-rc0, and I
submitted the fix for stable. I'm still waiting for the stable
approval.
BTW, Zytronic 0005 is a multitouch device and not only a single touch
one. So I think we should handle it through hid-multitouch. I know
that Zytronic develops its own driver in parallel to fix some problems
they may have with the multitouch layer. This will also allow them to
flash their firmware.
Cheers,
Benjamin
PS: the fix is at
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=4aceed37e315e8eaa26cb4c8dfd619a32fa24669
On Wed, Aug 1, 2012 at 10:20 AM, Simon Farnsworth
<simon.farnsworth@onelan.co.uk> wrote:
> Hello,
>
> Greg K-H pointed me this way from linux-usb; I've had no replies there, but if
> you've already seen the message on linux-usb, nothing's changed in the text
> below or the attachments.
>
> I'm trying to get a Zytronic single-touch touchscreen to work with Linux
> kernel 3.5; it previously worked on a 3.0 kernel. I'm happy to try git kernels
> and patches, even if they're just intended to gather more information.
>
> hid-multitouch is picking up the device because it has multitouch report
> descriptors as well as the single-touch descriptors. There's a quirk to make
> it use MT_CLS_SERIAL, but that seems to be insufficient for my needs.
>
> I've got as far as determining that it's mt_event in hid-multitouch.c that
> consumes the events, but as the screen never sends the events hid-multitouch.c
> expects to see, mt_event nevers sends an input event.
>
> evtest on 3.0 shows touch events as expected. evtest on 3.5 shows no touch
> events.
>
> I've attached /sys/kernel/debug/hid/0003:14C8:0005.0001/rdesc as
> zyntronic.rdesc and /sys/kernel/debug/hid/0003:14C8:0005.0001/events while I
> touch the screen as zytronic.events.
>
> I had evtest /dev/input/event5 running while I captured zytronic.events, and
> got the following output:
>
> Input driver version is 1.0.1
> Input device ID: bus 0x3 vendor 0x14c8 product 0x5 version 0x101
> Input device name: "Zytronic Displays Limited Zytronic Touchscreen Controller"
> Supported events:
> Event type 0 (EV_SYN)
> Event type 1 (EV_KEY)
> Event code 330 (BTN_TOUCH)
> Event type 3 (EV_ABS)
> Event code 0 (ABS_X)
> Value 0
> Min 0
> Max 4096
> Event code 1 (ABS_Y)
> Value 0
> Min 0
> Max 4096
> Event code 47 (ABS_MT_SLOT)
> Value 0
> Min 0
> Max 9
> Event code 53 (ABS_MT_POSITION_X)
> Value 0
> Min 0
> Max 4096
> Event code 54 (ABS_MT_POSITION_Y)
> Value 0
> Min 0
> Max 4096
> Event code 57 (ABS_MT_TRACKING_ID)
> Value 0
> Min 0
> Max 65535
> Testing ... (interrupt to exit)
> ^C
>
> Any ideas, or instructions for gathering more debug information will be
> gratefully received.
> --
> Simon Farnsworth
> Software Engineer
> ONELAN Ltd
> http://www.onelan.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Problems with a Zytronic touchscreen on kernel 3.5 (USB ID 0x14c8:0x0005) - regression from kernel 3.0
2012-08-01 9:50 ` Benjamin Tissoires
@ 2012-08-01 10:35 ` Simon Farnsworth
0 siblings, 0 replies; 3+ messages in thread
From: Simon Farnsworth @ 2012-08-01 10:35 UTC (permalink / raw)
To: Benjamin Tissoires; +Cc: linux-input, Greg Kroah-Hartman
[-- Attachment #1: Type: text/plain, Size: 563 bytes --]
On Wednesday 1 August 2012 11:50:28 Benjamin Tissoires wrote:
> Hi Simon,
>
> well, it's a known bug. This panel is now fixed in 3.6-rc0, and I
> submitted the fix for stable. I'm still waiting for the stable
> approval.
>
<snip>
>
> PS: the fix is at
>
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=4aceed37e315e8eaa26cb4c8dfd619a32fa24669
>
I've just confirmed that applying 4aceed37e315e8eaa26cb4c8dfd619a32fa24669 on
top of 3.5 fixes my problem.
Thanks,
--
Simon Farnsworth
Software Engineer
ONELAN Ltd
http://www.onelan.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-08-01 10:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-01 8:20 Problems with a Zytronic touchscreen on kernel 3.5 (USB ID 0x14c8:0x0005) - regression from kernel 3.0 Simon Farnsworth
2012-08-01 9:50 ` Benjamin Tissoires
2012-08-01 10:35 ` Simon Farnsworth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).