aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/input.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/input.h')
-rw-r--r--include/linux/input.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/include/linux/input.h b/include/linux/input.h
index 0ccfc30cd40f..7be8a6537b57 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -595,6 +595,8 @@ struct input_absinfo {
595#define KEY_NUMERIC_STAR 0x20a 595#define KEY_NUMERIC_STAR 0x20a
596#define KEY_NUMERIC_POUND 0x20b 596#define KEY_NUMERIC_POUND 0x20b
597 597
598#define KEY_CAMERA_FOCUS 0x210
599
598/* We avoid low common keys in module aliases so they don't get huge. */ 600/* We avoid low common keys in module aliases so they don't get huge. */
599#define KEY_MIN_INTERESTING KEY_MUTE 601#define KEY_MIN_INTERESTING KEY_MUTE
600#define KEY_MAX 0x2ff 602#define KEY_MAX 0x2ff
@@ -677,6 +679,9 @@ struct input_absinfo {
677#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ 679#define SW_LINEOUT_INSERT 0x06 /* set = inserted */
678#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ 680#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */
679#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ 681#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */
682#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */
683#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */
684#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */
680#define SW_MAX 0x0f 685#define SW_MAX 0x0f
681#define SW_CNT (SW_MAX+1) 686#define SW_CNT (SW_MAX+1)
682 687
@@ -890,7 +895,7 @@ struct ff_periodic_effect {
890 struct ff_envelope envelope; 895 struct ff_envelope envelope;
891 896
892 __u32 custom_len; 897 __u32 custom_len;
893 __s16 *custom_data; 898 __s16 __user *custom_data;
894}; 899};
895 900
896/** 901/**
@@ -1016,9 +1021,12 @@ struct ff_effect {
1016 * @keycodesize: size of elements in keycode table 1021 * @keycodesize: size of elements in keycode table
1017 * @keycode: map of scancodes to keycodes for this device 1022 * @keycode: map of scancodes to keycodes for this device
1018 * @setkeycode: optional method to alter current keymap, used to implement 1023 * @setkeycode: optional method to alter current keymap, used to implement
1019 * sparse keymaps. If not supplied default mechanism will be used 1024 * sparse keymaps. If not supplied default mechanism will be used.
1025 * The method is being called while holding event_lock and thus must
1026 * not sleep
1020 * @getkeycode: optional method to retrieve current keymap. If not supplied 1027 * @getkeycode: optional method to retrieve current keymap. If not supplied
1021 * default mechanism will be used 1028 * default mechanism will be used. The method is being called while
1029 * holding event_lock and thus must not sleep
1022 * @ff: force feedback structure associated with the device if device 1030 * @ff: force feedback structure associated with the device if device
1023 * supports force feedback effects 1031 * supports force feedback effects
1024 * @repeat_key: stores key code of the last key pressed; used to implement 1032 * @repeat_key: stores key code of the last key pressed; used to implement
@@ -1035,6 +1043,7 @@ struct ff_effect {
1035 * @absmin: minimum values for events coming from absolute axes 1043 * @absmin: minimum values for events coming from absolute axes
1036 * @absfuzz: describes noisiness for axes 1044 * @absfuzz: describes noisiness for axes
1037 * @absflat: size of the center flat position (used by joydev) 1045 * @absflat: size of the center flat position (used by joydev)
1046 * @absres: resolution used for events coming form absolute axes
1038 * @open: this method is called when the very first user calls 1047 * @open: this method is called when the very first user calls
1039 * input_open_device(). The driver must prepare the device 1048 * input_open_device(). The driver must prepare the device
1040 * to start generating events (start polling thread, 1049 * to start generating events (start polling thread,
@@ -1289,6 +1298,9 @@ void input_unregister_device(struct input_dev *);
1289int __must_check input_register_handler(struct input_handler *); 1298int __must_check input_register_handler(struct input_handler *);
1290void input_unregister_handler(struct input_handler *); 1299void input_unregister_handler(struct input_handler *);
1291 1300
1301int input_handler_for_each_handle(struct input_handler *, void *data,
1302 int (*fn)(struct input_handle *, void *));
1303
1292int input_register_handle(struct input_handle *); 1304int input_register_handle(struct input_handle *);
1293void input_unregister_handle(struct input_handle *); 1305void input_unregister_handle(struct input_handle *);
1294 1306
@@ -1377,6 +1389,10 @@ extern struct class input_class;
1377 * methods; erase() is optional. set_gain() and set_autocenter() need 1389 * methods; erase() is optional. set_gain() and set_autocenter() need
1378 * only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER 1390 * only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER
1379 * bits. 1391 * bits.
1392 *
1393 * Note that playback(), set_gain() and set_autocenter() are called with
1394 * dev->event_lock spinlock held and interrupts off and thus may not
1395 * sleep.
1380 */ 1396 */
1381struct ff_device { 1397struct ff_device {
1382 int (*upload)(struct input_dev *dev, struct ff_effect *effect, 1398 int (*upload)(struct input_dev *dev, struct ff_effect *effect,