diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2008-06-02 07:03:24 +0200 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2008-06-30 15:36:46 +0200 |
commit | 82547e9074a23d9d722a5f6053f4734566127da6 (patch) | |
tree | 1570f0ca3ada832e8b8417545afedc008ec570a8 /drivers/input/mouse | |
parent | Input: evbug - identify device by its sysfs ID (diff) | |
download | linux-82547e9074a23d9d722a5f6053f4734566127da6.tar.xz linux-82547e9074a23d9d722a5f6053f4734566127da6.zip |
Input: atamouse - various cleanups
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/mouse')
-rw-r--r-- | drivers/input/mouse/atarimouse.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/input/mouse/atarimouse.c b/drivers/input/mouse/atarimouse.c index 98a3561d4b05..adf45b3040e9 100644 --- a/drivers/input/mouse/atarimouse.c +++ b/drivers/input/mouse/atarimouse.c @@ -57,15 +57,12 @@ MODULE_AUTHOR("Michael Schmitz <schmitz@biophys.uni-duesseldorf.de>"); MODULE_DESCRIPTION("Atari mouse driver"); MODULE_LICENSE("GPL"); -static int mouse_threshold[2] = {2,2}; +static int mouse_threshold[2] = {2, 2}; +module_param_array(mouse_threshold, int, NULL, 0); -#ifdef __MODULE__ -MODULE_PARM(mouse_threshold, "2i"); -#endif #ifdef FIXED_ATARI_JOYSTICK extern int atari_mouse_buttons; #endif -static int atamouse_used = 0; static struct input_dev *atamouse_dev; @@ -97,9 +94,6 @@ static void atamouse_interrupt(char *buf) static int atamouse_open(struct input_dev *dev) { - if (atamouse_used++) - return 0; - #ifdef FIXED_ATARI_JOYSTICK atari_mouse_buttons = 0; #endif @@ -107,23 +101,24 @@ static int atamouse_open(struct input_dev *dev) ikbd_mouse_thresh(mouse_threshold[0], mouse_threshold[1]); ikbd_mouse_rel_pos(); atari_input_mouse_interrupt_hook = atamouse_interrupt; + return 0; } static void atamouse_close(struct input_dev *dev) { - if (!--atamouse_used) { - ikbd_mouse_disable(); - atari_mouse_interrupt_hook = NULL; - } + ikbd_mouse_disable(); + atari_mouse_interrupt_hook = NULL; } static int __init atamouse_init(void) { + int error; + if (!MACH_IS_ATARI || !ATARIHW_PRESENT(ST_MFP)) return -ENODEV; - if (!(atari_keyb_init())) + if (!atari_keyb_init()) return -ENODEV; atamouse_dev = input_allocate_device(); @@ -141,12 +136,14 @@ static int __init atamouse_init(void) atamouse_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y); atamouse_dev->keybit[BIT_WORD(BTN_LEFT)] = BIT_MASK(BTN_LEFT) | BIT_MASK(BTN_MIDDLE) | BIT_MASK(BTN_RIGHT); + atamouse_dev->open = atamouse_open; atamouse_dev->close = atamouse_close; - if (input_register_device(atamouse_dev)) { + error = input_register_device(atamouse_dev); + if (error) { input_free_device(atamouse_dev); - return -ENOMEM; + return error; } return 0; |