--- v2
+++ v3
@@ -1,45 +1,63 @@
This driver, submitted on behalf of Cypress Semiconductor Corporation and
additional contributors, provides support for the Cypress PS/2 Trackpad.
-This [PATCH v2] version differs from my first submission[0]:
+This [PATCH v3] version differs from my previous submitted version[1]:
- - Increases the size the of the cmdbuf[] array in struct ps2dev from
- 6 to 8 bytes, per Dmitry Torokhov's suggestion. ** This change has
- not been tested with respect to any other touchpads. Is it safe? **
+ Patch #1 (cmdbuf to 8 bytes) and #3 (link in driver) are unchanged.
- - Removes the special Cypress handling from psmouse-base.c
+ 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.
-And it *almost* works properly... Cypress PS/2 Trackpad is recognized and
-works fine on boot, but after a suspend-resume multitouch features no longer
-work (one and two finger tap works, but three does not). Restarting X does
-fix it, until the next suspend. The previous version of the driver[0] does
-not exhibit that problem.
+ 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 ...
-Help identifying and fixing the suspend-resume issue will be much
-appreciated.
+ Patch #4 (new) reintroduces simulated multitouch for up to 5 fingers
+ (#if CYPRESS_SIMULATE_MT), disabling SEMI_MT again.
+
+ If that functionality (support for >2 fingers) can be acheived in some
+ better way, please advise.
+
+
+Remaining known problems (assistance or advice appreciated):
+
+ - Multitouch >2 fingers does not work after rmmod/insmod, and stops
+ working after suspend/resume. Restarting X fixes it in both cases.
+
+ - 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] http://www.spinics.net/lists/linux-input/msg23690.html
+[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] Henrik's review: http://www.spinics.net/lists/linux-input/msg23747.html
+
Cypress Semiconductor Corporation (2):
input: Cypress PS/2 Trackpad psmouse driver
input: Cypress PS/2 Trackpad link into psmouse-base
-Kamal Mostafa (1):
+Kamal Mostafa (2):
input: increase struct ps2dev cmdbuf[] to 8 bytes
+ input: Cypress PS/2 Trackpad simulated multitouch
drivers/input/mouse/Kconfig | 10 +
drivers/input/mouse/Makefile | 1 +
- drivers/input/mouse/cypress_ps2.c | 956 ++++++++++++++++++++++++++++++++++++
- drivers/input/mouse/cypress_ps2.h | 220 +++++++++
+ 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, 1221 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
+