linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).