diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 4343d5fe5f72..9744ae31dc73 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -80,6 +80,7 @@ enum { | |||
80 | STAC_92HD71BXX_REF, | 80 | STAC_92HD71BXX_REF, |
81 | STAC_DELL_M4_1, | 81 | STAC_DELL_M4_1, |
82 | STAC_DELL_M4_2, | 82 | STAC_DELL_M4_2, |
83 | STAC_HP_M4, | ||
83 | STAC_92HD71BXX_MODELS | 84 | STAC_92HD71BXX_MODELS |
84 | }; | 85 | }; |
85 | 86 | ||
@@ -1527,12 +1528,14 @@ static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = { | |||
1527 | [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs, | 1528 | [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs, |
1528 | [STAC_DELL_M4_1] = dell_m4_1_pin_configs, | 1529 | [STAC_DELL_M4_1] = dell_m4_1_pin_configs, |
1529 | [STAC_DELL_M4_2] = dell_m4_2_pin_configs, | 1530 | [STAC_DELL_M4_2] = dell_m4_2_pin_configs, |
1531 | [STAC_HP_M4] = NULL, | ||
1530 | }; | 1532 | }; |
1531 | 1533 | ||
1532 | static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = { | 1534 | static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = { |
1533 | [STAC_92HD71BXX_REF] = "ref", | 1535 | [STAC_92HD71BXX_REF] = "ref", |
1534 | [STAC_DELL_M4_1] = "dell-m4-1", | 1536 | [STAC_DELL_M4_1] = "dell-m4-1", |
1535 | [STAC_DELL_M4_2] = "dell-m4-2", | 1537 | [STAC_DELL_M4_2] = "dell-m4-2", |
1538 | [STAC_HP_M4] = "hp-m4", | ||
1536 | }; | 1539 | }; |
1537 | 1540 | ||
1538 | static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { | 1541 | static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { |
@@ -4204,10 +4207,24 @@ again: | |||
4204 | 4207 | ||
4205 | spec->num_muxes = ARRAY_SIZE(stac92hd71bxx_mux_nids); | 4208 | spec->num_muxes = ARRAY_SIZE(stac92hd71bxx_mux_nids); |
4206 | spec->num_adcs = ARRAY_SIZE(stac92hd71bxx_adc_nids); | 4209 | spec->num_adcs = ARRAY_SIZE(stac92hd71bxx_adc_nids); |
4207 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; | ||
4208 | spec->num_smuxes = ARRAY_SIZE(stac92hd71bxx_smux_nids); | ||
4209 | spec->num_dmuxes = ARRAY_SIZE(stac92hd71bxx_dmux_nids); | 4210 | spec->num_dmuxes = ARRAY_SIZE(stac92hd71bxx_dmux_nids); |
4210 | 4211 | ||
4212 | switch (spec->board_config) { | ||
4213 | case STAC_HP_M4: | ||
4214 | spec->num_dmics = 0; | ||
4215 | spec->num_smuxes = 1; | ||
4216 | spec->num_dmuxes = 0; | ||
4217 | |||
4218 | /* enable internal microphone */ | ||
4219 | snd_hda_codec_write_cache(codec, 0x0e, 0, | ||
4220 | AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80); | ||
4221 | break; | ||
4222 | default: | ||
4223 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; | ||
4224 | spec->num_smuxes = ARRAY_SIZE(stac92hd71bxx_smux_nids); | ||
4225 | spec->num_dmuxes = ARRAY_SIZE(stac92hd71bxx_dmux_nids); | ||
4226 | }; | ||
4227 | |||
4211 | spec->multiout.num_dacs = 1; | 4228 | spec->multiout.num_dacs = 1; |
4212 | spec->multiout.hp_nid = 0x11; | 4229 | spec->multiout.hp_nid = 0x11; |
4213 | spec->multiout.dac_nids = stac92hd71bxx_dac_nids; | 4230 | spec->multiout.dac_nids = stac92hd71bxx_dac_nids; |