Merge branch 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git] / drivers / input / mouse / amimouse.c
index d13d4c8..239a0e1 100644 (file)
@@ -36,12 +36,12 @@ MODULE_LICENSE("GPL");
 static int amimouse_lastx, amimouse_lasty;
 static struct input_dev *amimouse_dev;
 
-static irqreturn_t amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp)
+static irqreturn_t amimouse_interrupt(int irq, void *dummy)
 {
        unsigned short joy0dat, potgor;
        int nx, ny, dx, dy;
 
-       joy0dat = custom.joy0dat;
+       joy0dat = amiga_custom.joy0dat;
 
        nx = joy0dat & 0xff;
        ny = joy0dat >> 8;
@@ -57,9 +57,7 @@ static irqreturn_t amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp)
        amimouse_lastx = nx;
        amimouse_lasty = ny;
 
-       potgor = custom.potgor;
-
-       input_regs(amimouse_dev, fp);
+       potgor = amiga_custom.potgor;
 
        input_report_rel(amimouse_dev, REL_X, dx);
        input_report_rel(amimouse_dev, REL_Y, dy);
@@ -77,7 +75,7 @@ static int amimouse_open(struct input_dev *dev)
 {
        unsigned short joy0dat;
 
-       joy0dat = custom.joy0dat;
+       joy0dat = amiga_custom.joy0dat;
 
        amimouse_lastx = joy0dat & 0xff;
        amimouse_lasty = joy0dat >> 8;
@@ -97,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";
@@ -116,7 +117,11 @@ static int __init amimouse_init(void)
        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;
 }