summaryrefslogtreecommitdiffstats
path: root/sound/hda/hdac_device.c
diff options
context:
space:
mode:
authorDavid Henningsson <david.henningsson@canonical.com>2015-04-01 12:43:00 +0200
committerTakashi Iwai <tiwai@suse.de>2015-04-04 12:14:00 +0200
commitffda568e8b4979c6a04bbdd92acfd93b5dc5e163 (patch)
treecc347e669ec761e23635a731ba614344d473a0c1 /sound/hda/hdac_device.c
parentALSA: hda/via - Add beep controls to VIA codecs (diff)
downloadlinux-ffda568e8b4979c6a04bbdd92acfd93b5dc5e163.tar.xz
linux-ffda568e8b4979c6a04bbdd92acfd93b5dc5e163.zip
ALSA: hda - Fix subsystem ID read regression
A regression was introduced in 7639a06c23c7d4cda3: if AC_PAR_SUBSYSTEM_ID reads as zero, one should retry using AC_VERB_GET_SUBSYSTEM_ID. This seems to hit many codecs (my own laptop included), and causes quirks for some machines not to apply correctly. Reported-by: TienFu Chen <tienfu.chen@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/hda/hdac_device.c')
-rw-r--r--sound/hda/hdac_device.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c
index 6e8ee1d6974a..53b6b95ff8cd 100644
--- a/sound/hda/hdac_device.c
+++ b/sound/hda/hdac_device.c
@@ -91,7 +91,7 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus,
codec->power_caps = snd_hdac_read_parm(codec, fg, AC_PAR_POWER_STATE);
/* reread ssid if not set by parameter */
- if (codec->subsystem_id == -1)
+ if (codec->subsystem_id == -1 || codec->subsystem_id == 0)
snd_hdac_read(codec, fg, AC_VERB_GET_SUBSYSTEM_ID, 0,
&codec->subsystem_id);