ASoC: rsnd: merge rsnd_kctrl_new_m/s/e into rsnd_kctrl_new()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 6 Apr 2017 07:25:13 +0000 (07:25 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 6 Apr 2017 10:50:18 +0000 (11:50 +0100)
Current rsnd driver is using rsnd_kctrl_new_m/s/e function,
but the differences are very few.
This patch merge these rsnd_kctrl_new_m/s/e into rsnd_kctrl_new

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/core.c
sound/soc/sh/rcar/dvc.c
sound/soc/sh/rcar/rsnd.h

index 35c96e4bbd64311ec44435009d56739fc2495564..f8eb9d3d1949c94539bf7bb3c33f2ac37fa0623b 100644 (file)
@@ -1000,13 +1000,30 @@ static int rsnd_kctrl_put(struct snd_kcontrol *kctrl,
        return change;
 }
 
-static int __rsnd_kctrl_new(struct rsnd_mod *mod,
-                           struct rsnd_dai_stream *io,
-                           struct snd_soc_pcm_runtime *rtd,
-                           const unsigned char *name,
-                           struct rsnd_kctrl_cfg *cfg,
-                           void (*update)(struct rsnd_dai_stream *io,
-                                          struct rsnd_mod *mod))
+struct rsnd_kctrl_cfg *rsnd_kctrl_init_m(struct rsnd_kctrl_cfg_m *cfg)
+{
+       cfg->cfg.val = cfg->val;
+
+       return &cfg->cfg;
+}
+
+struct rsnd_kctrl_cfg *rsnd_kctrl_init_s(struct rsnd_kctrl_cfg_s *cfg)
+{
+       cfg->cfg.val = &cfg->val;
+
+       return &cfg->cfg;
+}
+
+int rsnd_kctrl_new(struct rsnd_mod *mod,
+                  struct rsnd_dai_stream *io,
+                  struct snd_soc_pcm_runtime *rtd,
+                  const unsigned char *name,
+                  void (*update)(struct rsnd_dai_stream *io,
+                                 struct rsnd_mod *mod),
+                  struct rsnd_kctrl_cfg *cfg,
+                  const char * const *texts,
+                  int size,
+                  u32 max)
 {
        struct snd_card *card = rtd->card->snd_card;
        struct snd_kcontrol *kctrl;
@@ -1021,6 +1038,9 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod,
        };
        int ret;
 
+       if (size > RSND_MAX_CHANNELS)
+               return -EINVAL;
+
        kctrl = snd_ctl_new1(&knew, mod);
        if (!kctrl)
                return -ENOMEM;
@@ -1029,65 +1049,17 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod,
        if (ret < 0)
                return ret;
 
-       cfg->update = update;
-       cfg->card = card;
-       cfg->kctrl = kctrl;
-       cfg->io = io;
+       cfg->texts      = texts;
+       cfg->max        = max;
+       cfg->size       = size;
+       cfg->update     = update;
+       cfg->card       = card;
+       cfg->kctrl      = kctrl;
+       cfg->io         = io;
 
        return 0;
 }
 
-int rsnd_kctrl_new_m(struct rsnd_mod *mod,
-                    struct rsnd_dai_stream *io,
-                    struct snd_soc_pcm_runtime *rtd,
-                    const unsigned char *name,
-                    void (*update)(struct rsnd_dai_stream *io,
-                                   struct rsnd_mod *mod),
-                    struct rsnd_kctrl_cfg_m *_cfg,
-                    int ch_size,
-                    u32 max)
-{
-       if (ch_size > RSND_MAX_CHANNELS)
-               return -EINVAL;
-
-       _cfg->cfg.max   = max;
-       _cfg->cfg.size  = ch_size;
-       _cfg->cfg.val   = _cfg->val;
-       return __rsnd_kctrl_new(mod, io, rtd, name, &_cfg->cfg, update);
-}
-
-int rsnd_kctrl_new_s(struct rsnd_mod *mod,
-                    struct rsnd_dai_stream *io,
-                    struct snd_soc_pcm_runtime *rtd,
-                    const unsigned char *name,
-                    void (*update)(struct rsnd_dai_stream *io,
-                                   struct rsnd_mod *mod),
-                    struct rsnd_kctrl_cfg_s *_cfg,
-                    u32 max)
-{
-       _cfg->cfg.max   = max;
-       _cfg->cfg.size  = 1;
-       _cfg->cfg.val   = &_cfg->val;
-       return __rsnd_kctrl_new(mod, io, rtd, name, &_cfg->cfg, update);
-}
-
-int rsnd_kctrl_new_e(struct rsnd_mod *mod,
-                    struct rsnd_dai_stream *io,
-                    struct snd_soc_pcm_runtime *rtd,
-                    const unsigned char *name,
-                    struct rsnd_kctrl_cfg_s *_cfg,
-                    void (*update)(struct rsnd_dai_stream *io,
-                                   struct rsnd_mod *mod),
-                    const char * const *texts,
-                    u32 max)
-{
-       _cfg->cfg.max   = max;
-       _cfg->cfg.size  = 1;
-       _cfg->cfg.val   = &_cfg->val;
-       _cfg->cfg.texts = texts;
-       return __rsnd_kctrl_new(mod, io, rtd, name, &_cfg->cfg, update);
-}
-
 /*
  *             snd_soc_platform
  */
index 994fdb7d003424485c0dcdb715a5cb61ee235b82..463de8360985c5518f90f6f102a2ccccd560ff0b 100644 (file)
@@ -285,18 +285,18 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
        ret = rsnd_kctrl_new_e(mod, io, rtd,
                        is_play ?
                        "DVC Out Ramp Up Rate" : "DVC In Ramp Up Rate",
-                       &dvc->rup,
                        rsnd_dvc_volume_update,
-                       dvc_ramp_rate, ARRAY_SIZE(dvc_ramp_rate));
+                       &dvc->rup,
+                       dvc_ramp_rate);
        if (ret < 0)
                return ret;
 
        ret = rsnd_kctrl_new_e(mod, io, rtd,
                        is_play ?
                        "DVC Out Ramp Down Rate" : "DVC In Ramp Down Rate",
-                       &dvc->rdown,
                        rsnd_dvc_volume_update,
-                       dvc_ramp_rate, ARRAY_SIZE(dvc_ramp_rate));
+                       &dvc->rdown,
+                       dvc_ramp_rate);
 
        if (ret < 0)
                return ret;
index 81ef3f18834a00f2a9ea6214e522d81c56e1c4ad..3dc9e06f59433466172019301f10b5642f6dd2bf 100644 (file)
@@ -611,32 +611,30 @@ struct rsnd_kctrl_cfg_s {
        u32 val;
 };
 
-int rsnd_kctrl_new_m(struct rsnd_mod *mod,
-                    struct rsnd_dai_stream *io,
-                    struct snd_soc_pcm_runtime *rtd,
-                    const unsigned char *name,
-                    void (*update)(struct rsnd_dai_stream *io,
-                                   struct rsnd_mod *mod),
-                    struct rsnd_kctrl_cfg_m *_cfg,
-                    int ch_size,
-                    u32 max);
-int rsnd_kctrl_new_s(struct rsnd_mod *mod,
-                    struct rsnd_dai_stream *io,
-                    struct snd_soc_pcm_runtime *rtd,
-                    const unsigned char *name,
-                    void (*update)(struct rsnd_dai_stream *io,
-                                   struct rsnd_mod *mod),
-                    struct rsnd_kctrl_cfg_s *_cfg,
-                    u32 max);
-int rsnd_kctrl_new_e(struct rsnd_mod *mod,
-                    struct rsnd_dai_stream *io,
-                    struct snd_soc_pcm_runtime *rtd,
-                    const unsigned char *name,
-                    struct rsnd_kctrl_cfg_s *_cfg,
-                    void (*update)(struct rsnd_dai_stream *io,
-                                   struct rsnd_mod *mod),
-                    const char * const *texts,
-                    u32 max);
+struct rsnd_kctrl_cfg *rsnd_kctrl_init_m(struct rsnd_kctrl_cfg_m *cfg);
+struct rsnd_kctrl_cfg *rsnd_kctrl_init_s(struct rsnd_kctrl_cfg_s *cfg);
+int rsnd_kctrl_new(struct rsnd_mod *mod,
+                  struct rsnd_dai_stream *io,
+                  struct snd_soc_pcm_runtime *rtd,
+                  const unsigned char *name,
+                  void (*update)(struct rsnd_dai_stream *io,
+                                 struct rsnd_mod *mod),
+                  struct rsnd_kctrl_cfg *cfg,
+                  const char * const *texts,
+                  int size,
+                  u32 max);
+
+#define rsnd_kctrl_new_m(mod, io, rtd, name, update, cfg, size, max) \
+       rsnd_kctrl_new(mod, io, rtd, name, update, rsnd_kctrl_init_m(cfg), \
+                      NULL, size, max)
+
+#define rsnd_kctrl_new_s(mod, io, rtd, name, update, cfg, max) \
+       rsnd_kctrl_new(mod, io, rtd, name, update, rsnd_kctrl_init_s(cfg), \
+                      NULL, 1, max)
+
+#define rsnd_kctrl_new_e(mod, io, rtd, name, update, cfg, texts)       \
+       rsnd_kctrl_new(mod, io, rtd, name, update, rsnd_kctrl_init_s(cfg), \
+                      texts, 1, ARRAY_SIZE(texts))
 
 /*
  *     R-Car SSI