[alsa-devel] [PATCH V4 1/5] sound: asoc: Adding support for STA529 Audio Codec
rajeev
rajeev-dlh.kumar at st.com
Tue Jun 7 08:08:23 CEST 2011
Hi Mark
On 6/6/2011 5:25 PM, Mark Brown wrote:
> On Mon, Jun 06, 2011 at 11:27:32AM +0530, Rajeev Kumar wrote:
>> This patch adds the support for STA529 audio codec.
>> Details of the audio codec can be seen here:
>> http://www.st.com/internet/imag_video/product/159187.jsp
>
> As I'm fairly sure I've said before please do try to use subject lines
> for your patches which are consistent with the style for the subsystem
> you're submitting against.
>
Ok,do You mean like,
ASoC: Add STA529 codec support
>> +struct sta529 {
>> + unsigned int sysclk;
>> + enum snd_soc_control_type control_type;
>> + void *control_data;
>
> why do you need the control_data here? You also don't need to pass the
> control_type if the device is I2C only.
>
Will be removed
>> +static const struct snd_kcontrol_new sta529_new_snd_controls[] = {
>> + SOC_ENUM("PWM Select", pwm_src_enum),
>> + SOC_ENUM("MODE Select", mode_src_enum),
>
> MODE especially should be configured by _dai_fmt().
>
OK
>> +static int sta529_mute(struct snd_soc_dai *dai, int mute)
>> +{
>> + struct snd_soc_codec *codec = dai->codec;
>> +
>> + u8 mute_reg = snd_soc_read(codec, STA529_FFXCFG0) & ~CODEC_MUTE_VAL;
>> +
>> + if (mute)
>> + mute_reg |= CODEC_MUTE_VAL;
>> +
>> + snd_soc_update_bits(codec, STA529_FFXCFG0, 0x80, 00);
>
> This update completely ignores the check you've made above...
It should be mute_reg instead of 00
>
>> + /*
>> + * store the label for powers down audio subsystem for suspend.This is
>> + * used by soc core layer
>> + */
>
> You want a space after the period here.
>
OK
>> +static struct snd_soc_dai_driver sta529_dai = {
>> + .name = "sta529-audio",
>
> Does the chip have non-audio funtionality?
>
No, you mean name to be changed to sta529.
>> + snd_soc_add_controls(codec, sta529_snd_controls,
>> + ARRAY_SIZE(sta529_snd_controls));
>> +
>> + snd_soc_add_controls(codec, sta529_new_snd_controls,
>> + ARRAY_SIZE(sta529_new_snd_controls));
>
> Like Lars-Peter said use data based init here.
>
ok
>> +static int sta529_resume(struct snd_soc_codec *codec)
>> +{
>> + snd_soc_cache_sync(codec);
>> + sta529_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
>> + sta529_set_bias_level(codec, codec->dapm.suspend_bias_level);
>
> The second set_bias_level() should be redundant - we'll always have been
> shut down by the core before we get to suspending.
>
sta529_set_bias_level(codec, codec->dapm.suspend_bias_level) is not required
>> +static int __init sta529_modinit(void)
>> +{
>> + int ret = 0;
>> +
>> + ret = i2c_add_driver(&sta529_i2c_driver);
>> + if (ret != 0)
>> + printk(KERN_ERR "Failed to reg sta529 I2C driver: %d\n", ret);
>
> Error out if we can't load; ignoring the error only makes sense if we
> have multiple bus types and another might have succeeded.
> .
>
Sorry I have not got the point.
Best Rgds
Rajeev
More information about the Alsa-devel
mailing list