aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/sound/alsa/HD-Audio.txt3
-rw-r--r--sound/pci/hda/hda_codec.c10
-rw-r--r--sound/pci/hda/hda_intel.c4
3 files changed, 7 insertions, 10 deletions
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt
index ecacf53a865..232a9077522 100644
--- a/Documentation/sound/alsa/HD-Audio.txt
+++ b/Documentation/sound/alsa/HD-Audio.txt
@@ -597,6 +597,9 @@ probing, the proc file is available, so you can get the raw codec
information before modified by the driver. Of course, the driver
isn't usable with `probe_only=1`. But you can continue the
configuration via hwdep sysfs file if hda-reconfig option is enabled.
+Using `probe_only` mask 2 skips the reset of HDA codecs (use
+`probe_only=3` as module option). The hwdep interface can be used
+to determine the BIOS codec initialization.
hda-verb
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index cf6280bdaa1..0e76ac2b2ac 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -609,15 +609,11 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
}
EXPORT_SYMBOL_HDA(snd_hda_bus_new);
-#define is_hwio_config(codec) \
- (codec->modelname && !strcmp(codec->modelname, "hwio"))
#ifdef CONFIG_SND_HDA_GENERIC
#define is_generic_config(codec) \
- ((codec->modelname && !strcmp(codec->modelname, "generic")) || \
- is_hwio_config(codec))
+ (codec->modelname && !strcmp(codec->modelname, "generic"))
#else
-#define is_generic_config(codec) \
- is_hwio_config(codec)
+#define is_generic_config(codec) 0
#endif
#ifdef MODULE
@@ -1117,8 +1113,6 @@ int snd_hda_codec_configure(struct hda_codec *codec)
}
if (is_generic_config(codec)) {
- if (is_hwio_config(codec))
- goto patched;
err = snd_hda_parse_generic_codec(codec);
goto patched;
}
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 8d477613bcc..6ce673c17ff 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2577,7 +2577,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
/* initialize chip */
azx_init_pci(chip);
- azx_init_chip(chip, model[dev] == NULL || strcmp(model[dev], "hwio"));
+ azx_init_chip(chip, (probe_only[dev] & 2) == 0);
/* codec detection */
if (!chip->codec_mask) {
@@ -2666,7 +2666,7 @@ static int __devinit azx_probe(struct pci_dev *pci,
goto out_free;
}
#endif
- if (!probe_only[dev]) {
+ if ((probe_only[dev] & 1) == 0) {
err = azx_codec_configure(chip);
if (err < 0)
goto out_free;