Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1562915
| From | Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v1 02/10] platform/x86: intel_mid_powerbtn: Convert to use devm_*() |
| Date | 2017-01-19 17:50 +0100 |
| Message-ID | <t1o4r-3Xc-63@gated-at.bofh.it> (permalink) |
| References | <t1o4p-3Xc-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Convert driver to use managed resources.
This eliminates error path boilerplate and makes code neat.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/platform/x86/intel_mid_powerbtn.c | 29 +++++++++--------------------
1 file changed, 9 insertions(+), 20 deletions(-)
diff --git a/drivers/platform/x86/intel_mid_powerbtn.c b/drivers/platform/x86/intel_mid_powerbtn.c
index 361770568ad0..05c52cc87852 100644
--- a/drivers/platform/x86/intel_mid_powerbtn.c
+++ b/drivers/platform/x86/intel_mid_powerbtn.c
@@ -66,7 +66,7 @@ static int mfld_pb_probe(struct platform_device *pdev)
if (irq < 0)
return -EINVAL;
- input = input_allocate_device();
+ input = devm_input_allocate_device(&pdev->dev);
if (!input)
return -ENOMEM;
@@ -77,22 +77,19 @@ static int mfld_pb_probe(struct platform_device *pdev)
input_set_capability(input, EV_KEY, KEY_POWER);
- error = request_threaded_irq(irq, NULL, mfld_pb_isr, IRQF_ONESHOT,
- DRIVER_NAME, input);
+ error = devm_request_threaded_irq(&pdev->dev, irq, NULL, mfld_pb_isr,
+ IRQF_ONESHOT, DRIVER_NAME, input);
if (error) {
dev_err(&pdev->dev, "Unable to request irq %d for mfld power"
"button\n", irq);
- goto err_free_input;
+ return error;
}
- device_init_wakeup(&pdev->dev, true);
- dev_pm_set_wake_irq(&pdev->dev, irq);
-
error = input_register_device(input);
if (error) {
dev_err(&pdev->dev, "Unable to register input dev, error "
"%d\n", error);
- goto err_free_irq;
+ return error;
}
platform_set_drvdata(pdev, input);
@@ -111,27 +108,19 @@ static int mfld_pb_probe(struct platform_device *pdev)
if (error) {
dev_err(&pdev->dev, "Unable to clear power button interrupt, "
"error: %d\n", error);
- goto err_free_irq;
+ return error;
}
- return 0;
+ device_init_wakeup(&pdev->dev, true);
+ dev_pm_set_wake_irq(&pdev->dev, irq);
-err_free_irq:
- free_irq(irq, input);
-err_free_input:
- input_free_device(input);
- return error;
+ return 0;
}
static int mfld_pb_remove(struct platform_device *pdev)
{
- struct input_dev *input = platform_get_drvdata(pdev);
- int irq = platform_get_irq(pdev, 0);
-
dev_pm_clear_wake_irq(&pdev->dev);
device_init_wakeup(&pdev->dev, false);
- free_irq(irq, input);
- input_unregister_device(input);
return 0;
}
--
2.11.0
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v1 00/10] platform/x86: intel_mid_powerbtn: Fix, clean up, enhance Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-01-19 17:50 +0100 [PATCH v1 02/10] platform/x86: intel_mid_powerbtn: Convert to use devm_*() Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-01-19 17:50 +0100 [PATCH v1 05/10] platform/x86: intel_mid_powerbtn: Factor out mfld_ack() Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-01-19 18:00 +0100 [PATCH v1 01/10] platform/x86: intel_mid_powerbtn: Set IRQ_ONESHOT Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-01-19 18:30 +0100 [PATCH v1 08/10] platform/x86: intel_mid_powerbtn: Join string literals Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-01-19 20:30 +0100 [PATCH v1 06/10] platform/x86: intel_mid_powerbtn: Acknowledge interrupts Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2017-01-19 20:30 +0100
csiph-web