[alsa-devel] [PATCH v2] Introduce config for intel dg45id board

Alexey Fisher bug-track at fisher-privat.net
Sun Dec 6 11:29:13 CET 2009


This patch introduce pin config and some workarounds for dg45id board.
Currently tested Mic + Surround 7.1 on rear panel, and Mic + HP on front panel.
SPDIF front and SPDIF rear are untested.
Both Mics provide VREF_80 (4,05 V) in mic mode and no VREF in line-in mode.

Signed-off-by: Alexey Fisher <bug-track at fisher-privat.net>

modified:   sound/pci/hda/patch_sigmatel.c
---
 sound/pci/hda/patch_sigmatel.c |   53 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 52 insertions(+), 1 deletions(-)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 6b0bc04..e604bae 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -860,6 +860,37 @@ static struct hda_verb dell_eq_core_init[] = {
 	{}
 };
 
+static struct hda_verb intel_dg45id_init[] = {
+	/* connect all inputs to the mixer */
+	/* 0x0b -> mixer */
+	{ 0x28, AC_VERB_SET_CONNECT_SEL, 0x01},
+	/* 0x0e -> mixer */
+	{ 0x29, AC_VERB_SET_CONNECT_SEL, 0x01},
+	/* FIXME: if sorround51 0x0c can be used for line-in
+	 * currently do not working */
+	{ 0x2a, AC_VERB_SET_CONNECT_SEL, 0x01},
+
+	/* connect mixer to the switch */
+	{ 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+
+	/* unmute inputs on mixer */
+	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0x7017},
+	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0x7117},
+	/* TODO: make option for 0x0c to be line-in
+	 * { 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0x7217}, */
+
+	/* extra check all DACs */
+	/* 0x18 -> 0x0c */
+	{ 0x0c, AC_VERB_SET_CONNECT_SEL, 0x03},
+	/* 0x15 -> 0x0d */
+	{ 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
+	/* 0x16 -> 0x0f */
+	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x02},
+	/* 0x17 -> 0x10 */
+	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x01},
+	{}
+};
+
 static struct hda_verb stac92hd73xx_core_init[] = {
 	/* set master volume and direct control */
 	{ 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
@@ -1531,6 +1562,19 @@ static unsigned int dell_m6_pin_configs[13] = {
 	0x4f0000f0,
 };
 
+/* TODO: _config[1] (PIN 0x0a) still do not working (Front panel speaker/hp),
+ * $.ini provide some variants of this pin: 0x02214230, 0x0221421F, 0x0211421F.
+ * Def. and Seq. should make difference.
+ * Same for _config[4] (0x0d): wariants 0x01114210, 0x0121421f -should be
+ * some hove in sync with 0x0a? _config[3] (0x0c) can be switched to line-in
+ * wariant 0x0181325e. */
+static unsigned int intel_dg45id_pin_configs[14] = {
+	0x02214230, 0x02A19240, 0x01113214, 0x01114210,
+	0x01A19250, 0x01111212, 0x01116211, 0x40f000f0,
+	0x40f000f0, 0x40f000f0, 0x40f000f0, 0x014510A0,
+	0x074510B0, 0x40f000f0
+};
+
 static unsigned int alienware_m17x_pin_configs[13] = {
 	0x0321101f, 0x0321101f, 0x03a11020, 0x03014020,
 	0x90170110, 0x4f0000f0, 0x4f0000f0, 0x4f0000f0,
@@ -1544,6 +1588,7 @@ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
 	[STAC_DELL_M6_DMIC]	= dell_m6_pin_configs,
 	[STAC_DELL_M6_BOTH]	= dell_m6_pin_configs,
 	[STAC_DELL_EQ]	= dell_m6_pin_configs,
+	[STAC_92HD73XX_INTEL]	= intel_dg45id_pin_configs,
 	[STAC_ALIENWARE_M17X]	= alienware_m17x_pin_configs,
 };
 
@@ -5127,6 +5172,11 @@ again:
 			break;
 		}
 		break;
+	case STAC_92HD73XX_INTEL:
+		spec->init = intel_dg45id_init;
+		spec->num_dmics = STAC92HD73XX_NUM_DMICS;
+		spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
+		break;
 	case STAC_ALIENWARE_M17X:
 		spec->num_dmics = STAC92HD73XX_NUM_DMICS;
 		spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
@@ -5164,7 +5214,8 @@ again:
 		return err;
 	}
 
-	if (spec->board_config == STAC_92HD73XX_NO_JD)
+	if (spec->board_config == STAC_92HD73XX_NO_JD ||
+		spec->board_config == STAC_92HD73XX_INTEL)
 		spec->hp_detect = 0;
 
 	codec->patch_ops = stac92xx_patch_ops;
-- 
1.6.3.3



More information about the Alsa-devel mailing list