[alsa-devel] [PATCH] ALSA: hda - Add multifunction jack support for ALC255

David Henningsson david.henningsson at canonical.com
Fri Nov 8 11:10:48 CET 2013


On 11/08/2013 09:19 AM, Kailang wrote:
> Hi David,
> 
> I modified as attach patch.
> It included coef_idx to use coefex_idx.
> 
> BR,
> Kailang

Thanks!

@Takashi, does this new patch look good enough for you?

> 
> 
>> Hi Kailang,
>>
>> It does not matter. Choose what works best for you and I'll sort it out
>> before sending to Takashi.
>>
>> // David
>>
>> On 11/08/2013 06:48 AM, Kailang wrote:
>>> Hi David,
>>>
>>> Could I add commemts for belowing context?
>>> Or I create new patch for it.
>>>
>>> BR,
>>> Kailang
>>>
>>>> Hi,
>>>>
>>>> I can certainly rewrite coef_idx to use coefef_idx (I think that's a
>>>> good idea), but for the comments, I know as little as you do about
>>>> these
>>>> verbs.
>>>>
>>>> Kailang, is it possible for you to add more comments to your patch
>>>> so it
>>>> can be applied upstream?
>>>>
>>>> Thanks,
>>>>  David
>>>>
>>>> On 11/07/2013 02:22 PM, Takashi Iwai wrote:
>>>>> At Thu,  7 Nov 2013 14:08:41 +0100,
>>>>> David Henningsson wrote:
>>>>>>
>>>>>> From: Kailang Yang <kailang at realtek.com>
>>>>>>
>>>>>> The new codec ALC255 needs its own set of verbs to enable
>>>>>> multifunction jacks.
>>>>>>
>>>>>> (Context and whitespace adjustments by David Henningsson)
>>>>>>
>>>>>> BugLink: https://bugs.launchpad.net/bugs/1248949
>>>>>> Tested-by: Doro Wu <doro.wu at canonical.com>
>>>>>> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
>>>>>> ---
>>>>>>  sound/pci/hda/patch_realtek.c |   91
>>>>>> +++++++++++++++++++++++++++++++++++++++++
>>>>>>  1 file changed, 91 insertions(+)
>>>>>>
>>>>>> diff --git a/sound/pci/hda/patch_realtek.c
>>>>>> b/sound/pci/hda/patch_realtek.c
>>>>>> index daf7205..ceadd65 100644
>>>>>> --- a/sound/pci/hda/patch_realtek.c
>>>>>> +++ b/sound/pci/hda/patch_realtek.c
>>>>>> @@ -588,6 +588,18 @@ static int alc_read_coef_idx(struct hda_codec
>>>>>> *codec,
>>>>>>  return val;
>>>>>>  }
>>>>>>
>>>>>> +static int alc_read_coefex_idx(struct hda_codec *codec,
>>>>>> + hda_nid_t nid,
>>>>>> + unsigned int coef_idx)
>>>>>> +{
>>>>>> + unsigned int val;
>>>>>> + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_COEF_INDEX,
>>>>>> +     coef_idx);
>>>>>> + val = snd_hda_codec_read(codec, nid, 0,
>>>>>> + AC_VERB_GET_PROC_COEF, 0);
>>>>>> + return val;
>>>>>> +}
>>>>>
>>>>> Rewrite alc_read_coef_idx() using this new function, too, e.g.
>>>>>
>>>>> #define alc_write_coef_idx(codec, idx, val) \
>>>>> alc_read_coefex_idx(codec, 0x20, idx, val)
>>>>>
>>>>>>  static void alc_write_coef_idx(struct hda_codec *codec, unsigned
>>>>>> int coef_idx,
>>>>>>  unsigned int coef_val)
>>>>>>  {
>>>>>> @@ -597,6 +609,15 @@ static void alc_write_coef_idx(struct hda_codec
>>>>>> *codec, unsigned int coef_idx,
>>>>>>      coef_val);
>>>>>>  }
>>>>>>
>>>>>> +static void alc_write_coefex_idx(struct hda_codec *codec, hda_nid_t
>>>>>> nid,
>>>>>> + unsigned int coef_idx, unsigned int coef_val)
>>>>>> +{
>>>>>> + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_COEF_INDEX,
>>>>>> +     coef_idx);
>>>>>> + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PROC_COEF,
>>>>>> +     coef_val);
>>>>>> +}
>>>>>
>>>>> Ditto.
>>>>>
>>>>>> +
>>>>>>  /* a special bypass for COEF 0; read the cached value at the second
>>>>>> time */
>>>>>>  static unsigned int alc_get_coef0(struct hda_codec *codec)
>>>>>>  {
>>>>>> @@ -3109,6 +3130,14 @@ static void alc_headset_mode_unplugged(struct
>>>>>> hda_codec *codec)
>>>>>>  int val;
>>>>>>
>>>>>>  switch (codec->vendor_id) {
>>>>>> + case 0x10ec0255:
>>>>>> + alc_write_coef_idx(codec, 0x1b, 0x0c0b);
>>>>>> + alc_write_coef_idx(codec, 0x45, 0xd089);
>>>>>> + val = alc_read_coefex_idx(codec, 0x57, 0x05);
>>>>>> + alc_write_coefex_idx(codec, 0x57, 0x05, val & ~(1<<14));
>>>>>> + alc_write_coef_idx(codec, 0x06, 0x6104);
>>>>>> + alc_write_coefex_idx(codec, 0x57, 0x03, 0x8aa6);
>>>>>
>>>>> Try to comment what these actually do.  Not necessarily too detailed,
>>>>> but we need to have some ideas.
>>>>>
>>>>> I regret to have merged the former Realtek headset patches that have
>>>>> lots of such verbs without certain comments.
>>>>>
>>>>>
>>>>> thanks,
>>>>>
>>>>> Takashi
>>>>>
>>>>
>>>>
>>>>
>>>> -- 
>>>> David Henningsson, Canonical Ltd.
>>>> https://launchpad.net/~diwic
>>>>
>>>> ------Please consider the environment before printing this e-mail.
>>>
>>
>>
>>
>> -- 
>> David Henningsson, Canonical Ltd.
>> https://launchpad.net/~diwic 



-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the Alsa-devel mailing list