Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: twl4030-pwrbutton - simplify driver using devm_*

Use managed irq resource to simplify the driver.

Signed-off-by: Sebastian Reichel <sre@debian.org>
Reviewed-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Sebastian Reichel and committed by
Dmitry Torokhov
7f9ce649 0330f93a

+4 -22
+4 -22
drivers/input/misc/twl4030-pwrbutton.c
··· 58 58 int irq = platform_get_irq(pdev, 0); 59 59 int err; 60 60 61 - pwr = input_allocate_device(); 61 + pwr = devm_input_allocate_device(&pdev->dev); 62 62 if (!pwr) { 63 63 dev_err(&pdev->dev, "Can't allocate power button\n"); 64 64 return -ENOMEM; ··· 70 70 pwr->phys = "twl4030_pwrbutton/input0"; 71 71 pwr->dev.parent = &pdev->dev; 72 72 73 - err = request_threaded_irq(irq, NULL, powerbutton_irq, 73 + err = devm_request_threaded_irq(&pwr->dev, irq, NULL, powerbutton_irq, 74 74 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, 75 75 "twl4030_pwrbutton", pwr); 76 76 if (err < 0) { 77 77 dev_err(&pdev->dev, "Can't get IRQ for pwrbutton: %d\n", err); 78 - goto free_input_dev; 78 + return err; 79 79 } 80 80 81 81 err = input_register_device(pwr); 82 82 if (err) { 83 83 dev_err(&pdev->dev, "Can't register power button: %d\n", err); 84 - goto free_irq; 84 + return err; 85 85 } 86 86 87 87 platform_set_drvdata(pdev, pwr); 88 - 89 - return 0; 90 - 91 - free_irq: 92 - free_irq(irq, pwr); 93 - free_input_dev: 94 - input_free_device(pwr); 95 - return err; 96 - } 97 - 98 - static int __exit twl4030_pwrbutton_remove(struct platform_device *pdev) 99 - { 100 - struct input_dev *pwr = platform_get_drvdata(pdev); 101 - int irq = platform_get_irq(pdev, 0); 102 - 103 - free_irq(irq, pwr); 104 - input_unregister_device(pwr); 105 88 106 89 return 0; 107 90 } ··· 99 116 100 117 static struct platform_driver twl4030_pwrbutton_driver = { 101 118 .probe = twl4030_pwrbutton_probe, 102 - .remove = __exit_p(twl4030_pwrbutton_remove), 103 119 .driver = { 104 120 .name = "twl4030_pwrbutton", 105 121 .owner = THIS_MODULE,