Input: Break out MT data
[firefly-linux-kernel-4.4.55.git] / include / linux / input / mt.h
index f86737586e190364a09c882afbab7890e66bde04..63458bced77d8338963af873978e0a3feae0988f 100644 (file)
@@ -23,6 +23,20 @@ struct input_mt_slot {
        int abs[ABS_MT_LAST - ABS_MT_FIRST + 1];
 };
 
+/**
+ * struct input_mt - state of tracked contacts
+ * @trkid: stores MT tracking ID for the next contact
+ * @num_slots: number of MT slots the device uses
+ * @slot: MT slot currently being transmitted
+ * @slots: array of slots holding current values of tracked contacts
+ */
+struct input_mt {
+       int trkid;
+       int num_slots;
+       int slot;
+       struct input_mt_slot slots[];
+};
+
 static inline void input_mt_set_value(struct input_mt_slot *slot,
                                      unsigned code, int value)
 {
@@ -38,9 +52,9 @@ static inline int input_mt_get_value(const struct input_mt_slot *slot,
 int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots);
 void input_mt_destroy_slots(struct input_dev *dev);
 
-static inline int input_mt_new_trkid(struct input_dev *dev)
+static inline int input_mt_new_trkid(struct input_mt *mt)
 {
-       return dev->trkid++ & TRKID_MAX;
+       return mt->trkid++ & TRKID_MAX;
 }
 
 static inline void input_mt_slot(struct input_dev *dev, int slot)