[Maverick SRU] [PATCH] Revert "UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode"

Robert Hooker sarvatt at ubuntu.com
Tue Dec 14 21:48:19 UTC 2010


From: Robert Hooker <robert.hooker at canonical.com>

BugLink: http://bugs.launchpad.net/bugs/669399

This reverts commit da04c34f6499177fb0cdafafa04af38c36b11639. 

This patch was never adopted by upstream and is non-functional on
maverick in it's current incarnation (LP: #582809). The improper checks
for SYN_CAP_CLICKPAD(priv->ext_cap) instead of 
SYN_CAP_CLICKPAD(priv->ext_cap_0c) in the maverick version of this patch
are also causing incorrect detection of a non-clickpad touchpad as a
clickpad one and applying the filters which remove the bottom area of
the touchpad. This revert only applies to maverick, lucid works properly
due to not having 5f57d67da87332a9a1ba8fa7a33bf0680e1c76e7 and this
commit was already dropped in natty.

Signed-off-by: Robert Hooker <robert.hooker at canonical.com>
---
 drivers/input/mouse/synaptics.c |   48 ---------------------------------------
 drivers/input/mouse/synaptics.h |    1 -
 2 files changed, 0 insertions(+), 49 deletions(-)

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index ae9891c..705589d 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -357,45 +357,6 @@ static void synaptics_pt_create(struct psmouse *psmouse)
  *	Functions to interpret the absolute mode packets
  ****************************************************************************/
 
-/* left and right clickpad button ranges;
- * the gap between them is interpreted as a middle-button click
- */
-#define CLICKPAD_LEFT_BTN_X \
-	((XMAX_NOMINAL - XMIN_NOMINAL) * 2 / 5 + XMIN_NOMINAL)
-#define CLICKPAD_RIGHT_BTN_X \
-	((XMAX_NOMINAL - XMIN_NOMINAL) * 3 / 5 + XMIN_NOMINAL)
-
-/* handle clickpad events */
-static void clickpad_process_packet(struct synaptics_data *priv,
-				    struct synaptics_hw_state *hw)
-{
-	/* clickpad mode reports Y range from 0 to YMAX_NOMINAL,
-	 * where the area Y < YMIN_NOMINAL is used as click buttons
-	 */
-	if (hw->y < YMIN_NOMINAL) {
-		/* button area */
-		hw->z = 0; /* don't move pointer */
-		/* clickpad reports only the middle button, and we need
-		 * to fake left/right buttons depending on the touch position
-		 */
-		if (hw->middle) { /* clicked? */
-			hw->middle = 0;
-			if (hw->x < CLICKPAD_LEFT_BTN_X)
-				hw->left = 1;
-			else if (hw->x > CLICKPAD_RIGHT_BTN_X)
-				hw->right = 1;
-			else
-				hw->middle = 1;
-		}
-	} else if (hw->middle) {
-		/* dragging */
-		hw->left = priv->prev_hw.left;
-		hw->right = priv->prev_hw.right;
-		hw->middle = priv->prev_hw.middle;
-	}
-	priv->prev_hw = *hw;
-}
-
 static void synaptics_parse_hw_state(unsigned char buf[], struct synaptics_data *priv, struct synaptics_hw_state *hw)
 {
 	memset(hw, 0, sizeof(struct synaptics_hw_state));
@@ -484,9 +445,6 @@ static void synaptics_process_packet(struct psmouse *psmouse)
 
 	synaptics_parse_hw_state(psmouse->packet, priv, &hw);
 
-	if (SYN_CAP_CLICKPAD(priv->ext_cap))
-		clickpad_process_packet(priv, &hw);
-
 	if (hw.scroll) {
 		priv->scroll += hw.scroll;
 
@@ -790,12 +748,6 @@ int synaptics_init(struct psmouse *psmouse)
 		SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity),
 		priv->model_id, priv->capabilities, priv->ext_cap, priv->ext_cap_0c);
 
-	if (SYN_CAP_CLICKPAD(priv->ext_cap)) {
-		printk(KERN_INFO "Synaptics: Clickpad mode enabled\n");
-		/* force to enable the middle button */
-		priv->capabilities |= (1 << 18);
-	}
-
 	set_input_params(psmouse->dev, priv);
 
 	/*
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
index 80907d0..b6aa7d2 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -110,7 +110,6 @@ struct synaptics_data {
 	unsigned char pkt_type;			/* packet type - old, new, etc */
 	unsigned char mode;			/* current mode byte */
 	int scroll;
-	struct synaptics_hw_state prev_hw;
 };
 
 void synaptics_module_init(void);
-- 
1.7.0.4





More information about the kernel-team mailing list