[alsa-devel] [PATCH] 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 ---
diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c index c2f900f..2c0f37f 100644 --- a/pci/hda/patch_sigmatel.c +++ b/pci/hda/patch_sigmatel.c @@ -70,6 +70,7 @@ enum { enum { STAC_92HD73XX_REF, STAC_DELL_M6, + STAC_DELL_EQ, STAC_92HD73XX_MODELS };
@@ -792,9 +793,7 @@ static struct hda_verb dell_eq_core_init[] = { };
static struct hda_verb dell_m6_core_init[] = { - /* set master volume to max value without distortion - * and direct control */ - { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec}, + { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, /* setup audio connections */ { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, @@ -1622,11 +1621,13 @@ static unsigned int dell_m6_pin_configs[13] = { static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, [STAC_DELL_M6] = dell_m6_pin_configs, + [STAC_DELL_EQ] = dell_m6_pin_configs, };
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = "ref", [STAC_DELL_M6] = "dell-m6", + [STAC_DELL_EQ] = "dell-eq", };
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { @@ -4274,12 +4275,17 @@ again: sizeof(stac92hd73xx_dmux));
switch (spec->board_config) { - case STAC_DELL_M6: + case STAC_DELL_EQ: spec->init = dell_eq_core_init; + /* fallthru */ + case STAC_DELL_M6: spec->num_smuxes = 0; spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; spec->num_amps = 1; + + if (!spec->init) + spec->init = dell_m6_core_init; switch (codec->subsystem_id) { case 0x1028025e: /* Analog Mics */ case 0x1028025f: @@ -4289,8 +4295,6 @@ again: break; case 0x10280271: /* Digital Mics */ case 0x10280272: - spec->init = dell_m6_core_init; - /* fall-through */ case 0x10280254: case 0x10280255: stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
At Mon, 03 Nov 2008 08:12:43 -0500, Matthew Ranostay wrote:
Add support for explicitly enabling the EQ distortion hack for systems without software biquad support.
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com
Is it to be merged to 2.6.28, right? How about the older kernels? To be sent to stable@kernel as well?
thanks,
Takashi
diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c index c2f900f..2c0f37f 100644 --- a/pci/hda/patch_sigmatel.c +++ b/pci/hda/patch_sigmatel.c @@ -70,6 +70,7 @@ enum { enum { STAC_92HD73XX_REF, STAC_DELL_M6,
- STAC_DELL_EQ, STAC_92HD73XX_MODELS
};
@@ -792,9 +793,7 @@ static struct hda_verb dell_eq_core_init[] = { };
static struct hda_verb dell_m6_core_init[] = {
- /* set master volume to max value without distortion
* and direct control */
- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, /* setup audio connections */ { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
@@ -1622,11 +1621,13 @@ static unsigned int dell_m6_pin_configs[13] = { static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, [STAC_DELL_M6] = dell_m6_pin_configs,
- [STAC_DELL_EQ] = dell_m6_pin_configs,
};
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = "ref", [STAC_DELL_M6] = "dell-m6",
- [STAC_DELL_EQ] = "dell-eq",
};
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { @@ -4274,12 +4275,17 @@ again: sizeof(stac92hd73xx_dmux));
switch (spec->board_config) {
- case STAC_DELL_M6:
- case STAC_DELL_EQ: spec->init = dell_eq_core_init;
/* fallthru */
- case STAC_DELL_M6: spec->num_smuxes = 0; spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; spec->num_amps = 1;
if (!spec->init)
switch (codec->subsystem_id) { case 0x1028025e: /* Analog Mics */ case 0x1028025f:spec->init = dell_m6_core_init;
@@ -4289,8 +4295,6 @@ again: break; case 0x10280271: /* Digital Mics */ case 0x10280272:
spec->init = dell_m6_core_init;
case 0x10280254: case 0x10280255: stac92xx_set_config_reg(codec, 0x13, 0x90A60160);/* fall-through */
Takashi Iwai wrote:
At Mon, 03 Nov 2008 08:12:43 -0500, Matthew Ranostay wrote:
Add support for explicitly enabling the EQ distortion hack for systems without software biquad support.
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com
Is it to be merged to 2.6.28, right?
That be best if we are still in that time window.
How about the older kernels? To be sent to stable@kernel as well?
Yeah this would good as well. Should I forward it?
thanks,
Takashi
diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c index c2f900f..2c0f37f 100644 --- a/pci/hda/patch_sigmatel.c +++ b/pci/hda/patch_sigmatel.c @@ -70,6 +70,7 @@ enum { enum { STAC_92HD73XX_REF, STAC_DELL_M6,
- STAC_DELL_EQ, STAC_92HD73XX_MODELS
};
@@ -792,9 +793,7 @@ static struct hda_verb dell_eq_core_init[] = { };
static struct hda_verb dell_m6_core_init[] = {
- /* set master volume to max value without distortion
* and direct control */
- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, /* setup audio connections */ { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
@@ -1622,11 +1621,13 @@ static unsigned int dell_m6_pin_configs[13] = { static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, [STAC_DELL_M6] = dell_m6_pin_configs,
- [STAC_DELL_EQ] = dell_m6_pin_configs,
};
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = "ref", [STAC_DELL_M6] = "dell-m6",
- [STAC_DELL_EQ] = "dell-eq",
};
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { @@ -4274,12 +4275,17 @@ again: sizeof(stac92hd73xx_dmux));
switch (spec->board_config) {
- case STAC_DELL_M6:
- case STAC_DELL_EQ: spec->init = dell_eq_core_init;
/* fallthru */
- case STAC_DELL_M6: spec->num_smuxes = 0; spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; spec->num_amps = 1;
if (!spec->init)
switch (codec->subsystem_id) { case 0x1028025e: /* Analog Mics */ case 0x1028025f:spec->init = dell_m6_core_init;
@@ -4289,8 +4295,6 @@ again: break; case 0x10280271: /* Digital Mics */ case 0x10280272:
spec->init = dell_m6_core_init;
case 0x10280254: case 0x10280255: stac92xx_set_config_reg(codec, 0x13, 0x90A60160);/* fall-through */
At Mon, 03 Nov 2008 08:26:39 -0500, Matthew Ranostay wrote:
Takashi Iwai wrote:
At Mon, 03 Nov 2008 08:12:43 -0500, Matthew Ranostay wrote:
Add support for explicitly enabling the EQ distortion hack for systems without software biquad support.
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com
Is it to be merged to 2.6.28, right?
That be best if we are still in that time window.
Sure, such a trivial fix *must* go in.
How about the older kernels? To be sent to stable@kernel as well?
Yeah this would good as well. Should I forward it?
We can just 'Cc: stable@kernel.org' in the patch comment. Then stable guys will pick it up automatically when committed to the upstream.
thanks,
Takashi
thanks,
Takashi
diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c index c2f900f..2c0f37f 100644 --- a/pci/hda/patch_sigmatel.c +++ b/pci/hda/patch_sigmatel.c @@ -70,6 +70,7 @@ enum { enum { STAC_92HD73XX_REF, STAC_DELL_M6,
- STAC_DELL_EQ, STAC_92HD73XX_MODELS
};
@@ -792,9 +793,7 @@ static struct hda_verb dell_eq_core_init[] = { };
static struct hda_verb dell_m6_core_init[] = {
- /* set master volume to max value without distortion
* and direct control */
- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, /* setup audio connections */ { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
@@ -1622,11 +1621,13 @@ static unsigned int dell_m6_pin_configs[13] = { static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, [STAC_DELL_M6] = dell_m6_pin_configs,
- [STAC_DELL_EQ] = dell_m6_pin_configs,
};
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { [STAC_92HD73XX_REF] = "ref", [STAC_DELL_M6] = "dell-m6",
- [STAC_DELL_EQ] = "dell-eq",
};
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { @@ -4274,12 +4275,17 @@ again: sizeof(stac92hd73xx_dmux));
switch (spec->board_config) {
- case STAC_DELL_M6:
- case STAC_DELL_EQ: spec->init = dell_eq_core_init;
/* fallthru */
- case STAC_DELL_M6: spec->num_smuxes = 0; spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; spec->num_amps = 1;
if (!spec->init)
switch (codec->subsystem_id) { case 0x1028025e: /* Analog Mics */ case 0x1028025f:spec->init = dell_m6_core_init;
@@ -4289,8 +4295,6 @@ again: break; case 0x10280271: /* Digital Mics */ case 0x10280272:
spec->init = dell_m6_core_init;
case 0x10280254: case 0x10280255: stac92xx_set_config_reg(codec, 0x13, 0x90A60160);/* fall-through */
participants (2)
-
Matthew Ranostay
-
Takashi Iwai