diff options
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/evdev.c | 6 | ||||
-rw-r--r-- | drivers/input/ff-core.c | 3 | ||||
-rw-r--r-- | drivers/input/joystick/analog.c | 2 | ||||
-rw-r--r-- | drivers/input/joystick/db9.c | 18 | ||||
-rw-r--r-- | drivers/input/joystick/gamecon.c | 17 | ||||
-rw-r--r-- | drivers/input/joystick/iforce/iforce.h | 2 | ||||
-rw-r--r-- | drivers/input/joystick/turbografx.c | 18 | ||||
-rw-r--r-- | drivers/input/keyboard/Kconfig | 1 | ||||
-rw-r--r-- | drivers/input/keyboard/aaed2000_kbd.c | 62 | ||||
-rw-r--r-- | drivers/input/misc/uinput.c | 1 | ||||
-rw-r--r-- | drivers/input/mouse/synaptics.c | 2 |
11 files changed, 57 insertions, 75 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 1f6fcec0c6fc..a4c3729d3960 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
@@ -512,7 +512,7 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd, | |||
512 | 512 | ||
513 | if ((_IOC_NR(cmd) & ~EV_MAX) == _IOC_NR(EVIOCGBIT(0,0))) { | 513 | if ((_IOC_NR(cmd) & ~EV_MAX) == _IOC_NR(EVIOCGBIT(0,0))) { |
514 | 514 | ||
515 | long *bits; | 515 | unsigned long *bits; |
516 | int len; | 516 | int len; |
517 | 517 | ||
518 | switch (_IOC_NR(cmd) & EV_MAX) { | 518 | switch (_IOC_NR(cmd) & EV_MAX) { |
@@ -557,7 +557,7 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd, | |||
557 | 557 | ||
558 | if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) { | 558 | if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) { |
559 | 559 | ||
560 | int t = _IOC_NR(cmd) & ABS_MAX; | 560 | t = _IOC_NR(cmd) & ABS_MAX; |
561 | 561 | ||
562 | abs.value = dev->abs[t]; | 562 | abs.value = dev->abs[t]; |
563 | abs.minimum = dev->absmin[t]; | 563 | abs.minimum = dev->absmin[t]; |
@@ -577,7 +577,7 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd, | |||
577 | 577 | ||
578 | if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) { | 578 | if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) { |
579 | 579 | ||
580 | int t = _IOC_NR(cmd) & ABS_MAX; | 580 | t = _IOC_NR(cmd) & ABS_MAX; |
581 | 581 | ||
582 | if (copy_from_user(&abs, p, sizeof(struct input_absinfo))) | 582 | if (copy_from_user(&abs, p, sizeof(struct input_absinfo))) |
583 | return -EFAULT; | 583 | return -EFAULT; |
diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c index 783b3412cead..eebc72465fc9 100644 --- a/drivers/input/ff-core.c +++ b/drivers/input/ff-core.c | |||
@@ -281,7 +281,8 @@ int input_ff_event(struct input_dev *dev, unsigned int type, | |||
281 | break; | 281 | break; |
282 | 282 | ||
283 | default: | 283 | default: |
284 | ff->playback(dev, code, value); | 284 | if (check_effect_access(ff, code, NULL) == 0) |
285 | ff->playback(dev, code, value); | ||
285 | break; | 286 | break; |
286 | } | 287 | } |
287 | 288 | ||
diff --git a/drivers/input/joystick/analog.c b/drivers/input/joystick/analog.c index 1c1afb5d4684..bdd157c1ebf8 100644 --- a/drivers/input/joystick/analog.c +++ b/drivers/input/joystick/analog.c | |||
@@ -53,7 +53,7 @@ MODULE_LICENSE("GPL"); | |||
53 | #define ANALOG_PORTS 16 | 53 | #define ANALOG_PORTS 16 |
54 | 54 | ||
55 | static char *js[ANALOG_PORTS]; | 55 | static char *js[ANALOG_PORTS]; |
56 | static int js_nargs; | 56 | static unsigned int js_nargs; |
57 | static int analog_options[ANALOG_PORTS]; | 57 | static int analog_options[ANALOG_PORTS]; |
58 | module_param_array_named(map, js, charp, &js_nargs, 0); | 58 | module_param_array_named(map, js, charp, &js_nargs, 0); |
59 | MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities"); | 59 | MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities"); |
diff --git a/drivers/input/joystick/db9.c b/drivers/input/joystick/db9.c index c27593bf9978..86ad1027e12a 100644 --- a/drivers/input/joystick/db9.c +++ b/drivers/input/joystick/db9.c | |||
@@ -46,17 +46,17 @@ MODULE_LICENSE("GPL"); | |||
46 | 46 | ||
47 | struct db9_config { | 47 | struct db9_config { |
48 | int args[2]; | 48 | int args[2]; |
49 | int nargs; | 49 | unsigned int nargs; |
50 | }; | 50 | }; |
51 | 51 | ||
52 | #define DB9_MAX_PORTS 3 | 52 | #define DB9_MAX_PORTS 3 |
53 | static struct db9_config db9[DB9_MAX_PORTS] __initdata; | 53 | static struct db9_config db9_cfg[DB9_MAX_PORTS] __initdata; |
54 | 54 | ||
55 | module_param_array_named(dev, db9[0].args, int, &db9[0].nargs, 0); | 55 | module_param_array_named(dev, db9_cfg[0].args, int, &db9_cfg[0].nargs, 0); |
56 | MODULE_PARM_DESC(dev, "Describes first attached device (<parport#>,<type>)"); | 56 | MODULE_PARM_DESC(dev, "Describes first attached device (<parport#>,<type>)"); |
57 | module_param_array_named(dev2, db9[1].args, int, &db9[0].nargs, 0); | 57 | module_param_array_named(dev2, db9_cfg[1].args, int, &db9_cfg[0].nargs, 0); |
58 | MODULE_PARM_DESC(dev2, "Describes second attached device (<parport#>,<type>)"); | 58 | MODULE_PARM_DESC(dev2, "Describes second attached device (<parport#>,<type>)"); |
59 | module_param_array_named(dev3, db9[2].args, int, &db9[2].nargs, 0); | 59 | module_param_array_named(dev3, db9_cfg[2].args, int, &db9_cfg[2].nargs, 0); |
60 | MODULE_PARM_DESC(dev3, "Describes third attached device (<parport#>,<type>)"); | 60 | MODULE_PARM_DESC(dev3, "Describes third attached device (<parport#>,<type>)"); |
61 | 61 | ||
62 | #define DB9_ARG_PARPORT 0 | 62 | #define DB9_ARG_PARPORT 0 |
@@ -680,17 +680,17 @@ static int __init db9_init(void) | |||
680 | int err = 0; | 680 | int err = 0; |
681 | 681 | ||
682 | for (i = 0; i < DB9_MAX_PORTS; i++) { | 682 | for (i = 0; i < DB9_MAX_PORTS; i++) { |
683 | if (db9[i].nargs == 0 || db9[i].args[DB9_ARG_PARPORT] < 0) | 683 | if (db9_cfg[i].nargs == 0 || db9_cfg[i].args[DB9_ARG_PARPORT] < 0) |
684 | continue; | 684 | continue; |
685 | 685 | ||
686 | if (db9[i].nargs < 2) { | 686 | if (db9_cfg[i].nargs < 2) { |
687 | printk(KERN_ERR "db9.c: Device type must be specified.\n"); | 687 | printk(KERN_ERR "db9.c: Device type must be specified.\n"); |
688 | err = -EINVAL; | 688 | err = -EINVAL; |
689 | break; | 689 | break; |
690 | } | 690 | } |
691 | 691 | ||
692 | db9_base[i] = db9_probe(db9[i].args[DB9_ARG_PARPORT], | 692 | db9_base[i] = db9_probe(db9_cfg[i].args[DB9_ARG_PARPORT], |
693 | db9[i].args[DB9_ARG_MODE]); | 693 | db9_cfg[i].args[DB9_ARG_MODE]); |
694 | if (IS_ERR(db9_base[i])) { | 694 | if (IS_ERR(db9_base[i])) { |
695 | err = PTR_ERR(db9_base[i]); | 695 | err = PTR_ERR(db9_base[i]); |
696 | break; | 696 | break; |
diff --git a/drivers/input/joystick/gamecon.c b/drivers/input/joystick/gamecon.c index c71b58fe225d..1a452e0e5f25 100644 --- a/drivers/input/joystick/gamecon.c +++ b/drivers/input/joystick/gamecon.c | |||
@@ -48,16 +48,16 @@ MODULE_LICENSE("GPL"); | |||
48 | 48 | ||
49 | struct gc_config { | 49 | struct gc_config { |
50 | int args[GC_MAX_DEVICES + 1]; | 50 | int args[GC_MAX_DEVICES + 1]; |
51 | int nargs; | 51 | unsigned int nargs; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | static struct gc_config gc[GC_MAX_PORTS] __initdata; | 54 | static struct gc_config gc_cfg[GC_MAX_PORTS] __initdata; |
55 | 55 | ||
56 | module_param_array_named(map, gc[0].args, int, &gc[0].nargs, 0); | 56 | module_param_array_named(map, gc_cfg[0].args, int, &gc_cfg[0].nargs, 0); |
57 | MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<pad1>,<pad2>,..<pad5>)"); | 57 | MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<pad1>,<pad2>,..<pad5>)"); |
58 | module_param_array_named(map2, gc[1].args, int, &gc[1].nargs, 0); | 58 | module_param_array_named(map2, gc_cfg[1].args, int, &gc_cfg[1].nargs, 0); |
59 | MODULE_PARM_DESC(map2, "Describes second set of devices"); | 59 | MODULE_PARM_DESC(map2, "Describes second set of devices"); |
60 | module_param_array_named(map3, gc[2].args, int, &gc[2].nargs, 0); | 60 | module_param_array_named(map3, gc_cfg[2].args, int, &gc_cfg[2].nargs, 0); |
61 | MODULE_PARM_DESC(map3, "Describes third set of devices"); | 61 | MODULE_PARM_DESC(map3, "Describes third set of devices"); |
62 | 62 | ||
63 | /* see also gs_psx_delay parameter in PSX support section */ | 63 | /* see also gs_psx_delay parameter in PSX support section */ |
@@ -810,16 +810,17 @@ static int __init gc_init(void) | |||
810 | int err = 0; | 810 | int err = 0; |
811 | 811 | ||
812 | for (i = 0; i < GC_MAX_PORTS; i++) { | 812 | for (i = 0; i < GC_MAX_PORTS; i++) { |
813 | if (gc[i].nargs == 0 || gc[i].args[0] < 0) | 813 | if (gc_cfg[i].nargs == 0 || gc_cfg[i].args[0] < 0) |
814 | continue; | 814 | continue; |
815 | 815 | ||
816 | if (gc[i].nargs < 2) { | 816 | if (gc_cfg[i].nargs < 2) { |
817 | printk(KERN_ERR "gamecon.c: at least one device must be specified\n"); | 817 | printk(KERN_ERR "gamecon.c: at least one device must be specified\n"); |
818 | err = -EINVAL; | 818 | err = -EINVAL; |
819 | break; | 819 | break; |
820 | } | 820 | } |
821 | 821 | ||
822 | gc_base[i] = gc_probe(gc[i].args[0], gc[i].args + 1, gc[i].nargs - 1); | 822 | gc_base[i] = gc_probe(gc_cfg[i].args[0], |
823 | gc_cfg[i].args + 1, gc_cfg[i].nargs - 1); | ||
823 | if (IS_ERR(gc_base[i])) { | 824 | if (IS_ERR(gc_base[i])) { |
824 | err = PTR_ERR(gc_base[i]); | 825 | err = PTR_ERR(gc_base[i]); |
825 | break; | 826 | break; |
diff --git a/drivers/input/joystick/iforce/iforce.h b/drivers/input/joystick/iforce/iforce.h index dadcf4fb92ae..40a853ac21c7 100644 --- a/drivers/input/joystick/iforce/iforce.h +++ b/drivers/input/joystick/iforce/iforce.h | |||
@@ -124,7 +124,7 @@ struct iforce { | |||
124 | /* Buffer used for asynchronous sending of bytes to the device */ | 124 | /* Buffer used for asynchronous sending of bytes to the device */ |
125 | struct circ_buf xmit; | 125 | struct circ_buf xmit; |
126 | unsigned char xmit_data[XMIT_SIZE]; | 126 | unsigned char xmit_data[XMIT_SIZE]; |
127 | long xmit_flags[1]; | 127 | unsigned long xmit_flags[1]; |
128 | 128 | ||
129 | /* Force Feedback */ | 129 | /* Force Feedback */ |
130 | wait_queue_head_t wait; | 130 | wait_queue_head_t wait; |
diff --git a/drivers/input/joystick/turbografx.c b/drivers/input/joystick/turbografx.c index 0f2c60823b0b..8381c6f14373 100644 --- a/drivers/input/joystick/turbografx.c +++ b/drivers/input/joystick/turbografx.c | |||
@@ -48,16 +48,16 @@ MODULE_LICENSE("GPL"); | |||
48 | 48 | ||
49 | struct tgfx_config { | 49 | struct tgfx_config { |
50 | int args[TGFX_MAX_DEVICES + 1]; | 50 | int args[TGFX_MAX_DEVICES + 1]; |
51 | int nargs; | 51 | unsigned int nargs; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | static struct tgfx_config tgfx[TGFX_MAX_PORTS] __initdata; | 54 | static struct tgfx_config tgfx_cfg[TGFX_MAX_PORTS] __initdata; |
55 | 55 | ||
56 | module_param_array_named(map, tgfx[0].args, int, &tgfx[0].nargs, 0); | 56 | module_param_array_named(map, tgfx_cfg[0].args, int, &tgfx_cfg[0].nargs, 0); |
57 | MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<js1>,<js2>,..<js7>"); | 57 | MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<js1>,<js2>,..<js7>"); |
58 | module_param_array_named(map2, tgfx[1].args, int, &tgfx[1].nargs, 0); | 58 | module_param_array_named(map2, tgfx_cfg[1].args, int, &tgfx_cfg[1].nargs, 0); |
59 | MODULE_PARM_DESC(map2, "Describes second set of devices"); | 59 | MODULE_PARM_DESC(map2, "Describes second set of devices"); |
60 | module_param_array_named(map3, tgfx[2].args, int, &tgfx[2].nargs, 0); | 60 | module_param_array_named(map3, tgfx_cfg[2].args, int, &tgfx_cfg[2].nargs, 0); |
61 | MODULE_PARM_DESC(map3, "Describes third set of devices"); | 61 | MODULE_PARM_DESC(map3, "Describes third set of devices"); |
62 | 62 | ||
63 | #define TGFX_REFRESH_TIME HZ/100 /* 10 ms */ | 63 | #define TGFX_REFRESH_TIME HZ/100 /* 10 ms */ |
@@ -283,16 +283,18 @@ static int __init tgfx_init(void) | |||
283 | int err = 0; | 283 | int err = 0; |
284 | 284 | ||
285 | for (i = 0; i < TGFX_MAX_PORTS; i++) { | 285 | for (i = 0; i < TGFX_MAX_PORTS; i++) { |
286 | if (tgfx[i].nargs == 0 || tgfx[i].args[0] < 0) | 286 | if (tgfx_cfg[i].nargs == 0 || tgfx_cfg[i].args[0] < 0) |
287 | continue; | 287 | continue; |
288 | 288 | ||
289 | if (tgfx[i].nargs < 2) { | 289 | if (tgfx_cfg[i].nargs < 2) { |
290 | printk(KERN_ERR "turbografx.c: at least one joystick must be specified\n"); | 290 | printk(KERN_ERR "turbografx.c: at least one joystick must be specified\n"); |
291 | err = -EINVAL; | 291 | err = -EINVAL; |
292 | break; | 292 | break; |
293 | } | 293 | } |
294 | 294 | ||
295 | tgfx_base[i] = tgfx_probe(tgfx[i].args[0], tgfx[i].args + 1, tgfx[i].nargs - 1); | 295 | tgfx_base[i] = tgfx_probe(tgfx_cfg[i].args[0], |
296 | tgfx_cfg[i].args + 1, | ||
297 | tgfx_cfg[i].nargs - 1); | ||
296 | if (IS_ERR(tgfx_base[i])) { | 298 | if (IS_ERR(tgfx_base[i])) { |
297 | err = PTR_ERR(tgfx_base[i]); | 299 | err = PTR_ERR(tgfx_base[i]); |
298 | break; | 300 | break; |
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index 9f42e4d3649e..bd707b86c114 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
@@ -226,6 +226,7 @@ config KEYBOARD_PXA27x | |||
226 | config KEYBOARD_AAED2000 | 226 | config KEYBOARD_AAED2000 |
227 | tristate "AAED-2000 keyboard" | 227 | tristate "AAED-2000 keyboard" |
228 | depends on MACH_AAED2000 | 228 | depends on MACH_AAED2000 |
229 | select INPUT_POLLDEV | ||
229 | default y | 230 | default y |
230 | help | 231 | help |
231 | Say Y here to enable the keyboard on the Agilent AAED-2000 | 232 | Say Y here to enable the keyboard on the Agilent AAED-2000 |
diff --git a/drivers/input/keyboard/aaed2000_kbd.c b/drivers/input/keyboard/aaed2000_kbd.c index 3a37505f067c..63d6ead6b877 100644 --- a/drivers/input/keyboard/aaed2000_kbd.c +++ b/drivers/input/keyboard/aaed2000_kbd.c | |||
@@ -14,12 +14,11 @@ | |||
14 | #include <linux/delay.h> | 14 | #include <linux/delay.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/input.h> | 17 | #include <linux/input-polldev.h> |
18 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <linux/jiffies.h> | 19 | #include <linux/jiffies.h> |
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/slab.h> | 21 | #include <linux/slab.h> |
22 | #include <linux/workqueue.h> | ||
23 | 22 | ||
24 | #include <asm/arch/hardware.h> | 23 | #include <asm/arch/hardware.h> |
25 | #include <asm/arch/aaed2000.h> | 24 | #include <asm/arch/aaed2000.h> |
@@ -46,8 +45,7 @@ static unsigned char aaedkbd_keycode[NR_SCANCODES] = { | |||
46 | 45 | ||
47 | struct aaedkbd { | 46 | struct aaedkbd { |
48 | unsigned char keycode[ARRAY_SIZE(aaedkbd_keycode)]; | 47 | unsigned char keycode[ARRAY_SIZE(aaedkbd_keycode)]; |
49 | struct input_dev *input; | 48 | struct input_polled_dev *poll_dev; |
50 | struct work_struct workq; | ||
51 | int kbdscan_state[KB_COLS]; | 49 | int kbdscan_state[KB_COLS]; |
52 | int kbdscan_count[KB_COLS]; | 50 | int kbdscan_count[KB_COLS]; |
53 | }; | 51 | }; |
@@ -64,14 +62,15 @@ static void aaedkbd_report_col(struct aaedkbd *aaedkbd, | |||
64 | scancode = SCANCODE(row, col); | 62 | scancode = SCANCODE(row, col); |
65 | pressed = rowd & KB_ROWMASK(row); | 63 | pressed = rowd & KB_ROWMASK(row); |
66 | 64 | ||
67 | input_report_key(aaedkbd->input, aaedkbd->keycode[scancode], pressed); | 65 | input_report_key(aaedkbd->poll_dev->input, |
66 | aaedkbd->keycode[scancode], pressed); | ||
68 | } | 67 | } |
69 | } | 68 | } |
70 | 69 | ||
71 | /* Scan the hardware keyboard and push any changes up through the input layer */ | 70 | /* Scan the hardware keyboard and push any changes up through the input layer */ |
72 | static void aaedkbd_work(void *data) | 71 | static void aaedkbd_poll(struct input_polled_dev *dev) |
73 | { | 72 | { |
74 | struct aaedkbd *aaedkbd = data; | 73 | struct aaedkbd *aaedkbd = dev->private; |
75 | unsigned int col, rowd; | 74 | unsigned int col, rowd; |
76 | 75 | ||
77 | col = 0; | 76 | col = 0; |
@@ -90,51 +89,34 @@ static void aaedkbd_work(void *data) | |||
90 | } while (col < KB_COLS); | 89 | } while (col < KB_COLS); |
91 | 90 | ||
92 | AAEC_GPIO_KSCAN = 0x07; | 91 | AAEC_GPIO_KSCAN = 0x07; |
93 | input_sync(aaedkbd->input); | 92 | input_sync(dev->input); |
94 | |||
95 | schedule_delayed_work(&aaedkbd->workq, msecs_to_jiffies(SCAN_INTERVAL)); | ||
96 | } | ||
97 | |||
98 | static int aaedkbd_open(struct input_dev *indev) | ||
99 | { | ||
100 | struct aaedkbd *aaedkbd = input_get_drvdata(indev); | ||
101 | |||
102 | schedule_delayed_work(&aaedkbd->workq, msecs_to_jiffies(SCAN_INTERVAL)); | ||
103 | |||
104 | return 0; | ||
105 | } | ||
106 | |||
107 | static void aaedkbd_close(struct input_dev *indev) | ||
108 | { | ||
109 | struct aaedkbd *aaedkbd = input_get_drvdata(indev); | ||
110 | |||
111 | cancel_delayed_work(&aaedkbd->workq); | ||
112 | flush_scheduled_work(); | ||
113 | } | 93 | } |
114 | 94 | ||
115 | static int __devinit aaedkbd_probe(struct platform_device *pdev) | 95 | static int __devinit aaedkbd_probe(struct platform_device *pdev) |
116 | { | 96 | { |
117 | struct aaedkbd *aaedkbd; | 97 | struct aaedkbd *aaedkbd; |
98 | struct input_polled_dev *poll_dev; | ||
118 | struct input_dev *input_dev; | 99 | struct input_dev *input_dev; |
119 | int i; | 100 | int i; |
120 | int error; | 101 | int error; |
121 | 102 | ||
122 | aaedkbd = kzalloc(sizeof(struct aaedkbd), GFP_KERNEL); | 103 | aaedkbd = kzalloc(sizeof(struct aaedkbd), GFP_KERNEL); |
123 | input_dev = input_allocate_device(); | 104 | poll_dev = input_allocate_polled_device(); |
124 | if (!aaedkbd || !input_dev) { | 105 | if (!aaedkbd || !poll_dev) { |
125 | error = -ENOMEM; | 106 | error = -ENOMEM; |
126 | goto fail; | 107 | goto fail; |
127 | } | 108 | } |
128 | 109 | ||
129 | platform_set_drvdata(pdev, aaedkbd); | 110 | platform_set_drvdata(pdev, aaedkbd); |
130 | 111 | ||
131 | aaedkbd->input = input_dev; | 112 | aaedkbd->poll_dev = poll_dev; |
132 | |||
133 | /* Init keyboard rescan workqueue */ | ||
134 | INIT_WORK(&aaedkbd->workq, aaedkbd_work, aaedkbd); | ||
135 | |||
136 | memcpy(aaedkbd->keycode, aaedkbd_keycode, sizeof(aaedkbd->keycode)); | 113 | memcpy(aaedkbd->keycode, aaedkbd_keycode, sizeof(aaedkbd->keycode)); |
137 | 114 | ||
115 | poll_dev->private = aaedkbd; | ||
116 | poll_dev->poll = aaedkbd_poll; | ||
117 | poll_dev->poll_interval = SCAN_INTERVAL; | ||
118 | |||
119 | input_dev = poll_dev->input; | ||
138 | input_dev->name = "AAED-2000 Keyboard"; | 120 | input_dev->name = "AAED-2000 Keyboard"; |
139 | input_dev->phys = "aaedkbd/input0"; | 121 | input_dev->phys = "aaedkbd/input0"; |
140 | input_dev->id.bustype = BUS_HOST; | 122 | input_dev->id.bustype = BUS_HOST; |
@@ -143,8 +125,6 @@ static int __devinit aaedkbd_probe(struct platform_device *pdev) | |||
143 | input_dev->id.version = 0x0100; | 125 | input_dev->id.version = 0x0100; |
144 | input_dev->dev.parent = &pdev->dev; | 126 | input_dev->dev.parent = &pdev->dev; |
145 | 127 | ||
146 | input_set_drvdata(input_dev, aaedkbd); | ||
147 | |||
148 | input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP); | 128 | input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP); |
149 | input_dev->keycode = aaedkbd->keycode; | 129 | input_dev->keycode = aaedkbd->keycode; |
150 | input_dev->keycodesize = sizeof(unsigned char); | 130 | input_dev->keycodesize = sizeof(unsigned char); |
@@ -154,17 +134,14 @@ static int __devinit aaedkbd_probe(struct platform_device *pdev) | |||
154 | set_bit(aaedkbd->keycode[i], input_dev->keybit); | 134 | set_bit(aaedkbd->keycode[i], input_dev->keybit); |
155 | clear_bit(0, input_dev->keybit); | 135 | clear_bit(0, input_dev->keybit); |
156 | 136 | ||
157 | input_dev->open = aaedkbd_open; | 137 | error = input_register_polled_device(aaedkbd->poll_dev); |
158 | input_dev->close = aaedkbd_close; | ||
159 | |||
160 | error = input_register_device(aaedkbd->input); | ||
161 | if (error) | 138 | if (error) |
162 | goto fail; | 139 | goto fail; |
163 | 140 | ||
164 | return 0; | 141 | return 0; |
165 | 142 | ||
166 | fail: kfree(aaedkbd); | 143 | fail: kfree(aaedkbd); |
167 | input_free_device(input_dev); | 144 | input_free_polled_device(poll_dev); |
168 | return error; | 145 | return error; |
169 | } | 146 | } |
170 | 147 | ||
@@ -172,7 +149,8 @@ static int __devexit aaedkbd_remove(struct platform_device *pdev) | |||
172 | { | 149 | { |
173 | struct aaedkbd *aaedkbd = platform_get_drvdata(pdev); | 150 | struct aaedkbd *aaedkbd = platform_get_drvdata(pdev); |
174 | 151 | ||
175 | input_unregister_device(aaedkbd->input); | 152 | input_unregister_polled_device(aaedkbd->poll_dev); |
153 | input_free_polled_device(aaedkbd->poll_dev); | ||
176 | kfree(aaedkbd); | 154 | kfree(aaedkbd); |
177 | 155 | ||
178 | return 0; | 156 | return 0; |
diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c index 031467eadd31..a56ad4ba8fe2 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/slab.h> | 33 | #include <linux/slab.h> |
34 | #include <linux/module.h> | 34 | #include <linux/module.h> |
35 | #include <linux/init.h> | 35 | #include <linux/init.h> |
36 | #include <linux/input.h> | ||
37 | #include <linux/smp_lock.h> | 36 | #include <linux/smp_lock.h> |
38 | #include <linux/fs.h> | 37 | #include <linux/fs.h> |
39 | #include <linux/miscdevice.h> | 38 | #include <linux/miscdevice.h> |
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index c77788bf932d..666ad3a53fdb 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c | |||
@@ -185,7 +185,7 @@ static int synaptics_query_hardware(struct psmouse *psmouse) | |||
185 | int retries = 0; | 185 | int retries = 0; |
186 | 186 | ||
187 | while ((retries++ < 3) && psmouse_reset(psmouse)) | 187 | while ((retries++ < 3) && psmouse_reset(psmouse)) |
188 | printk(KERN_ERR "synaptics reset failed\n"); | 188 | /* empty */; |
189 | 189 | ||
190 | if (synaptics_identify(psmouse)) | 190 | if (synaptics_identify(psmouse)) |
191 | return -1; | 191 | return -1; |