ASoC: rsnd: care snd_kcontrol's index
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 10 Apr 2015 08:50:50 +0000 (08:50 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 27 Apr 2015 19:57:39 +0000 (20:57 +0100)
rsnd might be used in multi-codec sound card.
Then, same name kcontrol will be registered many times, and it will
be error. This patch fixes this issue by using .index

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/core.c

index 164653c..99eb109 100644 (file)
@@ -839,12 +839,14 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod,
                            struct rsnd_kctrl_cfg *cfg,
                            void (*update)(struct rsnd_mod *mod))
 {
+       struct snd_soc_card *soc_card = rtd->card;
        struct snd_card *card = rtd->card->snd_card;
        struct snd_kcontrol *kctrl;
        struct snd_kcontrol_new knew = {
                .iface          = SNDRV_CTL_ELEM_IFACE_MIXER,
                .name           = name,
                .info           = rsnd_kctrl_info,
+               .index          = rtd - soc_card->rtd,
                .get            = rsnd_kctrl_get,
                .put            = rsnd_kctrl_put,
                .private_value  = (unsigned long)cfg,