* [PATCH] ASoC: msm8x60: enhance mixer interfaces @ 2011-02-10 10:49 eero.nurkkala 2011-02-10 17:33 ` David Brown 2011-02-19 2:00 ` Patrick Lai 0 siblings, 2 replies; 6+ messages in thread From: eero.nurkkala @ 2011-02-10 10:49 UTC (permalink / raw) To: linux-arm-msm; +Cc: Eero Nurkkala From: Eero Nurkkala <eero.nurkkala@offcode.fi> 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@offcode.fi> --- 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 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: msm8x60: enhance mixer interfaces 2011-02-10 10:49 [PATCH] ASoC: msm8x60: enhance mixer interfaces eero.nurkkala @ 2011-02-10 17:33 ` David Brown 2011-02-10 18:11 ` eero.nurkkala 2011-02-19 2:00 ` Patrick Lai 1 sibling, 1 reply; 6+ messages in thread From: David Brown @ 2011-02-10 17:33 UTC (permalink / raw) To: eero.nurkkala; +Cc: linux-arm-msm On Thu, Feb 10 2011, eero.nurkkala@offcode.fi wrote: > From: Eero Nurkkala <eero.nurkkala@offcode.fi> > > 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: Which kernel is this patch against? I can forward the change internally, but this code isn't yet in the main Linux kernel. Thanks, David -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: msm8x60: enhance mixer interfaces 2011-02-10 17:33 ` David Brown @ 2011-02-10 18:11 ` eero.nurkkala 2011-02-10 18:11 ` David Brown 0 siblings, 1 reply; 6+ messages in thread From: eero.nurkkala @ 2011-02-10 18:11 UTC (permalink / raw) To: David Brown; +Cc: linux-arm-msm Quoting David Brown <davidb@codeaurora.org>: > On Thu, Feb 10 2011, eero.nurkkala@offcode.fi wrote: > >> From: Eero Nurkkala <eero.nurkkala@offcode.fi> >> >> 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: > > Which kernel is this patch against? I can forward the change > internally, but this code isn't yet in the main Linux kernel. It's the: android-msm-2.6.35 branch @ git://codeaurora.org/projects/kernel/msm.git (URL: https://www.codeaurora.org/gitweb/quic/le/?p=kernel/msm.git) Is there a more relevant mailing list available for sending patches on that particular git tree? (eg. if I send patches in the future) BR, Eero > > Thanks, > David > > -- > Sent by an employee of the Qualcomm Innovation Center, Inc. > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: msm8x60: enhance mixer interfaces 2011-02-10 18:11 ` eero.nurkkala @ 2011-02-10 18:11 ` David Brown 0 siblings, 0 replies; 6+ messages in thread From: David Brown @ 2011-02-10 18:11 UTC (permalink / raw) To: eero.nurkkala; +Cc: linux-arm-msm On Thu, Feb 10 2011, eero.nurkkala@offcode.fi wrote: > Quoting David Brown <davidb@codeaurora.org>: >> On Thu, Feb 10 2011, eero.nurkkala@offcode.fi wrote: >> >>> From: Eero Nurkkala <eero.nurkkala@offcode.fi> >>> >>> 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: >> >> Which kernel is this patch against? I can forward the change >> internally, but this code isn't yet in the main Linux kernel. > > It's the: > android-msm-2.6.35 branch @ git://codeaurora.org/projects/kernel/msm.git > (URL: https://www.codeaurora.org/gitweb/quic/le/?p=kernel/msm.git) > > Is there a more relevant mailing list available for sending patches on > that particular git tree? (eg. if I send patches in the future) No, this would be the place. It's more just that I've never gotten a patch against that branch before. David -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: msm8x60: enhance mixer interfaces 2011-02-10 10:49 [PATCH] ASoC: msm8x60: enhance mixer interfaces eero.nurkkala 2011-02-10 17:33 ` David Brown @ 2011-02-19 2:00 ` Patrick Lai 2011-02-21 6:58 ` eero.nurkkala 1 sibling, 1 reply; 6+ messages in thread From: Patrick Lai @ 2011-02-19 2:00 UTC (permalink / raw) To: eero.nurkkala; +Cc: linux-arm-msm Hi, In your patch, snd_soc_cnew() is invoked. This function sets index of snd_kcontrol_new to 0. You must have realized by now that MSM audio drivers are not truly ALSA compliant. List of sound devices(i.e speaker) is exposed to user-space as mixer controls. Index of control is used to propagate native ID of a particular sound device though you can still derive native ID from value returned from control "Count". It is not as straight forward as reading the index Is it really necessary to call snd_soc_cnew()? On 2/10/2011 2:49 AM, eero.nurkkala@offcode.fi wrote: > From: Eero Nurkkala<eero.nurkkala@offcode.fi> > > 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@offcode.fi> > --- > 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__); > -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: msm8x60: enhance mixer interfaces 2011-02-19 2:00 ` Patrick Lai @ 2011-02-21 6:58 ` eero.nurkkala 0 siblings, 0 replies; 6+ messages in thread From: eero.nurkkala @ 2011-02-21 6:58 UTC (permalink / raw) To: Patrick Lai; +Cc: linux-arm-msm Quoting Patrick Lai <plai@codeaurora.org>: > Hi, > > In your patch, snd_soc_cnew() is invoked. This function sets > index of snd_kcontrol_new to 0. You must have realized by now that > MSM audio drivers are not truly ALSA compliant. List of sound > devices(i.e speaker) is exposed to user-space as mixer controls. > Index of control is used to propagate native ID of a particular > sound device though you can still derive native ID from value > returned from control "Count". It is not as straight forward as > reading the index > Is it really necessary to call snd_soc_cnew()? > Right, this is the diff of 'amixer contents' without and with the patch: < numid=19,iface=MIXER,name='anc_headset_stereo_rx',index=5 --- > numid=19,iface=MIXER,name='anc_headset_stereo_rx' 43c43 < numid=20,iface=MIXER,name='bt_sco_rx',index=6 --- > numid=20,iface=MIXER,name='bt_sco_rx' 46c46 < numid=21,iface=MIXER,name='bt_sco_tx',index=7 --- > numid=21,iface=MIXER,name='bt_sco_tx' 49c49 < numid=23,iface=MIXER,name='fmradio_stereo_rx',index=9 --- > numid=23,iface=MIXER,name='fmradio_stereo_rx' 52c52 < numid=22,iface=MIXER,name='fmradio_stereo_tx',index=8 --- > numid=22,iface=MIXER,name='fmradio_stereo_tx' 58c58 < numid=15,iface=MIXER,name='handset_tx',index=1 --- > numid=15,iface=MIXER,name='handset_tx' 61c61 < numid=24,iface=MIXER,name='hdmi_stereo_rx',index=10 --- > numid=24,iface=MIXER,name='hdmi_stereo_rx' 64c64 < numid=18,iface=MIXER,name='headset_mono_tx',index=4 --- > numid=18,iface=MIXER,name='headset_mono_tx' 67c67 < numid=17,iface=MIXER,name='headset_stereo_rx',index=3 --- > numid=17,iface=MIXER,name='headset_stereo_rx' 70c70 < numid=16,iface=MIXER,name='speaker_stereo_rx',index=2 --- > numid=16,iface=MIXER,name='speaker_stereo_rx' -> so agreed it can cause headache. - Eero > On 2/10/2011 2:49 AM, eero.nurkkala@offcode.fi wrote: >> From: Eero Nurkkala<eero.nurkkala@offcode.fi> >> >> 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@offcode.fi> >> --- >> 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__); >> > > > -- > Sent by an employee of the Qualcomm Innovation Center, Inc. > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-02-21 6:38 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-02-10 10:49 [PATCH] ASoC: msm8x60: enhance mixer interfaces eero.nurkkala 2011-02-10 17:33 ` David Brown 2011-02-10 18:11 ` eero.nurkkala 2011-02-10 18:11 ` David Brown 2011-02-19 2:00 ` Patrick Lai 2011-02-21 6:58 ` eero.nurkkala
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).