ALSA: hda - Add support of Alienware M17x laptop
Added the quirk for Alienware M17x with IDT 92HD73* codec chip. It has two HP and one line-out jack, one mic jack, a built-in speaker and a built-in mic. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4a9678909b
commit
842ae63800
2 changed files with 28 additions and 0 deletions
|
@ -380,6 +380,7 @@ STAC92HD73*
|
|||
dell-m6-dmic Dell desktops/laptops with digital mics
|
||||
dell-m6 Dell desktops/laptops with both type of mics
|
||||
dell-eq Dell desktops/laptops
|
||||
alienware Alienware M17x
|
||||
auto BIOS setup (default)
|
||||
|
||||
STAC92HD83*
|
||||
|
|
|
@ -83,6 +83,7 @@ enum {
|
|||
STAC_DELL_M6_DMIC,
|
||||
STAC_DELL_M6_BOTH,
|
||||
STAC_DELL_EQ,
|
||||
STAC_ALIENWARE_M17X,
|
||||
STAC_92HD73XX_MODELS
|
||||
};
|
||||
|
||||
|
@ -1513,12 +1514,20 @@ static unsigned int dell_m6_pin_configs[13] = {
|
|||
0x4f0000f0,
|
||||
};
|
||||
|
||||
static unsigned int alienware_m17x_pin_configs[13] = {
|
||||
0x0321101f, 0x0321101f, 0x03a11020, 0x03014020,
|
||||
0x90170110, 0x4f0000f0, 0x4f0000f0, 0x4f0000f0,
|
||||
0x4f0000f0, 0x90a60160, 0x4f0000f0, 0x4f0000f0,
|
||||
0x904601b0,
|
||||
};
|
||||
|
||||
static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
|
||||
[STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
|
||||
[STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
|
||||
[STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
|
||||
[STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
|
||||
[STAC_DELL_EQ] = dell_m6_pin_configs,
|
||||
[STAC_ALIENWARE_M17X] = alienware_m17x_pin_configs,
|
||||
};
|
||||
|
||||
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
|
||||
|
@ -1530,6 +1539,7 @@ static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
|
|||
[STAC_DELL_M6_DMIC] = "dell-m6-dmic",
|
||||
[STAC_DELL_M6_BOTH] = "dell-m6",
|
||||
[STAC_DELL_EQ] = "dell-eq",
|
||||
[STAC_ALIENWARE_M17X] = "alienware",
|
||||
};
|
||||
|
||||
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
|
||||
|
@ -1567,6 +1577,12 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
|
|||
{} /* terminator */
|
||||
};
|
||||
|
||||
static struct snd_pci_quirk stac92hd73xx_codec_id_cfg_tbl[] = {
|
||||
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a1,
|
||||
"Alienware M17x", STAC_ALIENWARE_M17X),
|
||||
{} /* terminator */
|
||||
};
|
||||
|
||||
static unsigned int ref92hd83xxx_pin_configs[10] = {
|
||||
0x02214030, 0x02211010, 0x02a19020, 0x02170130,
|
||||
0x01014050, 0x01819040, 0x01014020, 0x90a3014e,
|
||||
|
@ -4909,6 +4925,12 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
|
|||
STAC_92HD73XX_MODELS,
|
||||
stac92hd73xx_models,
|
||||
stac92hd73xx_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_92HD73XX_MODELS, stac92hd73xx_models,
|
||||
stac92hd73xx_codec_id_cfg_tbl);
|
||||
again:
|
||||
if (spec->board_config < 0)
|
||||
snd_printdd(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n",
|
||||
|
@ -4983,6 +5005,11 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case STAC_ALIENWARE_M17X:
|
||||
spec->num_dmics = STAC92HD73XX_NUM_DMICS;
|
||||
spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
|
||||
spec->eapd_switch = 0;
|
||||
break;
|
||||
default:
|
||||
spec->num_dmics = STAC92HD73XX_NUM_DMICS;
|
||||
spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
|
||||
|
|
Loading…
Reference in a new issue