|
@@ -518,6 +518,13 @@ int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr,
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
+ if (! codec->subsystem_id) {
|
|
|
+ hda_nid_t nid = codec->afg ? codec->afg : codec->mfg;
|
|
|
+ codec->subsystem_id = snd_hda_codec_read(codec, nid, 0,
|
|
|
+ AC_VERB_GET_SUBSYSTEM_ID,
|
|
|
+ 0);
|
|
|
+ }
|
|
|
+
|
|
|
codec->preset = find_codec_preset(codec);
|
|
|
if (! *bus->card->mixername)
|
|
|
snd_hda_get_codec_name(codec, bus->card->mixername,
|