Hello Peter,
On 9/20/2012 3:49 PM, Peter Ujfalusi wrote:
On 09/20/2012 01:08 PM, Rajeev kumar wrote:
case 3:
- Provide master volume control
- stereo volume control for the left/right channel
You mean to say Left and Right should be a single stereo control which can be provided with SOC_DOUBLE. Actually case 2 corresponds to the same setting which you are suggesting.
But why this is better option?
You have less controls for the codec -> easier for users. Users still can adjust the left/right differently if they want.
In case user wants a separate left/right volume control then how this setting is going to help.
In most cases you change both left/right channel: amixer sset 'PCM' 8 # left/right volume is 8
but users can set different volume per channel: amixer sset 'PCM' 8,1 # left volume is 8, right is 1
it is better than: amixer sset 'PCM Left' 8 # left volume is 8 amixer sset 'PCM Right' 8 # left volume is 8
or amixer sset 'PCM Left' 8 # left volume is 8 amixer sset 'PCM Right' 1 # left volume is 1
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.
Is there something I am missing in my code.
Best Regards Rajeev