From 1a4bb30e3d0c08d42aea5db5832f8a4f7adad314 Mon Sep 17 00:00:00 2001 From: Roman Kiryanov Date: Mon, 28 Oct 2019 14:34:48 -0700 Subject: [PATCH] ANDROID: virtio: virtio_input: Set the amount of multitouch slots in virtio input Virtio input was missing the the amount of multitouch slots and kernel was filtering out ABS_MT_SLOT events for a screen is touched in more than one place. Bug: 143488374 Signed-off-by: Roman Kiryanov Change-Id: I617099435af311e6b0ee127b76eafe13834ea8f8 (cherry picked from commit af5cf146e4adae1dda52b006a86bab9d26e49a0e) --- drivers/virtio/virtio_input.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/virtio/virtio_input.c b/drivers/virtio/virtio_input.c index 3a0468f2ceb0..89e14b01959b 100644 --- a/drivers/virtio/virtio_input.c +++ b/drivers/virtio/virtio_input.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -163,6 +164,12 @@ static void virtinput_cfg_abs(struct virtio_input *vi, int abs) virtio_cread(vi->vdev, struct virtio_input_config, u.abs.flat, &fl); input_set_abs_params(vi->idev, abs, mi, ma, fu, fl); input_abs_set_res(vi->idev, abs, re); + if (abs == ABS_MT_TRACKING_ID) + input_mt_init_slots(vi->idev, + ma, /* input max finger */ + INPUT_MT_DIRECT + | INPUT_MT_DROP_UNUSED + | INPUT_MT_TRACK); } static int virtinput_init_vqs(struct virtio_input *vi)