[alsa-devel] [PATCH] ALSA: hda - Add multifunction jack support for ALC255
Kailang
kailang at realtek.com
Fri Nov 8 09:19:22 CET 2013
Hi David,
I modified as attach patch.
It included coef_idx to use coefex_idx.
BR,
Kailang
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-alc255-uaj.patch
Type: application/octet-stream
Size: 7776 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20131108/32b872cb/attachment-0001.obj>
More information about the Alsa-devel
mailing list