ALSA: hda - ignore the assoc and seq when comparing pin configurations
authorHui Wang <hui.wang@canonical.com>
Wed, 23 Nov 2016 08:05:37 +0000 (16:05 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 24 Nov 2016 10:37:34 +0000 (11:37 +0100)
More and more pin configurations have been adding to the pin quirk
table, lots of them are only different from assoc and seq, but they
all apply to the same QUIRK_FIXUP, if we don't compare assoc and seq
when matching pin configurations, it will greatly reduce the pin
quirk table size.

We have tested this change on a couple of Dell laptops, it worked
well.

Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_auto_parser.c

index 7f57a145a47e1fe8b5a949511fdfa99c9c55c221..4ad29f8d7a4a152166df39e4f56daedd61ae2a8b 100644 (file)
@@ -901,7 +901,7 @@ static bool pin_config_match(struct hda_codec *codec,
                for (; t_pins->nid; t_pins++) {
                        if (t_pins->nid == nid) {
                                found = 1;
-                               if (t_pins->val == cfg)
+                               if ((t_pins->val & 0xfffffff0) == (cfg & 0xfffffff0))
                                        break;
                                else if ((cfg & 0xf0000000) == 0x40000000 && (t_pins->val & 0xf0000000) == 0x40000000)
                                        break;