diff mbox

[LTSI-3.14,026/894] ASoC: rsnd: add rsnd_scu_init(), and separate init/start

Message ID 1409209620-24487-27-git-send-email-horms+renesas@verge.net.au (mailing list archive)
State New, archived
Headers show

Commit Message

Simon Horman Aug. 28, 2014, 6:52 a.m. UTC
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

Current scu.c has rsnd_scu_start(),
and, operation of initialization/start
are implemented in this function.
This patch adds new rsnd_scu_init() and separates
rsnd_scu_start(), since rsnd_mod_ops has .init/.start callbacks.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit a204d90c91208d9b63ba309a1c44f582751e58c9)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 sound/soc/sh/rcar/scu.c | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)
diff mbox

Patch

diff --git a/sound/soc/sh/rcar/scu.c b/sound/soc/sh/rcar/scu.c
index ab5f1d2..e1e0873 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)
 	return !!(flags & RSND_SCU_USE_HPBIF);
 }
 
-static int rsnd_scu_start(struct rsnd_mod *mod,
+static int rsnd_scu_init(struct rsnd_mod *mod,
 			  struct rsnd_dai *rdai,
 			  struct rsnd_dai_stream *io)
 {
@@ -282,13 +282,30 @@  static int rsnd_scu_start(struct rsnd_mod *mod,
 	if (ret < 0)
 		return ret;
 
-	ret = rsnd_scu_transfer_start(priv, mod, rdai, io);
-	if (ret < 0)
-		return ret;
+	return 0;
+}
+
+static int rsnd_scu_quit(struct rsnd_mod *mod,
+			 struct rsnd_dai *rdai,
+			 struct rsnd_dai_stream *io)
+{
+	struct rsnd_scu *scu = rsnd_mod_to_scu(mod);
+
+	clk_disable(scu->clk);
 
 	return 0;
 }
 
+static int rsnd_scu_start(struct rsnd_mod *mod,
+			  struct rsnd_dai *rdai,
+			  struct rsnd_dai_stream *io)
+{
+	struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
+	struct rsnd_scu *scu = rsnd_mod_to_scu(mod);
+
+	return rsnd_scu_transfer_start(priv, mod, rdai, io);
+}
+
 static int rsnd_scu_stop(struct rsnd_mod *mod,
 			  struct rsnd_dai *rdai,
 			  struct rsnd_dai_stream *io)
@@ -298,13 +315,13 @@  static int rsnd_scu_stop(struct rsnd_mod *mod,
 
 	rsnd_scu_transfer_stop(priv, mod, rdai, io);
 
-	clk_disable(scu->clk);
-
 	return 0;
 }
 
 static struct rsnd_mod_ops rsnd_scu_ops = {
 	.name	= "scu",
+	.init	= rsnd_scu_init,
+	.quit	= rsnd_scu_quit,
 	.start	= rsnd_scu_start,
 	.stop	= rsnd_scu_stop,
 };