Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[pandora-kernel.git] / drivers / input / touchscreen / elo.c
index ab56533..d20689c 100644 (file)
@@ -67,7 +67,7 @@ struct elo {
        char phys[32];
 };
 
-static void elo_process_data_10(struct elo *elo, unsigned char data, struct pt_regs *regs)
+static void elo_process_data_10(struct elo *elo, unsigned char data)
 {
        struct input_dev *dev = elo->dev;
 
@@ -95,7 +95,6 @@ static void elo_process_data_10(struct elo *elo, unsigned char data, struct pt_r
                                break;
                        }
                        if (likely(elo->data[1] == ELO10_TOUCH_PACKET)) {
-                               input_regs(dev, regs);
                                input_report_abs(dev, ABS_X, (elo->data[4] << 8) | elo->data[3]);
                                input_report_abs(dev, ABS_Y, (elo->data[6] << 8) | elo->data[5]);
                                if (elo->data[2] & ELO10_PRESSURE)
@@ -116,7 +115,7 @@ static void elo_process_data_10(struct elo *elo, unsigned char data, struct pt_r
        elo->csum += data;
 }
 
-static void elo_process_data_6(struct elo *elo, unsigned char data, struct pt_regs *regs)
+static void elo_process_data_6(struct elo *elo, unsigned char data)
 {
        struct input_dev *dev = elo->dev;
 
@@ -134,7 +133,6 @@ static void elo_process_data_6(struct elo *elo, unsigned char data, struct pt_re
                                break;
                        }
 
-                       input_regs(dev, regs);
                        input_report_abs(dev, ABS_X, ((elo->data[0] & 0x3f) << 6) | (elo->data[1] & 0x3f));
                        input_report_abs(dev, ABS_Y, ((elo->data[2] & 0x3f) << 6) | (elo->data[3] & 0x3f));
 
@@ -164,7 +162,7 @@ static void elo_process_data_6(struct elo *elo, unsigned char data, struct pt_re
        }
 }
 
-static void elo_process_data_3(struct elo *elo, unsigned char data, struct pt_regs *regs)
+static void elo_process_data_3(struct elo *elo, unsigned char data)
 {
        struct input_dev *dev = elo->dev;
 
@@ -177,7 +175,6 @@ static void elo_process_data_3(struct elo *elo, unsigned char data, struct pt_re
                                elo->idx = 0;
                        break;
                case 2:
-                       input_regs(dev, regs);
                        input_report_key(dev, BTN_TOUCH, !(elo->data[1] & 0x80));
                        input_report_abs(dev, ABS_X, elo->data[1]);
                        input_report_abs(dev, ABS_Y, elo->data[2]);
@@ -188,22 +185,22 @@ static void elo_process_data_3(struct elo *elo, unsigned char data, struct pt_re
 }
 
 static irqreturn_t elo_interrupt(struct serio *serio,
-               unsigned char data, unsigned int flags, struct pt_regs *regs)
+               unsigned char data, unsigned int flags)
 {
        struct elo *elo = serio_get_drvdata(serio);
 
        switch(elo->id) {
                case 0:
-                       elo_process_data_10(elo, data, regs);
+                       elo_process_data_10(elo, data);
                        break;
 
                case 1:
                case 2:
-                       elo_process_data_6(elo, data, regs);
+                       elo_process_data_6(elo, data);
                        break;
 
                case 3:
-                       elo_process_data_3(elo, data, regs);
+                       elo_process_data_3(elo, data);
                        break;
        }
 
@@ -315,17 +312,16 @@ static int elo_connect(struct serio *serio, struct serio_driver *drv)
        init_completion(&elo->cmd_done);
        snprintf(elo->phys, sizeof(elo->phys), "%s/input0", serio->phys);
 
-       input_dev->private = elo;
        input_dev->name = "Elo Serial TouchScreen";
        input_dev->phys = elo->phys;
        input_dev->id.bustype = BUS_RS232;
        input_dev->id.vendor = SERIO_ELO;
        input_dev->id.product = elo->id;
        input_dev->id.version = 0x0100;
-       input_dev->cdev.dev = &serio->dev;
+       input_dev->dev.parent = &serio->dev;
 
-       input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
-       input_dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
+       input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
+       input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
 
        serio_set_drvdata(serio, elo);
        err = serio_open(serio, drv);
@@ -400,8 +396,7 @@ static struct serio_driver elo_drv = {
 
 static int __init elo_init(void)
 {
-       serio_register_driver(&elo_drv);
-       return 0;
+       return serio_register_driver(&elo_drv);
 }
 
 static void __exit elo_exit(void)