ASoC: fsl_sai: Keep symmetry for clk_enable() and clk_disable()
authorNicolin Chen <Guangyu.Chen@freescale.com>
Fri, 20 Dec 2013 08:41:00 +0000 (16:41 +0800)
committerMark Brown <broonie@linaro.org>
Sat, 21 Dec 2013 14:47:10 +0000 (14:47 +0000)
There are two functions haven't clk_disable_unprepare() if having error.
Thus fix them.

Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Reviewed-by: Xiubo Li <Li.Xiubo@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/fsl/fsl_sai.c

index b8cdbf8660fe5d1414f2acb6345c5d301c0f83f8..69a375f48efe45a953ebfb29d89b99849eb1ef5f 100644 (file)
@@ -111,7 +111,7 @@ static int fsl_sai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
                dev_err(cpu_dai->dev,
                                "Cannot set SAI's transmitter sysclk: %d\n",
                                ret);
-               return ret;
+               goto err_clk;
        }
 
        ret = fsl_sai_set_dai_sysclk_tr(cpu_dai, clk_id, freq,
@@ -120,12 +120,13 @@ static int fsl_sai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
                dev_err(cpu_dai->dev,
                                "Cannot set SAI's receiver sysclk: %d\n",
                                ret);
-               return ret;
+               goto err_clk;
        }
 
+err_clk:
        clk_disable_unprepare(sai->clk);
 
-       return 0;
+       return ret;
 }
 
 static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai,
@@ -222,7 +223,7 @@ static int fsl_sai_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
                dev_err(cpu_dai->dev,
                                "Cannot set SAI's transmitter format: %d\n",
                                ret);
-               return ret;
+               goto err_clk;
        }
 
        ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_RECEIVER);
@@ -230,12 +231,13 @@ static int fsl_sai_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
                dev_err(cpu_dai->dev,
                                "Cannot set SAI's receiver format: %d\n",
                                ret);
-               return ret;
+               goto err_clk;
        }
 
+err_clk:
        clk_disable_unprepare(sai->clk);
 
-       return 0;
+       return ret;
 }
 
 static int fsl_sai_hw_params(struct snd_pcm_substream *substream,