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