Author: arekm Date: Tue Feb 3 21:06:28 2009 GMT Module: SOURCES Tag: LINUX_2_6_27 ---- Log message: - backport (report touch capabilities only when supported)
---- Files affected: SOURCES: kernel-touchpad.patch (NONE -> 1.1.2.1) (NEW) ---- Diffs: ================================================================ Index: SOURCES/kernel-touchpad.patch diff -u /dev/null SOURCES/kernel-touchpad.patch:1.1.2.1 --- /dev/null Tue Feb 3 22:06:28 2009 +++ SOURCES/kernel-touchpad.patch Tue Feb 3 22:06:22 2009 @@ -0,0 +1,54 @@ +commit e42b6646a8298fe06a33a0f68dab661335f5db6e +Author: Peter Hutterer <[email protected]> +Date: Thu Nov 20 15:24:42 2008 -0500 + + Input: synaptics - report multi-taps only if supported by the device + + According to Section 2.4.4 of the Synaptics TouchPad Interfacing + Guide, bit 2 specifies if multi-finger detection is provided by + the touchpad. Thus, only set BTN_TOOL_DOUBLETAP and + BTN_TOOL_TRIPLETAP if the device actually supports it. + + Signed-off-by: Peter Hutterer <[email protected]> + Signed-off-by: Dmitry Torokhov <[email protected]> + +diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c +index d349c4a..865fc69 100644 +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -445,12 +445,14 @@ static void synaptics_process_packet(struct psmouse *psmouse) + + input_report_abs(dev, ABS_TOOL_WIDTH, finger_width); + input_report_key(dev, BTN_TOOL_FINGER, num_fingers == 1); +- input_report_key(dev, BTN_TOOL_DOUBLETAP, num_fingers == 2); +- input_report_key(dev, BTN_TOOL_TRIPLETAP, num_fingers == 3); +- + input_report_key(dev, BTN_LEFT, hw.left); + input_report_key(dev, BTN_RIGHT, hw.right); + ++ if (SYN_CAP_MULTIFINGER(priv->capabilities)) { ++ input_report_key(dev, BTN_TOOL_DOUBLETAP, num_fingers == 2); ++ input_report_key(dev, BTN_TOOL_TRIPLETAP, num_fingers == 3); ++ } ++ + if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) + input_report_key(dev, BTN_MIDDLE, hw.middle); + +@@ -543,12 +545,14 @@ static void set_input_params(struct input_dev *dev, struct synaptics_data *priv) + set_bit(EV_KEY, dev->evbit); + set_bit(BTN_TOUCH, dev->keybit); + set_bit(BTN_TOOL_FINGER, dev->keybit); +- set_bit(BTN_TOOL_DOUBLETAP, dev->keybit); +- set_bit(BTN_TOOL_TRIPLETAP, dev->keybit); +- + set_bit(BTN_LEFT, dev->keybit); + set_bit(BTN_RIGHT, dev->keybit); + ++ if (SYN_CAP_MULTIFINGER(priv->capabilities)) { ++ set_bit(BTN_TOOL_DOUBLETAP, dev->keybit); ++ set_bit(BTN_TOOL_TRIPLETAP, dev->keybit); ++ } ++ + if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) + set_bit(BTN_MIDDLE, dev->keybit); + ================================================================ _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
