[alsa-devel] [PATCH] hda: STAC_HP_M4

Matthew Ranostay mranostay at embeddedalley.com
Thu Oct 9 14:37:28 CEST 2008


Set the third microphone to a default config of a 'Line In' to be added the Input Source Mux's.

Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
---

diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c
index b5c1449..5557116 100644
--- a/pci/hda/patch_sigmatel.c
+++ b/pci/hda/patch_sigmatel.c
@@ -3605,7 +3605,12 @@ static int stac92xx_init(struct hda_codec *codec)
 	for (i = 0; i < AUTO_PIN_LAST; i++) {
 		hda_nid_t nid = cfg->input_pins[i];
 		if (nid) {
-			unsigned int pinctl = AC_PINCTL_IN_EN;
+			unsigned int pinctl = snd_hda_codec_read(codec, nid,
+				0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
+			/* if PINCTL already set then skip */
+			if (pinctl & AC_PINCAP_IN)
+				continue;
+			pinctl = AC_PINCTL_IN_EN;
 			if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC)
 				pinctl |= stac92xx_get_vref(codec, nid);
 			stac92xx_auto_set_pinctl(codec, nid, pinctl);
@@ -4375,12 +4380,13 @@ again:
 	switch (spec->board_config) {
 	case STAC_HP_M4:
 		spec->num_dmics = 0;
-		spec->num_smuxes = 1;
+		spec->num_smuxes = 0;
 		spec->num_dmuxes = 0;

 		/* enable internal microphone */
-		snd_hda_codec_write_cache(codec, 0x0e, 0,
-			AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80);
+		stac92xx_set_config_reg(codec, 0x0e, 0x01813040);
+		stac92xx_auto_set_pinctl(codec, 0x0e,
+			AC_PINCTL_IN_EN | AC_PINCTL_VREF_80);
 		break;
 	default:
 		spec->num_dmics = STAC92HD71BXX_NUM_DMICS;


More information about the Alsa-devel mailing list