diff options
Diffstat (limited to 'include/linux/input.h')
-rw-r--r-- | include/linux/input.h | 22 |
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 *); | |||
1289 | int __must_check input_register_handler(struct input_handler *); | 1298 | int __must_check input_register_handler(struct input_handler *); |
1290 | void input_unregister_handler(struct input_handler *); | 1299 | void input_unregister_handler(struct input_handler *); |
1291 | 1300 | ||
1301 | int input_handler_for_each_handle(struct input_handler *, void *data, | ||
1302 | int (*fn)(struct input_handle *, void *)); | ||
1303 | |||
1292 | int input_register_handle(struct input_handle *); | 1304 | int input_register_handle(struct input_handle *); |
1293 | void input_unregister_handle(struct input_handle *); | 1305 | void 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 | */ |
1381 | struct ff_device { | 1397 | struct ff_device { |
1382 | int (*upload)(struct input_dev *dev, struct ff_effect *effect, | 1398 | int (*upload)(struct input_dev *dev, struct ff_effect *effect, |