Commit eefe93b9 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'topic/fix/hda' into topic/hda

Conflicts:
	sound/pci/hda/patch_sigmatel.c
parents ee09543c 661cd8fb
...@@ -1083,7 +1083,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. ...@@ -1083,7 +1083,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
STAC92HD73* STAC92HD73*
ref Reference board ref Reference board
dell-m6 Dell desktops dell-m6-amic Dell desktops/laptops with analog mics
dell-m6-dmic Dell desktops/laptops with digital mics
dell-m6 Dell desktops/laptops with both type of mics
STAC9872 STAC9872
vaio Setup for VAIO FE550G/SZ110 vaio Setup for VAIO FE550G/SZ110
......
...@@ -71,7 +71,9 @@ enum { ...@@ -71,7 +71,9 @@ enum {
enum { enum {
STAC_92HD73XX_REF, STAC_92HD73XX_REF,
STAC_DELL_M6, STAC_DELL_M6_AMIC,
STAC_DELL_M6_DMIC,
STAC_DELL_M6_BOTH,
STAC_DELL_EQ, STAC_DELL_EQ,
STAC_92HD73XX_MODELS STAC_92HD73XX_MODELS
}; };
...@@ -1656,13 +1658,17 @@ static unsigned int dell_m6_pin_configs[13] = { ...@@ -1656,13 +1658,17 @@ static unsigned int dell_m6_pin_configs[13] = {
static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
[STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
[STAC_DELL_M6] = dell_m6_pin_configs, [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
[STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
[STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
[STAC_DELL_EQ] = dell_m6_pin_configs, [STAC_DELL_EQ] = dell_m6_pin_configs,
}; };
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
[STAC_92HD73XX_REF] = "ref", [STAC_92HD73XX_REF] = "ref",
[STAC_DELL_M6] = "dell-m6", [STAC_DELL_M6_AMIC] = "dell-m6-amic",
[STAC_DELL_M6_DMIC] = "dell-m6-dmic",
[STAC_DELL_M6_BOTH] = "dell-m6",
[STAC_DELL_EQ] = "dell-eq", [STAC_DELL_EQ] = "dell-eq",
}; };
...@@ -1671,21 +1677,23 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { ...@@ -1671,21 +1677,23 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
"DFI LanParty", STAC_92HD73XX_REF), "DFI LanParty", STAC_92HD73XX_REF),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
"Dell Studio 1535", STAC_DELL_M6), "Dell Studio 1535", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
"unknown Dell", STAC_DELL_M6), "unknown Dell", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
"unknown Dell", STAC_DELL_M6), "unknown Dell", STAC_DELL_M6_BOTH),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257,
"unknown Dell", STAC_DELL_M6), "unknown Dell", STAC_DELL_M6_BOTH),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e,
"unknown Dell", STAC_DELL_M6), "unknown Dell", STAC_DELL_M6_AMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f,
"unknown Dell", STAC_DELL_M6), "unknown Dell", STAC_DELL_M6_AMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
"unknown Dell", STAC_DELL_M6), "unknown Dell", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272,
"unknown Dell", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
"Dell Studio 15", STAC_DELL_M6), "Dell Studio 1537", STAC_DELL_M6_DMIC),
{} /* terminator */ {} /* terminator */
}; };
...@@ -4513,7 +4521,9 @@ static int patch_stac92hd73xx(struct hda_codec *codec) ...@@ -4513,7 +4521,9 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
case STAC_DELL_EQ: case STAC_DELL_EQ:
spec->init = dell_eq_core_init; spec->init = dell_eq_core_init;
/* fallthru */ /* fallthru */
case STAC_DELL_M6: case STAC_DELL_M6_AMIC:
case STAC_DELL_M6_DMIC:
case STAC_DELL_M6_BOTH:
spec->num_smuxes = 0; spec->num_smuxes = 0;
spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER];
spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
...@@ -4522,23 +4532,18 @@ static int patch_stac92hd73xx(struct hda_codec *codec) ...@@ -4522,23 +4532,18 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
if (!spec->init) if (!spec->init)
spec->init = dell_m6_core_init; spec->init = dell_m6_core_init;
switch (codec->subsystem_id) { switch (spec->board_config) {
case 0x1028025e: /* Analog Mics */ case STAC_DELL_M6_AMIC: /* Analog Mics */
case 0x1028025f:
stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
spec->num_dmics = 0; spec->num_dmics = 0;
spec->private_dimux.num_items = 1; spec->private_dimux.num_items = 1;
break; break;
case 0x10280271: /* Digital Mics */ case STAC_DELL_M6_DMIC: /* Digital Mics */
case 0x10280272:
case 0x10280254:
case 0x10280255:
stac92xx_set_config_reg(codec, 0x13, 0x90A60160); stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
spec->num_dmics = 1; spec->num_dmics = 1;
spec->private_dimux.num_items = 2; spec->private_dimux.num_items = 2;
break; break;
case 0x10280256: /* Both */ case STAC_DELL_M6_BOTH: /* Both */
case 0x10280057:
stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
stac92xx_set_config_reg(codec, 0x13, 0x90A60160); stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
spec->num_dmics = 1; spec->num_dmics = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment