From: Eero Nurkkala <eero.nurkkala@xxxxxxxxxx> Currenly, a simple access to any of the interfaces fail, when accessed in the following manner: "amixer set Volume 100%" -> no success. Simplify the initiation and fix the interfaces so that they may be altered in a more generic ways. With the patch: amixer set Volume 100% Simple mixer control 'Volume',0 Capabilities: volume penum Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 16383 Front Left: 16383 [100%] Front Right: 16383 [100%] Signed-off-by: Eero Nurkkala <eero.nurkkala@xxxxxxxxxx> --- sound/soc/msm/msm8x60.c | 31 ++++++++++++------------------- 1 files changed, 12 insertions(+), 19 deletions(-) diff --git a/sound/soc/msm/msm8x60.c b/sound/soc/msm/msm8x60.c index 38c56de..eb0dab2 100644 --- a/sound/soc/msm/msm8x60.c +++ b/sound/soc/msm/msm8x60.c @@ -850,33 +850,26 @@ static struct snd_kcontrol_new snd_msm_secondary_controls[] = { pcm_route_info, pcm_route_get_tx, pcm_route_put_tx, 0), }; -static int msm_new_mixer(struct snd_card *card) +static int msm_new_mixer(struct snd_soc_codec *codec) { unsigned int idx; int err; int dev_cnt; - strcpy(card->mixername, "MSM Mixer"); - for (idx = 0; idx < ARRAY_SIZE(snd_msm_controls); idx++) { - err = snd_ctl_add(card, snd_ctl_new1(&snd_msm_controls[idx], - NULL)); - if (err < 0) - pr_err("%s:ERR adding ctl\n", __func__); - } - - for (idx = 0; idx < ARRAY_SIZE(snd_msm_secondary_controls); idx++) { - err = snd_ctl_add(card, - snd_ctl_new1(&snd_msm_secondary_controls[idx], - NULL)); - if (err < 0) - pr_err("%s:ERR adding secondary ctl\n", __func__); - } + strcpy(codec->card->mixername, "MSM Mixer"); + if (snd_soc_add_controls(codec, snd_msm_controls, + ARRAY_SIZE(snd_msm_controls))) + pr_err("%s:ERR adding ctl\n", __func__); dev_cnt = msm_snddev_devcount(); + if (snd_soc_add_controls(codec, snd_msm_secondary_controls, + ARRAY_SIZE(snd_msm_secondary_controls))) + pr_err("%s:ERR adding secondary ctl\n", __func__); + for (idx = 0; idx < dev_cnt; idx++) { if (!snd_dev_ctl_index(idx)) { - err = snd_ctl_add(card, snd_ctl_new1( - &snd_dev_controls[idx], NULL)); + err = snd_ctl_add(codec->card, snd_soc_cnew( + &snd_dev_controls[idx], codec, NULL)); if (err < 0) pr_err("%s:ERR adding ctl\n", __func__); } else @@ -892,7 +885,7 @@ static int msm_soc_dai_init(struct snd_soc_codec *codec) { int ret = 0; - ret = msm_new_mixer(codec->card); + ret = msm_new_mixer(codec); if (ret < 0) pr_err("%s: ALSA MSM Mixer Fail\n", __func__); -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html