diff options
-rw-r--r-- | drivers/input/input-mt.c | 2 | ||||
-rw-r--r-- | include/linux/input/mt.h | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/input/input-mt.c b/drivers/input/input-mt.c index c0ec7d42c3be..475b9d424eed 100644 --- a/drivers/input/input-mt.c +++ b/drivers/input/input-mt.c | |||
@@ -247,7 +247,7 @@ void input_mt_sync_frame(struct input_dev *dev) | |||
247 | 247 | ||
248 | if (mt->flags & INPUT_MT_DROP_UNUSED) { | 248 | if (mt->flags & INPUT_MT_DROP_UNUSED) { |
249 | for (s = mt->slots; s != mt->slots + mt->num_slots; s++) { | 249 | for (s = mt->slots; s != mt->slots + mt->num_slots; s++) { |
250 | if (s->frame == mt->frame) | 250 | if (input_mt_is_used(mt, s)) |
251 | continue; | 251 | continue; |
252 | input_mt_slot(dev, s - mt->slots); | 252 | input_mt_slot(dev, s - mt->slots); |
253 | input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1); | 253 | input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1); |
diff --git a/include/linux/input/mt.h b/include/linux/input/mt.h index cc5cca774bab..2e86bd0bfba1 100644 --- a/include/linux/input/mt.h +++ b/include/linux/input/mt.h | |||
@@ -69,6 +69,12 @@ static inline bool input_mt_is_active(const struct input_mt_slot *slot) | |||
69 | return input_mt_get_value(slot, ABS_MT_TRACKING_ID) >= 0; | 69 | return input_mt_get_value(slot, ABS_MT_TRACKING_ID) >= 0; |
70 | } | 70 | } |
71 | 71 | ||
72 | static inline bool input_mt_is_used(const struct input_mt *mt, | ||
73 | const struct input_mt_slot *slot) | ||
74 | { | ||
75 | return slot->frame == mt->frame; | ||
76 | } | ||
77 | |||
72 | int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots, | 78 | int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots, |
73 | unsigned int flags); | 79 | unsigned int flags); |
74 | void input_mt_destroy_slots(struct input_dev *dev); | 80 | void input_mt_destroy_slots(struct input_dev *dev); |