diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-01-23 02:07:51 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-01-23 02:07:51 -0500 |
commit | 7907f6a411e005545d9047bd888215dbc60fc55e (patch) | |
tree | c5afea13872689839a38defb57e2f98f5d5e1a63 | |
parent | d9a4268ee92ba1a2355c892a3add1fa66856b510 (diff) | |
parent | 32ed3f4640631ab7a4c0bc0f1463cf019d510341 (diff) |
Merge branch 'fix/hda' into topic/hda
-rw-r--r-- | Documentation/sound/alsa/HD-Audio-Models.txt | 1 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 21 |
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 ef6b22e2541..c9df9db5835 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -350,6 +350,7 @@ STAC92HD73* | |||
350 | STAC92HD83* | 350 | STAC92HD83* |
351 | =========== | 351 | =========== |
352 | ref Reference board | 352 | ref Reference board |
353 | mic-ref Reference board with power managment for ports | ||
353 | 354 | ||
354 | STAC9872 | 355 | STAC9872 |
355 | ======== | 356 | ======== |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index ed2fa431b03..212d8c09a67 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -82,6 +82,7 @@ enum { | |||
82 | 82 | ||
83 | enum { | 83 | enum { |
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 | ||
340 | static unsigned int stac92hd83xxx_pwr_mapping[4] = { | 341 | static unsigned int stac92hd83xxx_pwr_mapping[4] = { |
341 | 0x03, 0x0c, 0x20, 0x80, | 342 | 0x03, 0x0c, 0x20, 0x40, |
342 | }; | 343 | }; |
343 | 344 | ||
344 | static hda_nid_t stac92hd83xxx_amp_nids[1] = { | 345 | static hda_nid_t stac92hd83xxx_amp_nids[1] = { |
@@ -1740,10 +1741,12 @@ static unsigned int ref92hd83xxx_pin_configs[14] = { | |||
1740 | 1741 | ||
1741 | static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = { | 1742 | static 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 | ||
1745 | static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = { | 1747 | static 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 | ||
1749 | static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { | 1752 | static 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) { |