Merge branch 'fix/hda' into for-linus

This commit is contained in:
Takashi Iwai 2010-05-13 10:07:15 +02:00
commit 105ce39ca4
3 changed files with 20 additions and 10 deletions

View File

@ -1197,9 +1197,10 @@ static int patch_cxt5045(struct hda_codec *codec)
case 0x103c: case 0x103c:
case 0x1631: case 0x1631:
case 0x1734: case 0x1734:
/* HP, Packard Bell, & Fujitsu-Siemens laptops have really bad case 0x17aa:
* sound over 0dB on NID 0x17. Fix max PCM level to 0 dB /* HP, Packard Bell, Fujitsu-Siemens & Lenovo laptops have
* (originally it has 0x2b steps with 0dB offset 0x14) * really bad sound over 0dB on NID 0x17. Fix max PCM level to
* 0 dB (originally it has 0x2b steps with 0dB offset 0x14)
*/ */
snd_hda_override_amp_caps(codec, 0x17, HDA_INPUT, snd_hda_override_amp_caps(codec, 0x17, HDA_INPUT,
(0x14 << AC_AMPCAP_OFFSET_SHIFT) | (0x14 << AC_AMPCAP_OFFSET_SHIFT) |
@ -2846,6 +2847,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD),
SND_PCI_QUIRK(0x1179, 0xff50, "Toshiba Satellite P500-PSPGSC-01800T", CXT5066_OLPC_XO_1_5), SND_PCI_QUIRK(0x1179, 0xff50, "Toshiba Satellite P500-PSPGSC-01800T", CXT5066_OLPC_XO_1_5),
SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5), SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5),
SND_PCI_QUIRK(0x17aa, 0x21b2, "Thinkpad X100e", CXT5066_IDEAPAD),
SND_PCI_QUIRK(0x17aa, 0x3a0d, "ideapad", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x3a0d, "ideapad", CXT5066_IDEAPAD),
{} {}
}; };

View File

@ -17871,7 +17871,6 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
ALC662_3ST_6ch_DIG), ALC662_3ST_6ch_DIG),
SND_PCI_QUIRK_MASK(0x1854, 0xf000, 0x2000, "ASUS H13-200x", SND_PCI_QUIRK_MASK(0x1854, 0xf000, 0x2000, "ASUS H13-200x",
ALC663_ASUS_H13), ALC663_ASUS_H13),
SND_PCI_QUIRK(0x8086, 0xd604, "Intel mobo", ALC662_3ST_2ch_DIG),
{} {}
}; };

View File

@ -104,6 +104,7 @@ enum {
STAC_DELL_M4_2, STAC_DELL_M4_2,
STAC_DELL_M4_3, STAC_DELL_M4_3,
STAC_HP_M4, STAC_HP_M4,
STAC_HP_DV4,
STAC_HP_DV5, STAC_HP_DV5,
STAC_HP_HDX, STAC_HP_HDX,
STAC_HP_DV4_1222NR, STAC_HP_DV4_1222NR,
@ -1544,11 +1545,9 @@ static unsigned int alienware_m17x_pin_configs[13] = {
0x904601b0, 0x904601b0,
}; };
static unsigned int intel_dg45id_pin_configs[14] = { static unsigned int intel_dg45id_pin_configs[13] = {
0x02214230, 0x02A19240, 0x01013214, 0x01014210, 0x02214230, 0x02A19240, 0x01013214, 0x01014210,
0x01A19250, 0x01011212, 0x01016211, 0x40f000f0, 0x01A19250, 0x01011212, 0x01016211
0x40f000f0, 0x40f000f0, 0x40f000f0, 0x014510A0,
0x074510B0, 0x40f000f0
}; };
static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
@ -1693,6 +1692,7 @@ static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
[STAC_DELL_M4_2] = dell_m4_2_pin_configs, [STAC_DELL_M4_2] = dell_m4_2_pin_configs,
[STAC_DELL_M4_3] = dell_m4_3_pin_configs, [STAC_DELL_M4_3] = dell_m4_3_pin_configs,
[STAC_HP_M4] = NULL, [STAC_HP_M4] = NULL,
[STAC_HP_DV4] = NULL,
[STAC_HP_DV5] = NULL, [STAC_HP_DV5] = NULL,
[STAC_HP_HDX] = NULL, [STAC_HP_HDX] = NULL,
[STAC_HP_DV4_1222NR] = NULL, [STAC_HP_DV4_1222NR] = NULL,
@ -1705,6 +1705,7 @@ static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
[STAC_DELL_M4_2] = "dell-m4-2", [STAC_DELL_M4_2] = "dell-m4-2",
[STAC_DELL_M4_3] = "dell-m4-3", [STAC_DELL_M4_3] = "dell-m4-3",
[STAC_HP_M4] = "hp-m4", [STAC_HP_M4] = "hp-m4",
[STAC_HP_DV4] = "hp-dv4",
[STAC_HP_DV5] = "hp-dv5", [STAC_HP_DV5] = "hp-dv5",
[STAC_HP_HDX] = "hp-hdx", [STAC_HP_HDX] = "hp-hdx",
[STAC_HP_DV4_1222NR] = "hp-dv4-1222nr", [STAC_HP_DV4_1222NR] = "hp-dv4-1222nr",
@ -1723,7 +1724,7 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080, SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080,
"HP", STAC_HP_DV5), "HP", STAC_HP_DV5),
SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0, SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0,
"HP dv4-7", STAC_HP_DV5), "HP dv4-7", STAC_HP_DV4),
SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3600, SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3600,
"HP dv4-7", STAC_HP_DV5), "HP dv4-7", STAC_HP_DV5),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3610, SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3610,
@ -4768,6 +4769,9 @@ static void set_hp_led_gpio(struct hda_codec *codec)
struct sigmatel_spec *spec = codec->spec; struct sigmatel_spec *spec = codec->spec;
unsigned int gpio; unsigned int gpio;
if (spec->gpio_led)
return;
gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP); gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP);
gpio &= AC_GPIO_IO_COUNT; gpio &= AC_GPIO_IO_COUNT;
if (gpio > 3) if (gpio > 3)
@ -5677,6 +5681,9 @@ again:
spec->num_smuxes = 1; spec->num_smuxes = 1;
spec->num_dmuxes = 1; spec->num_dmuxes = 1;
/* fallthrough */ /* fallthrough */
case STAC_HP_DV4:
spec->gpio_led = 0x01;
/* fallthrough */
case STAC_HP_DV5: case STAC_HP_DV5:
snd_hda_codec_set_pincfg(codec, 0x0d, 0x90170010); snd_hda_codec_set_pincfg(codec, 0x0d, 0x90170010);
stac92xx_auto_set_pinctl(codec, 0x0d, AC_PINCTL_OUT_EN); stac92xx_auto_set_pinctl(codec, 0x0d, AC_PINCTL_OUT_EN);
@ -5690,6 +5697,7 @@ again:
spec->num_dmics = 1; spec->num_dmics = 1;
spec->num_dmuxes = 1; spec->num_dmuxes = 1;
spec->num_smuxes = 1; spec->num_smuxes = 1;
spec->gpio_led = 0x08;
break; break;
} }
@ -5746,7 +5754,8 @@ again:
} }
/* enable bass on HP dv7 */ /* enable bass on HP dv7 */
if (spec->board_config == STAC_HP_DV5) { if (spec->board_config == STAC_HP_DV4 ||
spec->board_config == STAC_HP_DV5) {
unsigned int cap; unsigned int cap;
cap = snd_hda_param_read(codec, 0x1, AC_PAR_GPIO_CAP); cap = snd_hda_param_read(codec, 0x1, AC_PAR_GPIO_CAP);
cap &= AC_GPIO_IO_COUNT; cap &= AC_GPIO_IO_COUNT;