aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/input.h3
-rw-r--r--include/linux/input/mt.h13
2 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/input.h b/include/linux/input.h
index 99e2a52c0509..6de145df4c1c 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -848,6 +848,7 @@ struct input_keymap_entry {
848 */ 848 */
849#define MT_TOOL_FINGER 0 849#define MT_TOOL_FINGER 0
850#define MT_TOOL_PEN 1 850#define MT_TOOL_PEN 1
851#define MT_TOOL_MAX 1
851 852
852/* 853/*
853 * Values describing the status of a force-feedback effect 854 * Values describing the status of a force-feedback effect
@@ -1122,6 +1123,7 @@ struct ff_effect {
1122 * of tracked contacts 1123 * of tracked contacts
1123 * @mtsize: number of MT slots the device uses 1124 * @mtsize: number of MT slots the device uses
1124 * @slot: MT slot currently being transmitted 1125 * @slot: MT slot currently being transmitted
1126 * @trkid: stores MT tracking ID for the current contact
1125 * @absinfo: array of &struct absinfo elements holding information 1127 * @absinfo: array of &struct absinfo elements holding information
1126 * about absolute axes (current value, min, max, flat, fuzz, 1128 * about absolute axes (current value, min, max, flat, fuzz,
1127 * resolution) 1129 * resolution)
@@ -1206,6 +1208,7 @@ struct input_dev {
1206 struct input_mt_slot *mt; 1208 struct input_mt_slot *mt;
1207 int mtsize; 1209 int mtsize;
1208 int slot; 1210 int slot;
1211 int trkid;
1209 1212
1210 struct input_absinfo *absinfo; 1213 struct input_absinfo *absinfo;
1211 1214
diff --git a/include/linux/input/mt.h b/include/linux/input/mt.h
index d7f6518e3222..b3ac06a4435d 100644
--- a/include/linux/input/mt.h
+++ b/include/linux/input/mt.h
@@ -13,6 +13,8 @@
13 13
14#include <linux/input.h> 14#include <linux/input.h>
15 15
16#define TRKID_MAX 0xffff
17
16/** 18/**
17 * struct input_mt_slot - represents the state of an input MT slot 19 * struct input_mt_slot - represents the state of an input MT slot
18 * @abs: holds current values of ABS_MT axes for this slot 20 * @abs: holds current values of ABS_MT axes for this slot
@@ -36,9 +38,20 @@ static inline int input_mt_get_value(const struct input_mt_slot *slot,
36int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots); 38int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots);
37void input_mt_destroy_slots(struct input_dev *dev); 39void input_mt_destroy_slots(struct input_dev *dev);
38 40
41static inline int input_mt_new_trkid(struct input_dev *dev)
42{
43 return dev->trkid++ & TRKID_MAX;
44}
45
39static inline void input_mt_slot(struct input_dev *dev, int slot) 46static inline void input_mt_slot(struct input_dev *dev, int slot)
40{ 47{
41 input_event(dev, EV_ABS, ABS_MT_SLOT, slot); 48 input_event(dev, EV_ABS, ABS_MT_SLOT, slot);
42} 49}
43 50
51void input_mt_report_slot_state(struct input_dev *dev,
52 unsigned int tool_type, bool active);
53
54void input_mt_report_finger_count(struct input_dev *dev, int count);
55void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count);
56
44#endif 57#endif