On Thu, Oct 24, 2013 at 04:48:46PM +0200, Sebastian Reichel wrote: > Use managed irq resource to simplify the driver. > > Signed-off-by: Sebastian Reichel <sre@xxxxxxxxxx> Reviewed-by: Aaro Koskinen <aaro.koskinen@xxxxxx> > --- > drivers/input/misc/twl4030-pwrbutton.c | 26 ++++---------------------- > 1 file changed, 4 insertions(+), 22 deletions(-) > > diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c > index 48639ff..be1759c 100644 > --- a/drivers/input/misc/twl4030-pwrbutton.c > +++ b/drivers/input/misc/twl4030-pwrbutton.c > @@ -58,7 +58,7 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev) > int irq = platform_get_irq(pdev, 0); > int err; > > - pwr = input_allocate_device(); > + pwr = devm_input_allocate_device(&pdev->dev); > if (!pwr) { > dev_dbg(&pdev->dev, "Can't allocate power button\n"); > return -ENOMEM; > @@ -70,40 +70,23 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev) > pwr->phys = "twl4030_pwrbutton/input0"; > pwr->dev.parent = &pdev->dev; > > - err = request_threaded_irq(irq, NULL, powerbutton_irq, > + err = devm_request_threaded_irq(&pwr->dev, irq, NULL, powerbutton_irq, > IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, > "twl4030_pwrbutton", pwr); > if (err < 0) { > dev_err(&pdev->dev, "Can't get IRQ for pwrbutton: %d\n", err); > - goto free_input_dev; > + return err; > } > > err = input_register_device(pwr); > if (err) { > dev_err(&pdev->dev, "Can't register power button: %d\n", err); > - goto free_irq; > + return err; > } > > platform_set_drvdata(pdev, pwr); > > return 0; > - > -free_irq: > - free_irq(irq, pwr); > -free_input_dev: > - input_free_device(pwr); > - return err; > -} > - > -static int __exit twl4030_pwrbutton_remove(struct platform_device *pdev) > -{ > - struct input_dev *pwr = platform_get_drvdata(pdev); > - int irq = platform_get_irq(pdev, 0); > - > - free_irq(irq, pwr); > - input_unregister_device(pwr); > - > - return 0; > } > > #if IS_ENABLED(CONFIG_OF) > @@ -116,7 +99,6 @@ MODULE_DEVICE_TABLE(of, twl4030_pwrbutton_dt_match_table); > > static struct platform_driver twl4030_pwrbutton_driver = { > .probe = twl4030_pwrbutton_probe, > - .remove = __exit_p(twl4030_pwrbutton_remove), > .driver = { > .name = "twl4030_pwrbutton", > .owner = THIS_MODULE, > -- > 1.8.4.rc3 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html