Merge branch 'for-3.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
[firefly-linux-kernel-4.4.55.git] / drivers / input / keyboard / stowaway.c
index 04c54c57f25c6f0bf661cd3d5273238c39f195f8..cc612c5d542782fdf898757bdfdd1434b7d19d86 100644 (file)
@@ -71,13 +71,12 @@ struct skbd {
 };
 
 static irqreturn_t skbd_interrupt(struct serio *serio, unsigned char data,
-                                 unsigned int flags, struct pt_regs *regs)
+                                 unsigned int flags)
 {
        struct skbd *skbd = serio_get_drvdata(serio);
        struct input_dev *dev = skbd->dev;
 
        if (skbd->keycode[data & SKBD_KEY_MASK]) {
-               input_regs(dev, regs);
                input_report_key(dev, skbd->keycode[data & SKBD_KEY_MASK],
                                 !(data & SKBD_RELEASE));
                input_sync(dev);
@@ -109,10 +108,9 @@ static int skbd_connect(struct serio *serio, struct serio_driver *drv)
        input_dev->id.vendor = SERIO_STOWAWAY;
        input_dev->id.product = 0x0001;
        input_dev->id.version = 0x0100;
-       input_dev->cdev.dev = &serio->dev;
-       input_dev->private = skbd;
+       input_dev->dev.parent = &serio->dev;
 
-       input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
+       input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
        input_dev->keycode = skbd->keycode;
        input_dev->keycodesize = sizeof(unsigned char);
        input_dev->keycodemax = ARRAY_SIZE(skbd_keycode);
@@ -172,16 +170,4 @@ static struct serio_driver skbd_drv = {
        .disconnect     = skbd_disconnect,
 };
 
-static int __init skbd_init(void)
-{
-       serio_register_driver(&skbd_drv);
-       return 0;
-}
-
-static void __exit skbd_exit(void)
-{
-       serio_unregister_driver(&skbd_drv);
-}
-
-module_init(skbd_init);
-module_exit(skbd_exit);
+module_serio_driver(skbd_drv);