aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/sh/rcar/scu.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/sound/soc/sh/rcar/scu.c b/sound/soc/sh/rcar/scu.c
index ab5f1d21731e..e1e08738b9d4 100644
--- a/sound/soc/sh/rcar/scu.c
+++ b/sound/soc/sh/rcar/scu.c
@@ -264,7 +264,7 @@ bool rsnd_scu_hpbif_is_enable(struct rsnd_mod *mod)
264 return !!(flags & RSND_SCU_USE_HPBIF); 264 return !!(flags & RSND_SCU_USE_HPBIF);
265} 265}
266 266
267static int rsnd_scu_start(struct rsnd_mod *mod, 267static int rsnd_scu_init(struct rsnd_mod *mod,
268 struct rsnd_dai *rdai, 268 struct rsnd_dai *rdai,
269 struct rsnd_dai_stream *io) 269 struct rsnd_dai_stream *io)
270{ 270{
@@ -282,13 +282,30 @@ static int rsnd_scu_start(struct rsnd_mod *mod,
282 if (ret < 0) 282 if (ret < 0)
283 return ret; 283 return ret;
284 284
285 ret = rsnd_scu_transfer_start(priv, mod, rdai, io); 285 return 0;
286 if (ret < 0) 286}
287 return ret; 287
288static int rsnd_scu_quit(struct rsnd_mod *mod,
289 struct rsnd_dai *rdai,
290 struct rsnd_dai_stream *io)
291{
292 struct rsnd_scu *scu = rsnd_mod_to_scu(mod);
293
294 clk_disable(scu->clk);
288 295
289 return 0; 296 return 0;
290} 297}
291 298
299static int rsnd_scu_start(struct rsnd_mod *mod,
300 struct rsnd_dai *rdai,
301 struct rsnd_dai_stream *io)
302{
303 struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
304 struct rsnd_scu *scu = rsnd_mod_to_scu(mod);
305
306 return rsnd_scu_transfer_start(priv, mod, rdai, io);
307}
308
292static int rsnd_scu_stop(struct rsnd_mod *mod, 309static int rsnd_scu_stop(struct rsnd_mod *mod,
293 struct rsnd_dai *rdai, 310 struct rsnd_dai *rdai,
294 struct rsnd_dai_stream *io) 311 struct rsnd_dai_stream *io)
@@ -298,13 +315,13 @@ static int rsnd_scu_stop(struct rsnd_mod *mod,
298 315
299 rsnd_scu_transfer_stop(priv, mod, rdai, io); 316 rsnd_scu_transfer_stop(priv, mod, rdai, io);
300 317
301 clk_disable(scu->clk);
302
303 return 0; 318 return 0;
304} 319}
305 320
306static struct rsnd_mod_ops rsnd_scu_ops = { 321static struct rsnd_mod_ops rsnd_scu_ops = {
307 .name = "scu", 322 .name = "scu",
323 .init = rsnd_scu_init,
324 .quit = rsnd_scu_quit,
308 .start = rsnd_scu_start, 325 .start = rsnd_scu_start,
309 .stop = rsnd_scu_stop, 326 .stop = rsnd_scu_stop,
310}; 327};