Bug 805269

Summary: hid-multitouch: Touchscreen not working on Dell ST2220T monitor
Product: [Fedora] Fedora Reporter: Mathieu Brabant <mathieu>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-09-05 14:33:31 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Mathieu Brabant 2012-03-20 18:36:49 UTC
Description of problem:
Touchscreen is not working on the Dell ST2220T monitor.  It is being detected as a "LG Display LGD-MultiTouch", but controls are wrong.

Version-Release number of selected component (if applicable):
kernel-3.2.10-3.fc16.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Plug in the monitor
2. Touch screen
  
Actual results:
- Tapping with one finger generates a mouse click without moving the pointer to the tapped location first.  Resulting in a click to the wrong location.
- Moving one finger across the screen does nothing.
- Moving two fingers across the screen moves the pointer while simulating the left mouse button being clicked.

Expected results:
- Tapping with one finger generates a mouse click to the tapped location.
- Moving one finger across the screen moves the pointer.

Additional info:

When tapping with one finger, evtest says:

Event: time 1332267708.802840, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 113
Event: time 1332267708.802851, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1332267708.802854, -------------- SYN_REPORT ------------
Event: time 1332267708.858834, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1332267708.858843, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1332267708.858844, -------------- SYN_REPORT ------------


When moving one finger across the screen, evtest says:

Event: time 1332268045.733760, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1332268045.733761, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 125
Event: time 1332268045.733764, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1332268045.733765, -------------- SYN_REPORT ------------
Event: time 1332268045.741755, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 65535
Event: time 1332268045.741755, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 65535
Event: time 1332268045.741758, type 3 (EV_ABS), code 0 (ABS_X), value 65535
Event: time 1332268045.741758, type 3 (EV_ABS), code 1 (ABS_Y), value 65535
Event: time 1332268045.741758, -------------- SYN_REPORT ------------
Event: time 1332268046.965754, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1332268046.965756, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1332268046.965757, -------------- SYN_REPORT ------------


When moving two fingers across the screen, evtest says:

Event: time 1332267846.981192, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1332267846.981192, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 123
Event: time 1332267846.981193, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 773
Event: time 1332267846.981193, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 506
Event: time 1332267846.981194, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1332267846.981194, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 124
Event: time 1332267846.981194, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1034
Event: time 1332267846.981195, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 387
Event: time 1332267846.981197, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1332267846.981198, type 3 (EV_ABS), code 0 (ABS_X), value 773
Event: time 1332267846.981198, type 3 (EV_ABS), code 1 (ABS_Y), value 506
Event: time 1332267846.981198, -------------- SYN_REPORT ------------
Event: time 1332267846.989185, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1332267846.989185, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 887
Event: time 1332267846.989186, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 501
Event: time 1332267846.989186, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1332267846.989187, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1033
Event: time 1332267846.989187, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 393
Event: time 1332267846.989189, type 3 (EV_ABS), code 0 (ABS_X), value 887
Event: time 1332267846.989190, type 3 (EV_ABS), code 1 (ABS_Y), value 501
Event: time 1332267846.989190, -------------- SYN_REPORT ------------
Event: time 1332267846.997186, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1332267846.997186, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 506
Event: time 1332267846.997187, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1332267846.997187, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1032
Event: time 1332267846.997188, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 399
Event: time 1332267846.997190, type 3 (EV_ABS), code 1 (ABS_Y), value 506
Event: time 1332267846.997191, -------------- SYN_REPORT ------------
Event: time 1332267847.005185, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1332267847.005185, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 512
Event: time 1332267847.005186, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1332267847.005186, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1031
Event: time 1332267847.005186, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 405
Event: time 1332267847.005189, type 3 (EV_ABS), code 1 (ABS_Y), value 512
..........................more.......................
Event: time 1332267847.113186, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1332267847.113187, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1332267847.113187, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1332267847.113189, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1332267847.113189, -------------- SYN_REPORT ------------


There is a patch to fix issues related to this input device:

https://lkml.org/lkml/2012/3/6/331

But it seems to be part of a bunch of other hid-multitouch patches that have not made their way to the kernel yet.  I attempted to apply it to hid-multitouch.c of 3.2.10 but other patches are missing to apply it successfully.

Comment 1 Josh Boyer 2012-03-20 20:29:27 UTC
F16 is moving to 3.3 now, so this might be a bit more feasible to backport.  I will look at it tomorrow.  Thank you for the pointer to the patch.

Comment 2 Mathieu Brabant 2012-03-20 21:36:57 UTC
I applied the patch to 3.2.10-3.fc16 and manually made the 1 modification that failed (chunk 9 - removing one line in mt_probe).

It compiled and the touchscreen now works properly.

Comment 3 Josh Boyer 2012-09-05 14:33:31 UTC
The commits for this went into the 3.4 kernel.  F16 has been rebased on that for a while now.  If you are still having problems with 3.4.9-2 or newer, please let us know.