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; |
