aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-11-07 03:06:45 -0500
committerTakashi Iwai <tiwai@suse.de>2008-11-07 03:06:45 -0500
commit077402317291437521ed86d3326b3bcc62d40529 (patch)
tree614e1d233533e393e1ded8dc33bb7a3c6876f89b /sound
parentea2da6e898033b9736a26cf588b9ce841a433337 (diff)
parent959973b92d3ba235edfa5dcb5df1be1e5d1deba2 (diff)
Merge branch 'topic/fix/hda' into topic/hda
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_proc.c2
-rw-r--r--sound/pci/hda/patch_realtek.c2
-rw-r--r--sound/pci/hda/patch_sigmatel.c16
3 files changed, 14 insertions, 6 deletions
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index b36d4d06485d..64b6a38fa963 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -450,6 +450,8 @@ static void print_gpio(struct snd_info_buffer *buffer,
450 (gpio & AC_GPIO_UNSOLICITED) ? 1 : 0, 450 (gpio & AC_GPIO_UNSOLICITED) ? 1 : 0,
451 (gpio & AC_GPIO_WAKE) ? 1 : 0); 451 (gpio & AC_GPIO_WAKE) ? 1 : 0);
452 max = gpio & AC_GPIO_IO_COUNT; 452 max = gpio & AC_GPIO_IO_COUNT;
453 if (!max || max > 8)
454 return;
453 enable = snd_hda_codec_read(codec, nid, 0, 455 enable = snd_hda_codec_read(codec, nid, 0,
454 AC_VERB_GET_GPIO_MASK, 0); 456 AC_VERB_GET_GPIO_MASK, 0);
455 direction = snd_hda_codec_read(codec, nid, 0, 457 direction = snd_hda_codec_read(codec, nid, 0,
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 98a02fd1097e..0f1fa1dac448 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -8196,6 +8196,7 @@ static const char *alc883_models[ALC883_MODEL_LAST] = {
8196static struct snd_pci_quirk alc883_cfg_tbl[] = { 8196static struct snd_pci_quirk alc883_cfg_tbl[] = {
8197 SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG), 8197 SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG),
8198 SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE), 8198 SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE),
8199 SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_ACER_ASPIRE),
8199 SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE), 8200 SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE),
8200 SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE), 8201 SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE),
8201 SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE), 8202 SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE),
@@ -8250,6 +8251,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
8250 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), 8251 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763),
8251 SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY), 8252 SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY),
8252 SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2), 8253 SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
8254 SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG),
8253 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), 8255 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG),
8254 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), 8256 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
8255 SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), 8257 SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL),
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index f8f85d6717a9..12c88c42d7f3 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -70,6 +70,7 @@ enum {
70enum { 70enum {
71 STAC_92HD73XX_REF, 71 STAC_92HD73XX_REF,
72 STAC_DELL_M6, 72 STAC_DELL_M6,
73 STAC_DELL_EQ,
73 STAC_92HD73XX_MODELS 74 STAC_92HD73XX_MODELS
74}; 75};
75 76
@@ -790,9 +791,7 @@ static struct hda_verb dell_eq_core_init[] = {
790}; 791};
791 792
792static struct hda_verb dell_m6_core_init[] = { 793static struct hda_verb dell_m6_core_init[] = {
793 /* set master volume to max value without distortion 794 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
794 * and direct control */
795 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
796 /* setup audio connections */ 795 /* setup audio connections */
797 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, 796 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
798 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, 797 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
@@ -1620,11 +1619,13 @@ static unsigned int dell_m6_pin_configs[13] = {
1620static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { 1619static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
1621 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, 1620 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
1622 [STAC_DELL_M6] = dell_m6_pin_configs, 1621 [STAC_DELL_M6] = dell_m6_pin_configs,
1622 [STAC_DELL_EQ] = dell_m6_pin_configs,
1623}; 1623};
1624 1624
1625static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { 1625static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
1626 [STAC_92HD73XX_REF] = "ref", 1626 [STAC_92HD73XX_REF] = "ref",
1627 [STAC_DELL_M6] = "dell-m6", 1627 [STAC_DELL_M6] = "dell-m6",
1628 [STAC_DELL_EQ] = "dell-eq",
1628}; 1629};
1629 1630
1630static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { 1631static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
@@ -4272,12 +4273,17 @@ again:
4272 sizeof(stac92hd73xx_dmux)); 4273 sizeof(stac92hd73xx_dmux));
4273 4274
4274 switch (spec->board_config) { 4275 switch (spec->board_config) {
4275 case STAC_DELL_M6: 4276 case STAC_DELL_EQ:
4276 spec->init = dell_eq_core_init; 4277 spec->init = dell_eq_core_init;
4278 /* fallthru */
4279 case STAC_DELL_M6:
4277 spec->num_smuxes = 0; 4280 spec->num_smuxes = 0;
4278 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; 4281 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER];
4279 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; 4282 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
4280 spec->num_amps = 1; 4283 spec->num_amps = 1;
4284
4285 if (!spec->init)
4286 spec->init = dell_m6_core_init;
4281 switch (codec->subsystem_id) { 4287 switch (codec->subsystem_id) {
4282 case 0x1028025e: /* Analog Mics */ 4288 case 0x1028025e: /* Analog Mics */
4283 case 0x1028025f: 4289 case 0x1028025f:
@@ -4287,8 +4293,6 @@ again:
4287 break; 4293 break;
4288 case 0x10280271: /* Digital Mics */ 4294 case 0x10280271: /* Digital Mics */
4289 case 0x10280272: 4295 case 0x10280272:
4290 spec->init = dell_m6_core_init;
4291 /* fall-through */
4292 case 0x10280254: 4296 case 0x10280254:
4293 case 0x10280255: 4297 case 0x10280255:
4294 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4298 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);