summaryrefslogtreecommitdiff
path: root/drivers/input/mouse/sentelic.c
diff options
context:
space:
mode:
authorOskari Saarenmaa <os@ohmu.fi>2012-04-03 09:46:32 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-04-03 09:55:51 -0700
commitd626dad58f02e13730ded6ac84d6a9e53123f0e8 (patch)
treeea3254fc6319cb1e9ad79ca1bc4c9dbd5c4ee1e0 /drivers/input/mouse/sentelic.c
parent79026ff2b6e7bee5b79a61e0721b6d9bf0e99b56 (diff)
Input: sentelic - filter taps in absolute mode
Taps in absolute positioning single-finger mode are currently reported as physical clicks by the driver. This should be handled by userspace, not the kernel. When a tap occurs, the FSP_PB0_LBTN bit is set, but the FSP_PB0_PHY_BTN is not. We use this to filter out physical clicks from taps. Signed-off-by: Oskari Saarenmaa <os@ohmu.fi> Reviewed-by: Tai-hwa Liang <avatar@sentelic.com> Reviewed-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/mouse/sentelic.c')
-rw-r--r--drivers/input/mouse/sentelic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/input/mouse/sentelic.c b/drivers/input/mouse/sentelic.c
index a977bfaa6821..661a0ca3b3d6 100644
--- a/drivers/input/mouse/sentelic.c
+++ b/drivers/input/mouse/sentelic.c
@@ -741,6 +741,14 @@ static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse)
}
} else {
/* SFAC packet */
+ if ((packet[0] & (FSP_PB0_LBTN|FSP_PB0_PHY_BTN)) ==
+ FSP_PB0_LBTN) {
+ /* On-pad click in SFAC mode should be handled
+ * by userspace. On-pad clicks in MFMC mode
+ * are real clickpad clicks, and not ignored.
+ */
+ packet[0] &= ~FSP_PB0_LBTN;
+ }
/* no multi-finger information */
ad->last_mt_fgr = 0;