Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f9ce649 authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Dmitry Torokhov
Browse files

Input: twl4030-pwrbutton - simplify driver using devm_*



Use managed irq resource to simplify the driver.

Signed-off-by: default avatarSebastian Reichel <sre@debian.org>
Reviewed-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 0330f93a
Loading
Loading
Loading
Loading
+4 −22
Original line number Diff line number Diff line
@@ -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_err(&pdev->dev, "Can't allocate power button\n");
		return -ENOMEM;
@@ -70,38 +70,21 @@ 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;
	}

	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);
	platform_set_drvdata(pdev, pwr);

	return 0;
}
@@ -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,