Commit a33b7b0a authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Check bit mask for codec SSID in snd_hda_pick_fixup()

snd_hda_pick_fixup() didn't check the case where the device mask bits
are set, typically used for SND_PCI_QUIRK_VENDOR() entries.  Fix this.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 915bf29e
...@@ -735,7 +735,8 @@ void snd_hda_pick_fixup(struct hda_codec *codec, ...@@ -735,7 +735,8 @@ void snd_hda_pick_fixup(struct hda_codec *codec,
for (q = quirk; q->subvendor; q++) { for (q = quirk; q->subvendor; q++) {
unsigned int vendorid = unsigned int vendorid =
q->subdevice | (q->subvendor << 16); q->subdevice | (q->subvendor << 16);
if (vendorid == codec->subsystem_id) { unsigned int mask = 0xffff0000 | q->subdevice_mask;
if ((codec->subsystem_id & mask) == (vendorid & mask)) {
id = q->value; id = q->value;
#ifdef CONFIG_SND_DEBUG_VERBOSE #ifdef CONFIG_SND_DEBUG_VERBOSE
name = q->name; name = q->name;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment