]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/i2c/chips/twl4030-pwrbutton.c
The fix prevents kernel crash caused by twl4030 power button malfunction.
[linux-2.6-omap-h63xx.git] / drivers / i2c / chips / twl4030-pwrbutton.c
index cbc31aa33781cee02048e3273f7c8a847d484a0e..a8258df22fc3ec7d70e340488532103f9102e2ad 100644 (file)
@@ -95,8 +95,10 @@ static int __init twl4030_pwrbutton_init(void)
        powerbutton_dev->name = "triton2-pwrbutton";
 
        err = input_register_device(powerbutton_dev);
-       if (err)
-               goto free_input_dev;
+       if (err) {
+               input_free_device(powerbutton_dev);
+               goto free_irq_and_out;
+       }
 
        err = twl4030_i2c_read_u8(TWL4030_MODULE_INT, &value, PWR_IMR1);
        if (err) {
@@ -122,7 +124,7 @@ static int __init twl4030_pwrbutton_init(void)
        }
 
        err = twl4030_i2c_write_u8(TWL4030_MODULE_INT,
-                                  value | PWR_PWRON_BOTH , PWR_EDR1);
+                                  value | PWR_PWRON_BOTH, PWR_EDR1);
 
        if (err) {
                printk(KERN_WARNING "I2C error %d while writing TWL4030"
@@ -136,7 +138,7 @@ static int __init twl4030_pwrbutton_init(void)
 
 
 free_input_dev:
-       input_free_device(powerbutton_dev);
+       input_unregister_device(powerbutton_dev);
 free_irq_and_out:
        free_irq(TWL4030_PWRIRQ_PWRBTN, NULL);
 out: