Commit 34a01d86 authored by Fabio Estevam's avatar Fabio Estevam Committed by Luis Henriques

iio: adc: mxs-lradc: Disable the clock on probe failure

commit 75d7ed3b upstream.

We should disable lradc->clk in the case of errors in the probe function.
Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: default avatarMarek Vasut <marex@denx.de>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
parent 138d2d88
...@@ -1565,14 +1565,16 @@ static int mxs_lradc_probe(struct platform_device *pdev) ...@@ -1565,14 +1565,16 @@ static int mxs_lradc_probe(struct platform_device *pdev)
/* Grab all IRQ sources */ /* Grab all IRQ sources */
for (i = 0; i < of_cfg->irq_count; i++) { for (i = 0; i < of_cfg->irq_count; i++) {
lradc->irq[i] = platform_get_irq(pdev, i); lradc->irq[i] = platform_get_irq(pdev, i);
if (lradc->irq[i] < 0) if (lradc->irq[i] < 0) {
return lradc->irq[i]; ret = lradc->irq[i];
goto err_clk;
}
ret = devm_request_irq(dev, lradc->irq[i], ret = devm_request_irq(dev, lradc->irq[i],
mxs_lradc_handle_irq, 0, mxs_lradc_handle_irq, 0,
of_cfg->irq_name[i], iio); of_cfg->irq_name[i], iio);
if (ret) if (ret)
return ret; goto err_clk;
} }
lradc->vref_mv = of_cfg->vref_mv; lradc->vref_mv = of_cfg->vref_mv;
...@@ -1594,7 +1596,7 @@ static int mxs_lradc_probe(struct platform_device *pdev) ...@@ -1594,7 +1596,7 @@ static int mxs_lradc_probe(struct platform_device *pdev)
&mxs_lradc_trigger_handler, &mxs_lradc_trigger_handler,
&mxs_lradc_buffer_ops); &mxs_lradc_buffer_ops);
if (ret) if (ret)
return ret; goto err_clk;
ret = mxs_lradc_trigger_init(iio); ret = mxs_lradc_trigger_init(iio);
if (ret) if (ret)
...@@ -1649,6 +1651,8 @@ static int mxs_lradc_probe(struct platform_device *pdev) ...@@ -1649,6 +1651,8 @@ static int mxs_lradc_probe(struct platform_device *pdev)
mxs_lradc_trigger_remove(iio); mxs_lradc_trigger_remove(iio);
err_trig: err_trig:
iio_triggered_buffer_cleanup(iio); iio_triggered_buffer_cleanup(iio);
err_clk:
clk_disable_unprepare(lradc->clk);
return ret; return ret;
} }
......
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