Commit 449635ec authored by Jinjie Ruan's avatar Jinjie Ruan Committed by Jonathan Cameron

iio: adc: at91_adc: Use devm_request_irq() helper function

Use devm_request_irq() to request the interrupt, so we can avoid
having to manually clean this up.
Signed-off-by: default avatarJinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20230828064546.2383857-2-ruanjinjie@huawei.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 9979cc64
...@@ -1077,11 +1077,13 @@ static int at91_adc_probe(struct platform_device *pdev) ...@@ -1077,11 +1077,13 @@ static int at91_adc_probe(struct platform_device *pdev)
at91_adc_writel(st, AT91_ADC_IDR, 0xFFFFFFFF); at91_adc_writel(st, AT91_ADC_IDR, 0xFFFFFFFF);
if (st->caps->has_tsmr) if (st->caps->has_tsmr)
ret = request_irq(st->irq, at91_adc_9x5_interrupt, 0, ret = devm_request_irq(&pdev->dev, st->irq,
pdev->dev.driver->name, idev); at91_adc_9x5_interrupt, 0,
pdev->dev.driver->name, idev);
else else
ret = request_irq(st->irq, at91_adc_rl_interrupt, 0, ret = devm_request_irq(&pdev->dev, st->irq,
pdev->dev.driver->name, idev); at91_adc_rl_interrupt, 0,
pdev->dev.driver->name, idev);
if (ret) { if (ret) {
dev_err(&pdev->dev, "Failed to allocate IRQ.\n"); dev_err(&pdev->dev, "Failed to allocate IRQ.\n");
return ret; return ret;
...@@ -1090,15 +1092,14 @@ static int at91_adc_probe(struct platform_device *pdev) ...@@ -1090,15 +1092,14 @@ static int at91_adc_probe(struct platform_device *pdev)
st->clk = devm_clk_get(&pdev->dev, "adc_clk"); st->clk = devm_clk_get(&pdev->dev, "adc_clk");
if (IS_ERR(st->clk)) { if (IS_ERR(st->clk)) {
dev_err(&pdev->dev, "Failed to get the clock.\n"); dev_err(&pdev->dev, "Failed to get the clock.\n");
ret = PTR_ERR(st->clk); return PTR_ERR(st->clk);
goto error_free_irq;
} }
ret = clk_prepare_enable(st->clk); ret = clk_prepare_enable(st->clk);
if (ret) { if (ret) {
dev_err(&pdev->dev, dev_err(&pdev->dev,
"Could not prepare or enable the clock.\n"); "Could not prepare or enable the clock.\n");
goto error_free_irq; return ret;
} }
st->adc_clk = devm_clk_get(&pdev->dev, "adc_op_clk"); st->adc_clk = devm_clk_get(&pdev->dev, "adc_op_clk");
...@@ -1211,8 +1212,6 @@ static int at91_adc_probe(struct platform_device *pdev) ...@@ -1211,8 +1212,6 @@ static int at91_adc_probe(struct platform_device *pdev)
clk_disable_unprepare(st->adc_clk); clk_disable_unprepare(st->adc_clk);
error_disable_clk: error_disable_clk:
clk_disable_unprepare(st->clk); clk_disable_unprepare(st->clk);
error_free_irq:
free_irq(st->irq, idev);
return ret; return ret;
} }
...@@ -1230,7 +1229,6 @@ static int at91_adc_remove(struct platform_device *pdev) ...@@ -1230,7 +1229,6 @@ static int at91_adc_remove(struct platform_device *pdev)
} }
clk_disable_unprepare(st->adc_clk); clk_disable_unprepare(st->adc_clk);
clk_disable_unprepare(st->clk); clk_disable_unprepare(st->clk);
free_irq(st->irq, idev);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment