On Sat, Jun 20, 2015 at 03:41:14PM -0300, Fabio Estevam wrote:
From: Fabio Estevam fabio.estevam@freescale.com
clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error.
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
sound/soc/fsl/fsl_asrc.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index c068494..37dde26 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -931,14 +931,22 @@ static int fsl_asrc_probe(struct platform_device *pdev) static int fsl_asrc_runtime_resume(struct device *dev) { struct fsl_asrc *asrc_priv = dev_get_drvdata(dev);
- int i;
- int i, ret;
- clk_prepare_enable(asrc_priv->mem_clk);
- clk_prepare_enable(asrc_priv->ipg_clk);
- ret = clk_prepare_enable(asrc_priv->mem_clk);
- if (ret)
return ret;
- ret = clk_prepare_enable(asrc_priv->ipg_clk);
- if (ret)
goto disable_mem_clk;
for (i = 0; i < ASRC_CLK_MAX_NUM; i++) clk_prepare_enable(asrc_priv->asrck_clk[i]);
How about these clocks?
disable_clk: for (i--; i >= 0; i--) clk_disable_unprepare(asrc_priv->asrc_clk[i]);
Might be better?
Thank you Nicolin