[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