diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-02-16 12:17:58 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-03-22 04:29:53 -0500 |
commit | 111d3af5f5fbf0e28570f1c01e83444d73c68a25 (patch) | |
tree | 4679b8c2336c475016cd19c81263df0347741684 /sound/pci/hda/hda_codec.c | |
parent | 353b9e667042d6faa15a41df022bf38c949a7b2f (diff) |
[ALSA] hda-intel - Automatic correction to single_cmd mode
Modules: HDA Codec driver,HDA Intel driver
Switch to single_cmd mode automatically as a fallback when CORB/RIRB
communication doesn't work well. It may make the driver working on
some devices with broken BIOS/ACPI support.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 208a3341ec20..0d1566a39965 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -531,6 +531,12 @@ int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr, | |||
531 | bus->caddr_tbl[codec_addr] = codec; | 531 | bus->caddr_tbl[codec_addr] = codec; |
532 | 532 | ||
533 | codec->vendor_id = snd_hda_param_read(codec, AC_NODE_ROOT, AC_PAR_VENDOR_ID); | 533 | codec->vendor_id = snd_hda_param_read(codec, AC_NODE_ROOT, AC_PAR_VENDOR_ID); |
534 | if (codec->vendor_id == -1) | ||
535 | /* read again, hopefully the access method was corrected | ||
536 | * in the last read... | ||
537 | */ | ||
538 | codec->vendor_id = snd_hda_param_read(codec, AC_NODE_ROOT, | ||
539 | AC_PAR_VENDOR_ID); | ||
534 | codec->subsystem_id = snd_hda_param_read(codec, AC_NODE_ROOT, AC_PAR_SUBSYSTEM_ID); | 540 | codec->subsystem_id = snd_hda_param_read(codec, AC_NODE_ROOT, AC_PAR_SUBSYSTEM_ID); |
535 | codec->revision_id = snd_hda_param_read(codec, AC_NODE_ROOT, AC_PAR_REV_ID); | 541 | codec->revision_id = snd_hda_param_read(codec, AC_NODE_ROOT, AC_PAR_REV_ID); |
536 | 542 | ||