aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/patch_sigmatel.c33
1 files changed, 13 insertions, 20 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index e31e53dc6962..2c8a8039c759 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -5016,7 +5016,7 @@ again:
5016 spec->eapd_switch = 1; 5016 spec->eapd_switch = 1;
5017 break; 5017 break;
5018 } 5018 }
5019 if (spec->board_config > STAC_92HD73XX_REF) { 5019 if (spec->board_config != STAC_92HD73XX_REF) {
5020 /* GPIO0 High = Enable EAPD */ 5020 /* GPIO0 High = Enable EAPD */
5021 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x1; 5021 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x1;
5022 spec->gpio_data = 0x01; 5022 spec->gpio_data = 0x01;
@@ -5557,14 +5557,17 @@ static int patch_stac927x(struct hda_codec *codec)
5557 spec->dac_list = stac927x_dac_nids; 5557 spec->dac_list = stac927x_dac_nids;
5558 spec->multiout.dac_nids = spec->dac_nids; 5558 spec->multiout.dac_nids = spec->dac_nids;
5559 5559
5560 if (spec->board_config != STAC_D965_REF) {
5561 /* GPIO0 High = Enable EAPD */
5562 spec->eapd_mask = spec->gpio_mask = 0x01;
5563 spec->gpio_dir = spec->gpio_data = 0x01;
5564 }
5565
5560 switch (spec->board_config) { 5566 switch (spec->board_config) {
5561 case STAC_D965_3ST: 5567 case STAC_D965_3ST:
5562 case STAC_D965_5ST: 5568 case STAC_D965_5ST:
5563 /* GPIO0 High = Enable EAPD */ 5569 /* GPIO0 High = Enable EAPD */
5564 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x01;
5565 spec->gpio_data = 0x01;
5566 spec->num_dmics = 0; 5570 spec->num_dmics = 0;
5567
5568 spec->init = d965_core_init; 5571 spec->init = d965_core_init;
5569 break; 5572 break;
5570 case STAC_DELL_BIOS: 5573 case STAC_DELL_BIOS:
@@ -5583,16 +5586,11 @@ static int patch_stac927x(struct hda_codec *codec)
5583 snd_hda_codec_set_pincfg(codec, 0x0e, 0x02a79130); 5586 snd_hda_codec_set_pincfg(codec, 0x0e, 0x02a79130);
5584 /* fallthru */ 5587 /* fallthru */
5585 case STAC_DELL_3ST: 5588 case STAC_DELL_3ST:
5586 /* GPIO2 High = Enable EAPD */ 5589 if (codec->subsystem_id != 0x1028022f) {
5587 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x04; 5590 /* GPIO2 High = Enable EAPD */
5588 spec->gpio_data = 0x04; 5591 spec->eapd_mask = spec->gpio_mask = 0x04;
5589 switch (codec->subsystem_id) { 5592 spec->gpio_dir = spec->gpio_data = 0x04;
5590 case 0x1028022f: 5593 }
5591 /* correct EAPD to be GPIO0 */
5592 spec->eapd_mask = spec->gpio_mask = 0x01;
5593 spec->gpio_dir = spec->gpio_data = 0x01;
5594 break;
5595 };
5596 spec->dmic_nids = stac927x_dmic_nids; 5594 spec->dmic_nids = stac927x_dmic_nids;
5597 spec->num_dmics = STAC927X_NUM_DMICS; 5595 spec->num_dmics = STAC927X_NUM_DMICS;
5598 5596
@@ -5601,14 +5599,9 @@ static int patch_stac927x(struct hda_codec *codec)
5601 spec->num_dmuxes = ARRAY_SIZE(stac927x_dmux_nids); 5599 spec->num_dmuxes = ARRAY_SIZE(stac927x_dmux_nids);
5602 break; 5600 break;
5603 default: 5601 default:
5604 if (spec->board_config > STAC_D965_REF) {
5605 /* GPIO0 High = Enable EAPD */
5606 spec->eapd_mask = spec->gpio_mask = 0x01;
5607 spec->gpio_dir = spec->gpio_data = 0x01;
5608 }
5609 spec->num_dmics = 0; 5602 spec->num_dmics = 0;
5610
5611 spec->init = stac927x_core_init; 5603 spec->init = stac927x_core_init;
5604 break;
5612 } 5605 }
5613 5606
5614 spec->num_caps = STAC927X_NUM_CAPS; 5607 spec->num_caps = STAC927X_NUM_CAPS;