[alsa-devel] [PATCH 4/5] ALSA: hda - drop def association and sequence from pinconf comparing

Hui Wang hui.wang at canonical.com
Tue May 27 08:40:41 CEST 2014


On 05/27/2014 12:41 PM, David Henningsson wrote:
>
>
> On 2014-05-27 04:25, Alex Hung wrote:
>> Hi David,
>>
>> BIOS today implements verbtable which is provided by codec vendor
>> based on hardware design, and it is indeed not uncommon that the
>> verbtable includes used pin only and leaves unused pins untouched.
>
> Sure, but those unused pins would then have the same default value 
> that the codec initializes it with.
>
> Also, it wouldn't be uncommon for BIOS (or codec vendors) to use the 
> same verbtable for several machines if they share the same audio 
> hardware.
>
> But none of this explains why anyone would just change def association 
> and sequence value between machines? It makes no sense.

So far, I met one example for this case:

the Dell laptops with the same 0x10ec0255 codec,

On some machines:
pin 0x12, 0x90a60170
pin 0x14, 0x90170120
pin 0x21, 0x02211030

On another machine:
pin 0x12, 0x90a60140
pin 0x14, 0x90170110
pin 0x21, 0x02211020


The def config of the rest pins are same.


Regards,
Hui.
>
>>
>> On Mon, May 26, 2014 at 6:11 PM, David Henningsson
>> <david.henningsson at canonical.com> wrote:
>>> (Add Alex Hung to CC)
>>>
>>> On 2014-05-26 10:22, Hui Wang wrote:
>>>>
>>>> A lot a machine have the same codec, but they have different default
>>>> pinconf setting just because the def association and sequence is
>>>> different, as a result they can't share a hda_pintbl[], to overcome
>>>> it, we don't compare def association and sequence in the pinconf
>>>> matching.
>>>
>>>
>>> Uhm, really? Alex, does this seem reasonable from a BIOS 
>>> perspective, i e,
>>> that BIOS people normally would set def association and sequence 
>>> different
>>> while leaving everything else unchanged?
>>>
>>>>
>>>> Signed-off-by: Hui Wang <hui.wang at canonical.com>
>>>> ---
>>>>    sound/pci/hda/hda_auto_parser.c | 3 ++-
>>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/sound/pci/hda/hda_auto_parser.c
>>>> b/sound/pci/hda/hda_auto_parser.c
>>>> index b684c6e..3cf9137 100644
>>>> --- a/sound/pci/hda/hda_auto_parser.c
>>>> +++ b/sound/pci/hda/hda_auto_parser.c
>>>> @@ -844,7 +844,8 @@ static bool pin_config_match(struct hda_codec 
>>>> *codec,
>>>>    {
>>>>          for (; pins->nid; pins++) {
>>>>                  u32 def_conf = snd_hda_codec_get_pincfg(codec, 
>>>> pins->nid);
>>>> -               if (pins->val != def_conf)
>>>> +               u32 mask = 0xffffff00;
>>>> +               if ((pins->val & mask) != (def_conf & mask))
>>>>                          return false;
>>>>          }
>>>>          return true;
>>>>
>>>
>>> -- 
>>> David Henningsson, Canonical Ltd.
>>> https://launchpad.net/~diwic
>>
>>
>>
>



More information about the Alsa-devel mailing list