aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_sigmatel.c21
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
1532static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = { 1534static 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
1538static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { 1541static 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;