aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-01-23 02:07:51 -0500
committerTakashi Iwai <tiwai@suse.de>2009-01-23 02:07:51 -0500
commit7907f6a411e005545d9047bd888215dbc60fc55e (patch)
treec5afea13872689839a38defb57e2f98f5d5e1a63
parentd9a4268ee92ba1a2355c892a3add1fa66856b510 (diff)
parent32ed3f4640631ab7a4c0bc0f1463cf019d510341 (diff)
Merge branch 'fix/hda' into topic/hda
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt1
-rw-r--r--sound/pci/hda/patch_sigmatel.c21
2 files changed, 14 insertions, 8 deletions
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index ef6b22e25412..c9df9db5835a 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -350,6 +350,7 @@ STAC92HD73*
350STAC92HD83* 350STAC92HD83*
351=========== 351===========
352 ref Reference board 352 ref Reference board
353 mic-ref Reference board with power managment for ports
353 354
354STAC9872 355STAC9872
355======== 356========
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index ed2fa431b03f..212d8c09a67b 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -82,6 +82,7 @@ enum {
82 82
83enum { 83enum {
84 STAC_92HD83XXX_REF, 84 STAC_92HD83XXX_REF,
85 STAC_92HD83XXX_PWR_REF,
85 STAC_92HD83XXX_MODELS 86 STAC_92HD83XXX_MODELS
86}; 87};
87 88
@@ -338,7 +339,7 @@ static hda_nid_t stac92hd83xxx_slave_dig_outs[2] = {
338}; 339};
339 340
340static unsigned int stac92hd83xxx_pwr_mapping[4] = { 341static unsigned int stac92hd83xxx_pwr_mapping[4] = {
341 0x03, 0x0c, 0x20, 0x80, 342 0x03, 0x0c, 0x20, 0x40,
342}; 343};
343 344
344static hda_nid_t stac92hd83xxx_amp_nids[1] = { 345static hda_nid_t stac92hd83xxx_amp_nids[1] = {
@@ -1740,10 +1741,12 @@ static unsigned int ref92hd83xxx_pin_configs[14] = {
1740 1741
1741static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = { 1742static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = {
1742 [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs, 1743 [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs,
1744 [STAC_92HD83XXX_PWR_REF] = ref92hd83xxx_pin_configs,
1743}; 1745};
1744 1746
1745static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = { 1747static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = {
1746 [STAC_92HD83XXX_REF] = "ref", 1748 [STAC_92HD83XXX_REF] = "ref",
1749 [STAC_92HD83XXX_PWR_REF] = "mic-ref",
1747}; 1750};
1748 1751
1749static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { 1752static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
@@ -4820,13 +4823,6 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
4820 AC_VERB_SET_CONNECT_SEL, num_dacs); 4823 AC_VERB_SET_CONNECT_SEL, num_dacs);
4821 4824
4822 spec->init = stac92hd83xxx_core_init; 4825 spec->init = stac92hd83xxx_core_init;
4823 switch (codec->vendor_id) {
4824 case 0x111d7605:
4825 break;
4826 default:
4827 spec->num_pwrs--;
4828 }
4829
4830 spec->mixer = stac92hd83xxx_mixer; 4826 spec->mixer = stac92hd83xxx_mixer;
4831 spec->num_pins = ARRAY_SIZE(stac92hd83xxx_pin_nids); 4827 spec->num_pins = ARRAY_SIZE(stac92hd83xxx_pin_nids);
4832 spec->num_dmuxes = ARRAY_SIZE(stac92hd83xxx_dmux_nids); 4828 spec->num_dmuxes = ARRAY_SIZE(stac92hd83xxx_dmux_nids);
@@ -4852,6 +4848,15 @@ again:
4852 return err; 4848 return err;
4853 } 4849 }
4854 4850
4851 switch (codec->vendor_id) {
4852 case 0x111d7604:
4853 case 0x111d7605:
4854 if (spec->board_config == STAC_92HD83XXX_PWR_REF)
4855 break;
4856 spec->num_pwrs = 0;
4857 break;
4858 }
4859
4855 err = stac92xx_parse_auto_config(codec, 0x1d, 0); 4860 err = stac92xx_parse_auto_config(codec, 0x1d, 0);
4856 if (!err) { 4861 if (!err) {
4857 if (spec->board_config < 0) { 4862 if (spec->board_config < 0) {