--- v4
+++ v3
@@ -1,67 +1,63 @@
This driver, submitted on behalf of Cypress Semiconductor Corporation and
additional contributors, provides support for the Cypress PS/2 Trackpad.
-This [PATCH v4] version differs from my previous submitted version[2]:
+This [PATCH v3] version differs from my previous submitted version[1]:
Patch #1 (cmdbuf to 8 bytes) and #3 (link in driver) are unchanged.
- Patch #2 (main driver) changes, as recommended by Henrik Rydberg,
- Dmitry Torokhov, and Dudley Du:
+ Patch #2 (main driver), as recommended by Henrik Rydberg[2]:
+ - use input_mt_assign_slots; drop cypress_cal_finger_id.
+ - enable 2-finger-only SEMI_MT; drop cypress_simulate_fingers.
+ - various code clean-ups.
- - call input_mt_report_finger_count() directly; drop INPUT_MT_POINTER.
- - #ifdef out all the CYTP_RELATIVE_SUPPORT code.
- - convert CYTP_ macros to functions.
- - propagate error return codes.
- - fixed tp_res_y typo.
- - list Dudley Du <dudl@cypress.com> as the primary author of the driver.
- - additional misc cleanups.
+ Henrik, does patch #2 appear to properly use assign_slots and SEMI_MT as
+ you intended? This SEMI_MT method does work (with 2 finger support only),
+ but I'm not clear why we wouldn't want to handle >2 fingers also, so ...
- Patch #4 (selectable simulated multitouch instead of SEMI_MT):
+ Patch #4 (new) reintroduces simulated multitouch for up to 5 fingers
+ (#if CYPRESS_SIMULATE_MT), disabling SEMI_MT again.
- - this is now #ifdef-disabled by default but needed for (older?) userspace
- X/Unity-desktop which does not support the input_mt_report_finger_count
- events (e.g. BTN_TOOL_TRIPLETAP).
+ If that functionality (support for >2 fingers) can be acheived in some
+ better way, please advise.
Remaining known problems (assistance or advice appreciated):
- - Patch #4 (simulated multitouch) does not work after rmmod/insmod, and
- stops working after suspend/resume. Restarting X fixes it in both
- cases. SEMI_MT appears to work normally in any case (per input-events).
+ - Multitouch >2 fingers does not work after rmmod/insmod, and stops
+ working after suspend/resume. Restarting X fixes it in both cases.
- - cypress_reconnect() doesn't actually work after suspend/resume, but
- psmouse re-inits the driver after _reconnect fails. Per Dudley Du,
- this routine does work when physically disconnecting the device though
- and its harmless regardless, so I am leaving it in pending further
- investigation.
+ - cypress_reconnect() never actually works, so I disabled it; just let
+ psmouse re-init the driver instead, which works and is what was ending
+ up happenning anyway.
-Kamal Mostafa <kamal@canonical.com>
[0] PATCH v1: http://www.spinics.net/lists/linux-input/msg23690.html
[1] PATCH v2: http://www.spinics.net/lists/linux-input/msg23718.html
-[2] PATCH v3: http://www.spinics.net/lists/linux-input/msg23943.html
+[2] Henrik's review: http://www.spinics.net/lists/linux-input/msg23747.html
-Dudley Du (2):
+Cypress Semiconductor Corporation (2):
input: Cypress PS/2 Trackpad psmouse driver
input: Cypress PS/2 Trackpad link into psmouse-base
Kamal Mostafa (2):
input: increase struct ps2dev cmdbuf[] to 8 bytes
- input: Cypress PS/2 Trackpad simulated multitouch (disabled)
+ input: Cypress PS/2 Trackpad simulated multitouch
drivers/input/mouse/Kconfig | 10 +
drivers/input/mouse/Makefile | 1 +
- drivers/input/mouse/cypress_ps2.c | 853 ++++++++++++++++++++++++++++++++++++
+ drivers/input/mouse/cypress_ps2.c | 846 ++++++++++++++++++++++++++++++++++++
drivers/input/mouse/cypress_ps2.h | 231 ++++++++++
drivers/input/mouse/psmouse-base.c | 32 ++
drivers/input/mouse/psmouse.h | 1 +
include/linux/libps2.h | 2 +-
- 7 files changed, 1129 insertions(+), 1 deletion(-)
+ 7 files changed, 1122 insertions(+), 1 deletion(-)
create mode 100644 drivers/input/mouse/cypress_ps2.c
create mode 100644 drivers/input/mouse/cypress_ps2.h
--
1.7.10.4
+