summaryrefslogtreecommitdiffstats
path: root/drivers/input/mouse/alps.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-05-20 23:42:15 +0200
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2015-05-20 23:45:44 +0200
commit1662c03387a777be0a00efaf8665de77bc898158 (patch)
treeee9745edba6e3f7e77297093ee9fe4f42edd0c37 /drivers/input/mouse/alps.c
parentInput: alps - use more accurate coordinates for first touch in semi-mt mode (diff)
downloadlinux-1662c03387a777be0a00efaf8665de77bc898158.tar.xz
linux-1662c03387a777be0a00efaf8665de77bc898158.zip
Input: alps - do not use input-mt finger tracking for semi-mt devices
With the recent process_bitmap() changes all semi-mt devices always report the first finger down in slot 0, so stop using input-mt finger tracking for these. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input/mouse/alps.c')
-rw-r--r--drivers/input/mouse/alps.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 220acb63ffd7..f066761e8985 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -524,7 +524,11 @@ static void alps_report_semi_mt_data(struct psmouse *psmouse, int fingers)
priv->second_touch = -1;
}
- alps_report_mt_data(psmouse, (fingers <= 2) ? fingers : 2);
+ if (fingers >= 1)
+ alps_set_slot(dev, 0, f->mt[0].x, f->mt[0].y);
+ if (fingers >= 2)
+ alps_set_slot(dev, 1, f->mt[1].x, f->mt[1].y);
+ input_mt_sync_frame(dev);
input_mt_report_finger_count(dev, fingers);
@@ -2826,7 +2830,7 @@ static void alps_set_abs_params_mt(struct alps_data *priv,
input_mt_init_slots(dev1, MAX_TOUCHES,
INPUT_MT_POINTER | INPUT_MT_DROP_UNUSED |
- INPUT_MT_TRACK | INPUT_MT_SEMI_MT);
+ INPUT_MT_SEMI_MT);
}
static void alps_set_abs_params_v7(struct alps_data *priv,