summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-10-31 17:16:31 +0100
committerTakashi Iwai <tiwai@suse.de>2008-10-31 17:23:24 +0100
commitee956e090e114ede6542c76a7465ed6ce118ad52 (patch)
treebb6f2670bad62898e3c59279c6d8bfc76f6508ff
parent4605b718e8b8f0dd3d811ddf90f630fd0835b7bf (diff)
downloadlinux-ee956e090e114ede6542c76a7465ed6ce118ad52.tar.gz
linux-ee956e090e114ede6542c76a7465ed6ce118ad52.tar.bz2
linux-ee956e090e114ede6542c76a7465ed6ce118ad52.zip
ALSA: hda - Add digital-mic for ALC269 auto-probe mode
The digital mic wasn't detected properly for ALC269 auto-probing mode because of its widget number. Fixed now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_realtek.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index a80d57cbc352..d327a371595c 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -12244,8 +12244,26 @@ static int alc269_auto_create_multi_out_ctls(struct alc_spec *spec,
return 0;
}
-#define alc269_auto_create_analog_input_ctls \
- alc880_auto_create_analog_input_ctls
+static int alc269_auto_create_analog_input_ctls(struct alc_spec *spec,
+ const struct auto_pin_cfg *cfg)
+{
+ int err;
+
+ err = alc880_auto_create_analog_input_ctls(spec, cfg);
+ if (err < 0)
+ return err;
+ /* digital-mic input pin is excluded in alc880_auto_create..()
+ * because it's under 0x18
+ */
+ if (cfg->input_pins[AUTO_PIN_MIC] == 0x12 ||
+ cfg->input_pins[AUTO_PIN_FRONT_MIC] == 0x12) {
+ struct hda_input_mux *imux = &spec->private_imux;
+ imux->items[imux->num_items].label = "Int Mic";
+ imux->items[imux->num_items].index = 0x05;
+ imux->num_items++;
+ }
+ return 0;
+}
#ifdef CONFIG_SND_HDA_POWER_SAVE
#define alc269_loopbacks alc880_loopbacks