diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 05661f7f3ce1..5c65f7d4606f 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -3643,7 +3643,12 @@ static int stac92xx_init(struct hda_codec *codec) | |||
3643 | for (i = 0; i < AUTO_PIN_LAST; i++) { | 3643 | for (i = 0; i < AUTO_PIN_LAST; i++) { |
3644 | hda_nid_t nid = cfg->input_pins[i]; | 3644 | hda_nid_t nid = cfg->input_pins[i]; |
3645 | if (nid) { | 3645 | if (nid) { |
3646 | unsigned int pinctl = AC_PINCTL_IN_EN; | 3646 | unsigned int pinctl = snd_hda_codec_read(codec, nid, |
3647 | 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); | ||
3648 | /* if PINCTL already set then skip */ | ||
3649 | if (pinctl & AC_PINCAP_IN) | ||
3650 | continue; | ||
3651 | pinctl = AC_PINCTL_IN_EN; | ||
3647 | if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC) | 3652 | if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC) |
3648 | pinctl |= stac92xx_get_vref(codec, nid); | 3653 | pinctl |= stac92xx_get_vref(codec, nid); |
3649 | stac92xx_auto_set_pinctl(codec, nid, pinctl); | 3654 | stac92xx_auto_set_pinctl(codec, nid, pinctl); |
@@ -4413,12 +4418,13 @@ again: | |||
4413 | switch (spec->board_config) { | 4418 | switch (spec->board_config) { |
4414 | case STAC_HP_M4: | 4419 | case STAC_HP_M4: |
4415 | spec->num_dmics = 0; | 4420 | spec->num_dmics = 0; |
4416 | spec->num_smuxes = 1; | 4421 | spec->num_smuxes = 0; |
4417 | spec->num_dmuxes = 0; | 4422 | spec->num_dmuxes = 0; |
4418 | 4423 | ||
4419 | /* enable internal microphone */ | 4424 | /* enable internal microphone */ |
4420 | snd_hda_codec_write_cache(codec, 0x0e, 0, | 4425 | stac92xx_set_config_reg(codec, 0x0e, 0x01813040); |
4421 | AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80); | 4426 | stac92xx_auto_set_pinctl(codec, 0x0e, |
4427 | AC_PINCTL_IN_EN | AC_PINCTL_VREF_80); | ||
4422 | break; | 4428 | break; |
4423 | default: | 4429 | default: |
4424 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; | 4430 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; |