Commit 07740231 authored by Takashi Iwai's avatar Takashi Iwai

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

parents ea2da6e8 959973b9
...@@ -450,6 +450,8 @@ static void print_gpio(struct snd_info_buffer *buffer, ...@@ -450,6 +450,8 @@ static void print_gpio(struct snd_info_buffer *buffer,
(gpio & AC_GPIO_UNSOLICITED) ? 1 : 0, (gpio & AC_GPIO_UNSOLICITED) ? 1 : 0,
(gpio & AC_GPIO_WAKE) ? 1 : 0); (gpio & AC_GPIO_WAKE) ? 1 : 0);
max = gpio & AC_GPIO_IO_COUNT; max = gpio & AC_GPIO_IO_COUNT;
if (!max || max > 8)
return;
enable = snd_hda_codec_read(codec, nid, 0, enable = snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_GPIO_MASK, 0); AC_VERB_GET_GPIO_MASK, 0);
direction = snd_hda_codec_read(codec, nid, 0, direction = snd_hda_codec_read(codec, nid, 0,
......
...@@ -8196,6 +8196,7 @@ static const char *alc883_models[ALC883_MODEL_LAST] = { ...@@ -8196,6 +8196,7 @@ static const char *alc883_models[ALC883_MODEL_LAST] = {
static struct snd_pci_quirk alc883_cfg_tbl[] = { static struct snd_pci_quirk alc883_cfg_tbl[] = {
SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG), SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG),
SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE), SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_ACER_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE), SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE), SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE), SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE),
...@@ -8250,6 +8251,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { ...@@ -8250,6 +8251,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763),
SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY), SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY),
SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2), SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG),
SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG),
SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL),
......
...@@ -70,6 +70,7 @@ enum { ...@@ -70,6 +70,7 @@ enum {
enum { enum {
STAC_92HD73XX_REF, STAC_92HD73XX_REF,
STAC_DELL_M6, STAC_DELL_M6,
STAC_DELL_EQ,
STAC_92HD73XX_MODELS STAC_92HD73XX_MODELS
}; };
...@@ -790,9 +791,7 @@ static struct hda_verb dell_eq_core_init[] = { ...@@ -790,9 +791,7 @@ static struct hda_verb dell_eq_core_init[] = {
}; };
static struct hda_verb dell_m6_core_init[] = { static struct hda_verb dell_m6_core_init[] = {
/* set master volume to max value without distortion { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
* and direct control */
{ 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
/* setup audio connections */ /* setup audio connections */
{ 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
{ 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
...@@ -1620,11 +1619,13 @@ static unsigned int dell_m6_pin_configs[13] = { ...@@ -1620,11 +1619,13 @@ 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] = 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] = "dell-m6",
[STAC_DELL_EQ] = "dell-eq",
}; };
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
...@@ -4272,12 +4273,17 @@ again: ...@@ -4272,12 +4273,17 @@ again:
sizeof(stac92hd73xx_dmux)); sizeof(stac92hd73xx_dmux));
switch (spec->board_config) { switch (spec->board_config) {
case STAC_DELL_M6: case STAC_DELL_EQ:
spec->init = dell_eq_core_init; spec->init = dell_eq_core_init;
/* fallthru */
case STAC_DELL_M6:
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];
spec->num_amps = 1; spec->num_amps = 1;
if (!spec->init)
spec->init = dell_m6_core_init;
switch (codec->subsystem_id) { switch (codec->subsystem_id) {
case 0x1028025e: /* Analog Mics */ case 0x1028025e: /* Analog Mics */
case 0x1028025f: case 0x1028025f:
...@@ -4287,8 +4293,6 @@ again: ...@@ -4287,8 +4293,6 @@ again:
break; break;
case 0x10280271: /* Digital Mics */ case 0x10280271: /* Digital Mics */
case 0x10280272: case 0x10280272:
spec->init = dell_m6_core_init;
/* fall-through */
case 0x10280254: case 0x10280254:
case 0x10280255: case 0x10280255:
stac92xx_set_config_reg(codec, 0x13, 0x90A60160); stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
......
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