Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 14 Mar 2010 18:13:54 +0000 (11:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 14 Mar 2010 18:13:54 +0000 (11:13 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: i8042 - add ALDI/MEDION netbook E1222 to qurik reset table
  Input: ALPS - fix stuck buttons on some touchpads
  Input: wm831x-on - convert to use genirq
  Input: ads7846 - add wakeup support
  Input: appletouch - fix integer overflow issue
  Input: ad7877 - increase pen up imeout
  Input: ads7846 - add support for AD7843 parts
  Input: bf54x-keys - fix system hang when pressing a key
  Input: alps - add support for the touchpad on Toshiba Tecra A11-11L
  Input: remove BKL, fix input_open_file() locking
  Input: serio_raw - remove BKL
  Input: mousedev - remove BKL
  Input: add driver for TWL4030 vibrator device
  Input: enable remote wakeup for PNP i8042 keyboard ports
  Input: scancode in get/set_keycodes should be unsigned
  Input: i8042 - use platfrom_create_bundle() helper
  Input: wacom - merge out and in prox events
  Input: gamecon - fix off by one range check
  Input: wacom - replace WACOM_PKGLEN_PENABLED

1  2 
drivers/input/serio/i8042.c

@@@ -430,7 -430,7 +430,7 @@@ static bool i8042_filter(unsigned char 
        }
  
        if (i8042_platform_filter && i8042_platform_filter(data, str, serio)) {
 -              dbg("Filtered out by platfrom filter\n");
 +              dbg("Filtered out by platform filter\n");
                return true;
        }
  
@@@ -1386,6 -1386,8 +1386,8 @@@ static int __init i8042_probe(struct pl
  {
        int error;
  
+       i8042_platform_device = dev;
        error = i8042_controller_selftest();
        if (error)
                return error;
        i8042_free_aux_ports(); /* in case KBD failed but AUX not */
        i8042_free_irqs();
        i8042_controller_reset();
+       i8042_platform_device = NULL;
  
        return error;
  }
@@@ -1430,6 -1433,7 +1433,7 @@@ static int __devexit i8042_remove(struc
        i8042_unregister_ports();
        i8042_free_irqs();
        i8042_controller_reset();
+       i8042_platform_device = NULL;
  
        return 0;
  }
@@@ -1448,6 -1452,7 +1452,7 @@@ static struct platform_driver i8042_dri
  
  static int __init i8042_init(void)
  {
+       struct platform_device *pdev;
        int err;
  
        dbg_init();
        if (err)
                goto err_platform_exit;
  
-       i8042_platform_device = platform_device_alloc("i8042", -1);
-       if (!i8042_platform_device) {
-               err = -ENOMEM;
+       pdev = platform_create_bundle(&i8042_driver, i8042_probe, NULL, 0, NULL, 0);
+       if (IS_ERR(pdev)) {
+               err = PTR_ERR(pdev);
                goto err_platform_exit;
        }
  
-       err = platform_device_add(i8042_platform_device);
-       if (err)
-               goto err_free_device;
-       err = platform_driver_probe(&i8042_driver, i8042_probe);
-       if (err)
-               goto err_del_device;
        panic_blink = i8042_panic_blink;
  
        return 0;
  
-  err_del_device:
-       platform_device_del(i8042_platform_device);
-  err_free_device:
-       platform_device_put(i8042_platform_device);
   err_platform_exit:
        i8042_platform_exit();
        return err;
  }