[alsa-devel] [PATCH V2 1/5] sound: asoc: Adding support for STA529 Audio Codec
rajeev
rajeev-dlh.kumar at st.com
Fri Apr 8 07:39:09 CEST 2011
Hi Mark
Please find my answer inlined
On 3/30/2011 4:57 AM, Mark Brown wrote:
> On Tue, Mar 29, 2011 at 04:46:59PM +0530, Rajeev Kumar wrote:
>
>> +static const struct snd_kcontrol_new sta529_snd_controls[] = {
>> + SOC_SINGLE("Master Playback Volume", STA529_MVOL, 0, 127, 1),
>> + SOC_SINGLE("Left Playback Volume", STA529_LVOL, 0, 127, 1),
>> + SOC_SINGLE("Right Playback Volume", STA529_RVOL, 0, 127, 1),
>> +};
>
> Left and Right should be a single stereo control (usually done with
> SOC_DOUBLE). It'd also be better to provide gain information with the
> _TLV variants of the controls.
>
ok
> Does the master control actually provide a separate control or does it
> update both left and right channels simultaneously? If the latter then
> normally you'd just omit it from the driver as the driver can easily do
> the stereo updates?
master control provide a separate control.
>
>> + val = snd_soc_read(codec, STA529_S2PCFG0);
>> + val |= mode;
>> + /*this setting will be used with actual h/w */
>> + snd_soc_write(codec, STA529_S2PCFG0, val);
>
> snd_soc_update_bits() - you're not clearing any bits here so if you
> change modes things will go wrong.
OK
>
>> + case SND_SOC_BIAS_STANDBY:
>> + case SND_SOC_BIAS_OFF:
>> + snd_soc_update_bits(codec, STA529_FFXCFG0, POWER_CNTLMSAK,
>> + POWER_STDBY);
>> + snd_soc_update_bits(codec, STA529_FFXCFG0, MUTE_ON_MASK,
>> + MUTE_OFF);
>
> Managing the mute in these states seems odd - could do with some
> comments in the code if nothing else.
>
OK,Macro name in in-correct.
>> +static void sta529_init(struct snd_soc_codec *codec)
>> +{
>> + /* DAC default master volume */
>> + snd_soc_write(codec, STA529_MVOL, DEFAULT_MASTER_VOL);
>> + /* DAC default left volume */
>> + snd_soc_write(codec, STA529_LVOL, DEFAULT_VOL);
>> + /* DAC default right volume */
>> + snd_soc_write(codec, STA529_RVOL, DEFAULT_VOL);
>> + /* By default route to binary headphones */
>> + snd_soc_write(codec, STA529_FFXCFG1, DEFAULT_BIN_HEADPHONE);
>> + /* default value for Serial-to-parallel audio interface configuration */
>
>> + /* select microphone input by default*/
>> + snd_soc_write(codec, STA529_ADCCFG, DEFAULT_MIC_SEL);
>
> None of the above should be configured here, leave them at the default
> values (and offer them as runtime controls if they're not there
> already). The settings appropriate for one machine may not be
> appropriate for another.
>
Ok
>> +static int sta529_resume(struct snd_soc_codec *codec)
>> +{
>> +
>> + sta529_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
>> + sta529_set_bias_level(codec, codec->suspend_bias_level);
>> + return 0;
>> +}
>
> I'd expect this to restore the register cache somewhere.
>
Ok
>> +MODULE_DESCRIPTION("ASoC STA529 codec driver");
>> +MODULE_AUTHOR("Rajeev Kumar <rajeev-dlh.kumar at st.com>");
>> +MODULE_LICENSE("GPL");
>> +MODULE_ALIAS("platform:sta529-codec");
>
> This isn't a platform driver, remove the MODULE_ALIAS.
> .
Ooops,
>
Best Regards
Rajeev
More information about the Alsa-devel
mailing list