aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/fsl/fsl_sai.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index b8cdbf8660fe..69a375f48efe 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -111,7 +111,7 @@ static int fsl_sai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
111 dev_err(cpu_dai->dev, 111 dev_err(cpu_dai->dev,
112 "Cannot set SAI's transmitter sysclk: %d\n", 112 "Cannot set SAI's transmitter sysclk: %d\n",
113 ret); 113 ret);
114 return ret; 114 goto err_clk;
115 } 115 }
116 116
117 ret = fsl_sai_set_dai_sysclk_tr(cpu_dai, clk_id, freq, 117 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,
120 dev_err(cpu_dai->dev, 120 dev_err(cpu_dai->dev,
121 "Cannot set SAI's receiver sysclk: %d\n", 121 "Cannot set SAI's receiver sysclk: %d\n",
122 ret); 122 ret);
123 return ret; 123 goto err_clk;
124 } 124 }
125 125
126err_clk:
126 clk_disable_unprepare(sai->clk); 127 clk_disable_unprepare(sai->clk);
127 128
128 return 0; 129 return ret;
129} 130}
130 131
131static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai, 132static 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)
222 dev_err(cpu_dai->dev, 223 dev_err(cpu_dai->dev,
223 "Cannot set SAI's transmitter format: %d\n", 224 "Cannot set SAI's transmitter format: %d\n",
224 ret); 225 ret);
225 return ret; 226 goto err_clk;
226 } 227 }
227 228
228 ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_RECEIVER); 229 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)
230 dev_err(cpu_dai->dev, 231 dev_err(cpu_dai->dev,
231 "Cannot set SAI's receiver format: %d\n", 232 "Cannot set SAI's receiver format: %d\n",
232 ret); 233 ret);
233 return ret; 234 goto err_clk;
234 } 235 }
235 236
237err_clk:
236 clk_disable_unprepare(sai->clk); 238 clk_disable_unprepare(sai->clk);
237 239
238 return 0; 240 return ret;
239} 241}
240 242
241static int fsl_sai_hw_params(struct snd_pcm_substream *substream, 243static int fsl_sai_hw_params(struct snd_pcm_substream *substream,