diff options
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 33 |
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; |