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:
Родитель
4a9678909b
Коммит
842ae63800
|
@ -380,6 +380,7 @@ STAC92HD73*
|
||||||
dell-m6-dmic Dell desktops/laptops with digital mics
|
dell-m6-dmic Dell desktops/laptops with digital mics
|
||||||
dell-m6 Dell desktops/laptops with both type of mics
|
dell-m6 Dell desktops/laptops with both type of mics
|
||||||
dell-eq Dell desktops/laptops
|
dell-eq Dell desktops/laptops
|
||||||
|
alienware Alienware M17x
|
||||||
auto BIOS setup (default)
|
auto BIOS setup (default)
|
||||||
|
|
||||||
STAC92HD83*
|
STAC92HD83*
|
||||||
|
|
|
@ -83,6 +83,7 @@ enum {
|
||||||
STAC_DELL_M6_DMIC,
|
STAC_DELL_M6_DMIC,
|
||||||
STAC_DELL_M6_BOTH,
|
STAC_DELL_M6_BOTH,
|
||||||
STAC_DELL_EQ,
|
STAC_DELL_EQ,
|
||||||
|
STAC_ALIENWARE_M17X,
|
||||||
STAC_92HD73XX_MODELS
|
STAC_92HD73XX_MODELS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1513,12 +1514,20 @@ static unsigned int dell_m6_pin_configs[13] = {
|
||||||
0x4f0000f0,
|
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] = {
|
static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
|
||||||
[STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
|
[STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
|
||||||
[STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
|
[STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
|
||||||
[STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
|
[STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
|
||||||
[STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
|
[STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
|
||||||
[STAC_DELL_EQ] = 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] = {
|
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_DMIC] = "dell-m6-dmic",
|
||||||
[STAC_DELL_M6_BOTH] = "dell-m6",
|
[STAC_DELL_M6_BOTH] = "dell-m6",
|
||||||
[STAC_DELL_EQ] = "dell-eq",
|
[STAC_DELL_EQ] = "dell-eq",
|
||||||
|
[STAC_ALIENWARE_M17X] = "alienware",
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
|
static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
|
||||||
|
@ -1567,6 +1577,12 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
|
||||||
{} /* terminator */
|
{} /* 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] = {
|
static unsigned int ref92hd83xxx_pin_configs[10] = {
|
||||||
0x02214030, 0x02211010, 0x02a19020, 0x02170130,
|
0x02214030, 0x02211010, 0x02a19020, 0x02170130,
|
||||||
0x01014050, 0x01819040, 0x01014020, 0x90a3014e,
|
0x01014050, 0x01819040, 0x01014020, 0x90a3014e,
|
||||||
|
@ -4909,6 +4925,12 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
|
||||||
STAC_92HD73XX_MODELS,
|
STAC_92HD73XX_MODELS,
|
||||||
stac92hd73xx_models,
|
stac92hd73xx_models,
|
||||||
stac92hd73xx_cfg_tbl);
|
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:
|
again:
|
||||||
if (spec->board_config < 0)
|
if (spec->board_config < 0)
|
||||||
snd_printdd(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n",
|
snd_printdd(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n",
|
||||||
|
@ -4983,6 +5005,11 @@ again:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
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:
|
default:
|
||||||
spec->num_dmics = STAC92HD73XX_NUM_DMICS;
|
spec->num_dmics = STAC92HD73XX_NUM_DMICS;
|
||||||
spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
|
spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче