summaryrefslogtreecommitdiff
path: root/include/linux/input
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2016-07-15 14:05:29 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2016-07-15 14:50:53 -0700
commited7c9870c9bc6ca50dc0d271a301410bc894f4b9 (patch)
tree06501c64473ffba176cc2746a7ea76e0cbf1afe3 /include/linux/input
parent345ded8ef489a888f6921c999f872848c96b5af8 (diff)
downloadlwn-ed7c9870c9bc6ca50dc0d271a301410bc894f4b9.tar.gz
lwn-ed7c9870c9bc6ca50dc0d271a301410bc894f4b9.zip
Input: of_touchscreen - add support for inverted / swapped axes
Extend touchscreen_parse_properties() with support for the touchscreen-inverted-x/y and touchscreen-swapped-x-y properties and add touchscreen_set_mt_pos() and touchscreen_report_pos() helper functions for storing coordinates into a input_mt_pos struct, or directly reporting them, taking these properties into account. This commit also modifies the existing callers of touchscreen_parse_properties() to pass in NULL for the new third argument, keeping the existing behavior. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'include/linux/input')
-rw-r--r--include/linux/input/touchscreen.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/linux/input/touchscreen.h b/include/linux/input/touchscreen.h
index c91e1376132b..09d22ccb9e41 100644
--- a/include/linux/input/touchscreen.h
+++ b/include/linux/input/touchscreen.h
@@ -10,7 +10,26 @@
#define _TOUCHSCREEN_H
struct input_dev;
+struct input_mt_pos;
-void touchscreen_parse_properties(struct input_dev *dev, bool multitouch);
+struct touchscreen_properties {
+ unsigned int max_x;
+ unsigned int max_y;
+ bool invert_x;
+ bool invert_y;
+ bool swap_x_y;
+};
+
+void touchscreen_parse_properties(struct input_dev *input, bool multitouch,
+ struct touchscreen_properties *prop);
+
+void touchscreen_set_mt_pos(struct input_mt_pos *pos,
+ const struct touchscreen_properties *prop,
+ unsigned int x, unsigned int y);
+
+void touchscreen_report_pos(struct input_dev *input,
+ const struct touchscreen_properties *prop,
+ unsigned int x, unsigned int y,
+ bool multitouch);
#endif