[alsa-devel] Audio codec volume control

Peter Ujfalusi peter.ujfalusi at ti.com
Thu Sep 20 12:46:57 CEST 2012


On 09/20/2012 01:39 PM, Rajeev kumar wrote:
> Hello Peter,
> 
> On 9/20/2012 3:49 PM, Peter Ujfalusi wrote:
> Thanks for the info.
> 
> Please find below the controls I have provided
> 
> static const char *pwm_mode_text[] = { "Binary", "Headphone", "Ternary",
>         "Phase-shift"};
> 
> static const DECLARE_TLV_DB_SCALE(out_gain_tlv, -9150, 50, 0);
> static const DECLARE_TLV_DB_SCALE(master_vol_tlv, -12750, 50, 0);
> static const SOC_ENUM_SINGLE_DECL(pwm_src, STA529_FFXCFG1, 4, pwm_mode_text);
> 
> static const struct snd_kcontrol_new sta529_snd_controls[] = {
>         SOC_DOUBLE_R_TLV("Digital Playback Volume", STA529_LVOL, STA529_RVOL, 0,
>                         127, 0, out_gain_tlv),
>         SOC_SINGLE_TLV("Master Playback Volume", STA529_MVOL, 0, 127, 1,
>                         master_vol_tlv),
>         SOC_ENUM("PWM Select", pwm_src),
> };
> 
> So in our amixer output I am not getting any separate numid for left/right
> volume, so that user can control it.

You should have single numid for the stereo control:
amixer sget Digital

amixer sget Master

You should see something like this with the stereo control:

beagle-gentoo dapm # amixer sget Headset
Simple mixer control 'Headset',0
  Capabilities: pvolume penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 3
  Mono:
  Front Left: Playback 2 [67%] [0.00dB]
  Front Right: Playback 2 [67%] [0.00dB]

> 
> Is there something I am missing in my code.

Looks fine for me.

-- 
Péter


More information about the Alsa-devel mailing list