]> err.no Git - linux-2.6/blobdiff - drivers/input/mouse/amimouse.c
Merge branch 'wm97xx'
[linux-2.6] / drivers / input / mouse / amimouse.c
index 599a7b2dc5191f7f057f0b4a2996a32c1c162d10..a185ac78a42ca441a193229f2bd04ccf7cfd8079 100644 (file)
@@ -95,10 +95,13 @@ static void amimouse_close(struct input_dev *dev)
 
 static int __init amimouse_init(void)
 {
+       int err;
+
        if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_MOUSE))
                return -ENODEV;
 
-       if (!(amimouse_dev = input_allocate_device()))
+       amimouse_dev = input_allocate_device();
+       if (!amimouse_dev)
                return -ENOMEM;
 
        amimouse_dev->name = "Amiga mouse";
@@ -108,13 +111,18 @@ static int __init amimouse_init(void)
        amimouse_dev->id.product = 0x0002;
        amimouse_dev->id.version = 0x0100;
 
-       amimouse_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
-       amimouse_dev->relbit[0] = BIT(REL_X) | BIT(REL_Y);
-       amimouse_dev->keybit[LONG(BTN_LEFT)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT);
+       amimouse_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL);
+       amimouse_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y);
+       amimouse_dev->keybit[BIT_WORD(BTN_LEFT)] = BIT_MASK(BTN_LEFT) |
+               BIT_MASK(BTN_MIDDLE) | BIT_MASK(BTN_RIGHT);
        amimouse_dev->open = amimouse_open;
        amimouse_dev->close = amimouse_close;
 
-       input_register_device(amimouse_dev);
+       err = input_register_device(amimouse_dev);
+       if (err) {
+               input_free_device(amimouse_dev);
+               return err;
+       }
 
        return 0;
 }