diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-11-07 03:06:45 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-11-07 03:06:45 -0500 |
commit | 077402317291437521ed86d3326b3bcc62d40529 (patch) | |
tree | 614e1d233533e393e1ded8dc33bb7a3c6876f89b /sound | |
parent | ea2da6e898033b9736a26cf588b9ce841a433337 (diff) | |
parent | 959973b92d3ba235edfa5dcb5df1be1e5d1deba2 (diff) |
Merge branch 'topic/fix/hda' into topic/hda
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/hda_proc.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 16 |
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] = { | |||
8196 | static struct snd_pci_quirk alc883_cfg_tbl[] = { | 8196 | static 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 { | |||
70 | enum { | 70 | enum { |
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 | ||
792 | static struct hda_verb dell_m6_core_init[] = { | 793 | static 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] = { | |||
1620 | static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { | 1619 | static 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 | ||
1625 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { | 1625 | static 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 | ||
1630 | static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { | 1631 | static 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); |