blob: 8420bf1a8da1c1721e54df5a73f3630bc888bd95 [file] [log] [blame]
From 7ae4a85f32ec9e06c35111591cc873a59b012715 Mon Sep 17 00:00:00 2001
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date: Thu, 23 Jan 2014 18:38:33 -0800
Subject: ASoC: rsnd: add rsnd_scu_init(), and separate init/start
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 --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)
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,
};
--
2.1.2