[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