diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/input.h | 3 | ||||
-rw-r--r-- | include/linux/input/mt.h | 13 |
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, | |||
36 | int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots); | 38 | int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots); |
37 | void input_mt_destroy_slots(struct input_dev *dev); | 39 | void input_mt_destroy_slots(struct input_dev *dev); |
38 | 40 | ||
41 | static inline int input_mt_new_trkid(struct input_dev *dev) | ||
42 | { | ||
43 | return dev->trkid++ & TRKID_MAX; | ||
44 | } | ||
45 | |||
39 | static inline void input_mt_slot(struct input_dev *dev, int slot) | 46 | static 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 | ||
51 | void input_mt_report_slot_state(struct input_dev *dev, | ||
52 | unsigned int tool_type, bool active); | ||
53 | |||
54 | void input_mt_report_finger_count(struct input_dev *dev, int count); | ||
55 | void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count); | ||
56 | |||
44 | #endif | 57 | #endif |