diff options
author | Matthew Ranostay <mranostay@embeddedalley.com> | 2008-11-03 08:12:43 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-11-03 08:29:47 -0500 |
commit | 6b3ab21ef1ac15db4b053ce0ba8eae0ef9361c8a (patch) | |
tree | 095ecc9f1f33d4e789fd008fba4e78138ea1bd1a | |
parent | 69e50282b726bab75c8050c4836dc89b7eb7bf1a (diff) |
ALSA: hda: make a STAC_DELL_EQ option
Add support for explicitly enabling the EQ distortion hack for
systems without software biquad support.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index df9b0bc7f878..e6085915d86d 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -69,6 +69,7 @@ enum { | |||
69 | enum { | 69 | enum { |
70 | STAC_92HD73XX_REF, | 70 | STAC_92HD73XX_REF, |
71 | STAC_DELL_M6, | 71 | STAC_DELL_M6, |
72 | STAC_DELL_EQ, | ||
72 | STAC_92HD73XX_MODELS | 73 | STAC_92HD73XX_MODELS |
73 | }; | 74 | }; |
74 | 75 | ||
@@ -773,9 +774,7 @@ static struct hda_verb dell_eq_core_init[] = { | |||
773 | }; | 774 | }; |
774 | 775 | ||
775 | static struct hda_verb dell_m6_core_init[] = { | 776 | static struct hda_verb dell_m6_core_init[] = { |
776 | /* set master volume to max value without distortion | 777 | { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, |
777 | * and direct control */ | ||
778 | { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec}, | ||
779 | /* setup audio connections */ | 778 | /* setup audio connections */ |
780 | { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, | 779 | { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, |
781 | { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, | 780 | { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, |
@@ -1600,11 +1599,13 @@ static unsigned int dell_m6_pin_configs[13] = { | |||
1600 | static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { | 1599 | static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { |
1601 | [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, | 1600 | [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, |
1602 | [STAC_DELL_M6] = dell_m6_pin_configs, | 1601 | [STAC_DELL_M6] = dell_m6_pin_configs, |
1602 | [STAC_DELL_EQ] = dell_m6_pin_configs, | ||
1603 | }; | 1603 | }; |
1604 | 1604 | ||
1605 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { | 1605 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { |
1606 | [STAC_92HD73XX_REF] = "ref", | 1606 | [STAC_92HD73XX_REF] = "ref", |
1607 | [STAC_DELL_M6] = "dell-m6", | 1607 | [STAC_DELL_M6] = "dell-m6", |
1608 | [STAC_DELL_EQ] = "dell-eq", | ||
1608 | }; | 1609 | }; |
1609 | 1610 | ||
1610 | static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { | 1611 | static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { |
@@ -4131,12 +4132,17 @@ again: | |||
4131 | sizeof(stac92hd73xx_dmux)); | 4132 | sizeof(stac92hd73xx_dmux)); |
4132 | 4133 | ||
4133 | switch (spec->board_config) { | 4134 | switch (spec->board_config) { |
4134 | case STAC_DELL_M6: | 4135 | case STAC_DELL_EQ: |
4135 | spec->init = dell_eq_core_init; | 4136 | spec->init = dell_eq_core_init; |
4137 | /* fallthru */ | ||
4138 | case STAC_DELL_M6: | ||
4136 | spec->num_smuxes = 0; | 4139 | spec->num_smuxes = 0; |
4137 | spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; | 4140 | spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; |
4138 | spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; | 4141 | spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; |
4139 | spec->num_amps = 1; | 4142 | spec->num_amps = 1; |
4143 | |||
4144 | if (!spec->init) | ||
4145 | spec->init = dell_m6_core_init; | ||
4140 | switch (codec->subsystem_id) { | 4146 | switch (codec->subsystem_id) { |
4141 | case 0x1028025e: /* Analog Mics */ | 4147 | case 0x1028025e: /* Analog Mics */ |
4142 | case 0x1028025f: | 4148 | case 0x1028025f: |
@@ -4146,8 +4152,6 @@ again: | |||
4146 | break; | 4152 | break; |
4147 | case 0x10280271: /* Digital Mics */ | 4153 | case 0x10280271: /* Digital Mics */ |
4148 | case 0x10280272: | 4154 | case 0x10280272: |
4149 | spec->init = dell_m6_core_init; | ||
4150 | /* fall-through */ | ||
4151 | case 0x10280254: | 4155 | case 0x10280254: |
4152 | case 0x10280255: | 4156 | case 0x10280255: |
4153 | stac92xx_set_config_reg(codec, 0x13, 0x90A60160); | 4157 | stac92xx_set_config_reg(codec, 0x13, 0x90A60160); |