Re: [PATCH v2 2/2] ASoC: wm8985: add support for WM8758

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20 May 2016 at 18:11, Charles Keepax
<ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, May 17, 2016 at 02:48:54PM +0200, Petr Kulhavy wrote:
>> The WM8758 chip is almost identical to WM8985 with the difference that it
>> doesn't feature the AUX input. This patch adds the WM8758 support into the
>> WM8985 driver.
>>
>> The chip selection is done by the I2C name. The SPI probe supports only
>> the WM8985.
>>
>> Signed-off-by: Petr Kulhavy <petr@xxxxxxxxx>
>> ---
>> +
>> +static int wm8985_add_widgets(struct snd_soc_codec *codec)
>> +{
>> +     struct wm8985_priv *wm8985 = snd_soc_codec_get_drvdata(codec);
>> +     struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
>> +
>> +     snd_soc_dapm_new_controls(dapm, wm8985_common_dapm_widgets,
>> +             ARRAY_SIZE(wm8985_common_dapm_widgets));
>> +     snd_soc_dapm_add_routes(dapm, wm8985_common_dapm_routes,
>> +             ARRAY_SIZE(wm8985_common_dapm_routes));
>> +
>> +     switch (wm8985->dev_type) {
>> +     case WM8758:
>> +             snd_soc_add_codec_controls(codec, wm8985_alc_snd_controls,
>> +                     ARRAY_SIZE(wm8985_alc_snd_controls));
>> +             snd_soc_add_codec_controls(codec, wm8985_adc_snd_controls,
>> +                     ARRAY_SIZE(wm8985_adc_snd_controls));
>> +             snd_soc_add_codec_controls(codec, wm8985_dac_snd_controls,
>> +                     ARRAY_SIZE(wm8985_dac_snd_controls));
>> +             snd_soc_add_codec_controls(codec, wm8985_eq_snd_controls,
>> +                     ARRAY_SIZE(wm8985_eq_snd_controls));
>> +             snd_soc_add_codec_controls(codec, wm8985_3d_snd_controls,
>> +                     ARRAY_SIZE(wm8985_3d_snd_controls));
>
> Why not just put all these in a common controls array? They seem
> to all be used on 8985 as well.

In general I agree with you. But doesn't the order in which
snd_soc_add_codec_controls() is called affect the order in which the
controls appear in the mixer?
I have split the controls in order to preserve the original order of
the controls.

>>  err_reg_enable:
>> @@ -1047,13 +1164,6 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8985 = {
>>       .probe = wm8985_probe,
>>       .set_bias_level = wm8985_set_bias_level,
>>       .suspend_bias_off = true,
>> -
>> -     .controls = wm8985_snd_controls,
>> -     .num_controls = ARRAY_SIZE(wm8985_snd_controls),
>> -     .dapm_widgets = wm8985_dapm_widgets,
>> -     .num_dapm_widgets = ARRAY_SIZE(wm8985_dapm_widgets),
>> -     .dapm_routes = wm8985_dapm_routes,
>> -     .num_dapm_routes = ARRAY_SIZE(wm8985_dapm_routes),
>
> I think you should still be able to use these for the common
> functionality.

All these are set by wm8985_add_widgets() now.
Or maybe I didn't quite get what you mean?

Thanks
Petr
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux