From: Kuninori Morimoto <[email protected]>

DVC is supporting Volume Ramp Rate, and MIX has it too,
but not yet supported. To support MIX Volume Ramp, we want to
share Rate List since DVC/MIX are using almost same list.
This patch move DVC specific Volume Ramp Rate List to core.c.

Signed-off-by: Kuninori Morimoto <[email protected]>
Tested-by: Hiroyuki Yokoyama <[email protected]>
---
 sound/soc/sh/rcar/core.c | 27 +++++++++++++++++++++++++++
 sound/soc/sh/rcar/dvc.c  | 33 ++++-----------------------------
 sound/soc/sh/rcar/rsnd.h |  7 +++++--
 3 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index 1071332..03649bf 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -1242,6 +1242,33 @@ struct rsnd_kctrl_cfg *rsnd_kctrl_init_s(struct 
rsnd_kctrl_cfg_s *cfg)
        return &cfg->cfg;
 }
 
+const char * const volume_ramp_rate[] = {
+       "128 dB/1 step",         /* 00000 */
+       "64 dB/1 step",          /* 00001 */
+       "32 dB/1 step",          /* 00010 */
+       "16 dB/1 step",          /* 00011 */
+       "8 dB/1 step",           /* 00100 */
+       "4 dB/1 step",           /* 00101 */
+       "2 dB/1 step",           /* 00110 */
+       "1 dB/1 step",           /* 00111 */
+       "0.5 dB/1 step",         /* 01000 */
+       "0.25 dB/1 step",        /* 01001 */
+       "0.125 dB/1 step",       /* 01010 = KCTRL_RAMP_MAX_CTU */
+       "0.125 dB/2 steps",      /* 01011 */
+       "0.125 dB/4 steps",      /* 01100 */
+       "0.125 dB/8 steps",      /* 01101 */
+       "0.125 dB/16 steps",     /* 01110 */
+       "0.125 dB/32 steps",     /* 01111 */
+       "0.125 dB/64 steps",     /* 10000 */
+       "0.125 dB/128 steps",    /* 10001 */
+       "0.125 dB/256 steps",    /* 10010 */
+       "0.125 dB/512 steps",    /* 10011 */
+       "0.125 dB/1024 steps",   /* 10100 */
+       "0.125 dB/2048 steps",   /* 10101 */
+       "0.125 dB/4096 steps",   /* 10110 */
+       "0.125 dB/8192 steps",   /* 10111 = KCTRL_RAMP_MAX_DVC */
+};
+
 int rsnd_kctrl_new(struct rsnd_mod *mod,
                   struct rsnd_dai_stream *io,
                   struct snd_soc_pcm_runtime *rtd,
diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c
index b4c4ff2..cf17027 100644
--- a/sound/soc/sh/rcar/dvc.c
+++ b/sound/soc/sh/rcar/dvc.c
@@ -61,33 +61,6 @@ struct rsnd_dvc {
             ((pos) = (struct rsnd_dvc *)(priv)->dvc + i);      \
             i++)
 
-static const char * const dvc_ramp_rate[] = {
-       "128 dB/1 step",         /* 00000 */
-       "64 dB/1 step",          /* 00001 */
-       "32 dB/1 step",          /* 00010 */
-       "16 dB/1 step",          /* 00011 */
-       "8 dB/1 step",           /* 00100 */
-       "4 dB/1 step",           /* 00101 */
-       "2 dB/1 step",           /* 00110 */
-       "1 dB/1 step",           /* 00111 */
-       "0.5 dB/1 step",         /* 01000 */
-       "0.25 dB/1 step",        /* 01001 */
-       "0.125 dB/1 step",       /* 01010 */
-       "0.125 dB/2 steps",      /* 01011 */
-       "0.125 dB/4 steps",      /* 01100 */
-       "0.125 dB/8 steps",      /* 01101 */
-       "0.125 dB/16 steps",     /* 01110 */
-       "0.125 dB/32 steps",     /* 01111 */
-       "0.125 dB/64 steps",     /* 10000 */
-       "0.125 dB/128 steps",    /* 10001 */
-       "0.125 dB/256 steps",    /* 10010 */
-       "0.125 dB/512 steps",    /* 10011 */
-       "0.125 dB/1024 steps",   /* 10100 */
-       "0.125 dB/2048 steps",   /* 10101 */
-       "0.125 dB/4096 steps",   /* 10110 */
-       "0.125 dB/8192 steps",   /* 10111 */
-};
-
 static void rsnd_dvc_activation(struct rsnd_mod *mod)
 {
        rsnd_mod_write(mod, DVC_SWRSR, 0);
@@ -298,7 +271,8 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
                        rsnd_kctrl_accept_anytime,
                        rsnd_dvc_volume_update,
                        &dvc->rup,
-                       dvc_ramp_rate);
+                       volume_ramp_rate,
+                       VOLUME_RAMP_MAX_DVC);
        if (ret < 0)
                return ret;
 
@@ -308,7 +282,8 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
                        rsnd_kctrl_accept_anytime,
                        rsnd_dvc_volume_update,
                        &dvc->rdown,
-                       dvc_ramp_rate);
+                       volume_ramp_rate,
+                       VOLUME_RAMP_MAX_DVC);
 
        if (ret < 0)
                return ret;
diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h
index 558200f..db2cc74 100644
--- a/sound/soc/sh/rcar/rsnd.h
+++ b/sound/soc/sh/rcar/rsnd.h
@@ -656,9 +656,12 @@ int rsnd_kctrl_new(struct rsnd_mod *mod,
        rsnd_kctrl_new(mod, io, rtd, name, accept, update, 
rsnd_kctrl_init_s(cfg), \
                       NULL, 1, max)
 
-#define rsnd_kctrl_new_e(mod, io, rtd, name, accept, update, cfg, texts)       
\
+#define rsnd_kctrl_new_e(mod, io, rtd, name, accept, update, cfg, texts, size) 
\
        rsnd_kctrl_new(mod, io, rtd, name, accept, update, 
rsnd_kctrl_init_s(cfg), \
-                      texts, 1, ARRAY_SIZE(texts))
+                      texts, 1, size)
+
+extern const char * const volume_ramp_rate[];
+#define VOLUME_RAMP_MAX_DVC    (0x17 + 1)
 
 /*
  *     R-Car SSI
-- 
1.9.1

Reply via email to