ALSA: hda - Fix audio playback support on HP Zephyr system
Enables port E of IDT 92HD91 codec as output and sets correct output phase between ports E and D and high pass filter. Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
6edc59e602
Коммит
5556e14708
|
@ -99,6 +99,7 @@ enum {
|
|||
STAC_DELL_VOSTRO_3500,
|
||||
STAC_92HD83XXX_HP_cNB11_INTQUAD,
|
||||
STAC_HP_DV7_4000,
|
||||
STAC_HP_ZEPHYR,
|
||||
STAC_92HD83XXX_MODELS
|
||||
};
|
||||
|
||||
|
@ -894,6 +895,13 @@ static const struct hda_verb stac92hd83xxx_core_init[] = {
|
|||
{}
|
||||
};
|
||||
|
||||
static const struct hda_verb stac92hd83xxx_hp_zephyr_init[] = {
|
||||
{ 0x22, 0x785, 0x43 },
|
||||
{ 0x22, 0x782, 0xe0 },
|
||||
{ 0x22, 0x795, 0x00 },
|
||||
{}
|
||||
};
|
||||
|
||||
static const struct hda_verb stac92hd71bxx_core_init[] = {
|
||||
/* set master volume and direct control */
|
||||
{ 0x28, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
|
||||
|
@ -1621,6 +1629,12 @@ static const unsigned int hp_dv7_4000_pin_configs[10] = {
|
|||
0x40f000f0, 0x40f000f0,
|
||||
};
|
||||
|
||||
static const unsigned int hp_zephyr_pin_configs[10] = {
|
||||
0x01813050, 0x0421201f, 0x04a1205e, 0x96130310,
|
||||
0x96130310, 0x0101401f, 0x1111611f, 0xd5a30130,
|
||||
0, 0,
|
||||
};
|
||||
|
||||
static const unsigned int hp_cNB11_intquad_pin_configs[10] = {
|
||||
0x40f000f0, 0x0221101f, 0x02a11020, 0x92170110,
|
||||
0x40f000f0, 0x92170110, 0x40f000f0, 0xd5a30130,
|
||||
|
@ -1634,6 +1648,7 @@ static const unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = {
|
|||
[STAC_DELL_VOSTRO_3500] = dell_vostro_3500_pin_configs,
|
||||
[STAC_92HD83XXX_HP_cNB11_INTQUAD] = hp_cNB11_intquad_pin_configs,
|
||||
[STAC_HP_DV7_4000] = hp_dv7_4000_pin_configs,
|
||||
[STAC_HP_ZEPHYR] = hp_zephyr_pin_configs,
|
||||
};
|
||||
|
||||
static const char * const stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = {
|
||||
|
@ -1644,6 +1659,7 @@ static const char * const stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = {
|
|||
[STAC_DELL_VOSTRO_3500] = "dell-vostro-3500",
|
||||
[STAC_92HD83XXX_HP_cNB11_INTQUAD] = "hp_cNB11_intquad",
|
||||
[STAC_HP_DV7_4000] = "hp-dv7-4000",
|
||||
[STAC_HP_ZEPHYR] = "hp-zephyr",
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
|
||||
|
@ -1696,6 +1712,14 @@ static const struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
|
|||
"HP", STAC_92HD83XXX_HP_cNB11_INTQUAD),
|
||||
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3593,
|
||||
"HP", STAC_92HD83XXX_HP_cNB11_INTQUAD),
|
||||
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3561,
|
||||
"HP", STAC_HP_ZEPHYR),
|
||||
{} /* terminator */
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk stac92hd83xxx_codec_id_cfg_tbl[] = {
|
||||
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3561,
|
||||
"HP", STAC_HP_ZEPHYR),
|
||||
{} /* terminator */
|
||||
};
|
||||
|
||||
|
@ -5565,6 +5589,12 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
|
|||
STAC_92HD83XXX_MODELS,
|
||||
stac92hd83xxx_models,
|
||||
stac92hd83xxx_cfg_tbl);
|
||||
/* check codec subsystem id if not found */
|
||||
if (spec->board_config < 0)
|
||||
spec->board_config =
|
||||
snd_hda_check_board_codec_sid_config(codec,
|
||||
STAC_92HD83XXX_MODELS, stac92hd83xxx_models,
|
||||
stac92hd83xxx_codec_id_cfg_tbl);
|
||||
again:
|
||||
if (spec->board_config < 0)
|
||||
snd_printdd(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n",
|
||||
|
@ -5575,6 +5605,12 @@ again:
|
|||
|
||||
codec->patch_ops = stac92xx_patch_ops;
|
||||
|
||||
switch (spec->board_config) {
|
||||
case STAC_HP_ZEPHYR:
|
||||
spec->init = stac92hd83xxx_hp_zephyr_init;
|
||||
break;
|
||||
}
|
||||
|
||||
if (find_mute_led_cfg(codec, -1/*no default cfg*/))
|
||||
snd_printd("mute LED gpio %d polarity %d\n",
|
||||
spec->gpio_led,
|
||||
|
|
Загрузка…
Ссылка в новой задаче