iio: adc: mxs-lradc: Disable the clock on probe failure
We should disable lradc->clk in the case of errors in the probe function. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Reviewed-by: Marek Vasut <marex@denx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org> Cc: <Stable@vger.kernel.org>
This commit is contained in:
parent
c6b4cac2d9
commit
4748119f18
|
@ -1559,14 +1559,16 @@ static int mxs_lradc_probe(struct platform_device *pdev)
|
|||
/* Grab all IRQ sources */
|
||||
for (i = 0; i < of_cfg->irq_count; i++) {
|
||||
lradc->irq[i] = platform_get_irq(pdev, i);
|
||||
if (lradc->irq[i] < 0)
|
||||
return lradc->irq[i];
|
||||
if (lradc->irq[i] < 0) {
|
||||
ret = lradc->irq[i];
|
||||
goto err_clk;
|
||||
}
|
||||
|
||||
ret = devm_request_irq(dev, lradc->irq[i],
|
||||
mxs_lradc_handle_irq, 0,
|
||||
of_cfg->irq_name[i], iio);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_clk;
|
||||
}
|
||||
|
||||
lradc->vref_mv = of_cfg->vref_mv;
|
||||
|
@ -1588,7 +1590,7 @@ static int mxs_lradc_probe(struct platform_device *pdev)
|
|||
&mxs_lradc_trigger_handler,
|
||||
&mxs_lradc_buffer_ops);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_clk;
|
||||
|
||||
ret = mxs_lradc_trigger_init(iio);
|
||||
if (ret)
|
||||
|
@ -1643,6 +1645,8 @@ err_dev:
|
|||
mxs_lradc_trigger_remove(iio);
|
||||
err_trig:
|
||||
iio_triggered_buffer_cleanup(iio);
|
||||
err_clk:
|
||||
clk_disable_unprepare(lradc->clk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue