diff options
author | Tobin Davis <tdavis@dsl-only.net> | 2007-05-17 09:36:34 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-05-31 09:06:01 +0200 |
commit | 2c11f955b27edaf0270185781391abe6f39b7ed0 (patch) | |
tree | 80f0c14fe854150d70204d05216f859588af0131 /sound | |
parent | 3f0a6766e0cc5a577805732e5adb50a585c58175 (diff) |
[ALSA] HDA: Add support for Gateway NX860
This patch adds support for the Gateway NX860 system.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index a6a0a80edc3..6e6818c8db1 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -51,6 +51,7 @@ enum { STAC_925x_REF, STAC_M2_2, STAC_MA6, + STAC_PA6, STAC_925x_MODELS }; @@ -152,6 +153,10 @@ static hda_nid_t stac925x_dac_nids[1] = { 0x02, }; +static hda_nid_t stac925x_dmic_nids[1] = { + 0x15, +}; + static hda_nid_t stac922x_adc_nids[2] = { 0x06, 0x07, }; @@ -482,6 +487,11 @@ static unsigned int stac925x_MA6_pin_configs[8] = { 0x90a70320, 0x90100211, 0x400003f1, 0x9033032e, }; +static unsigned int stac925x_PA6_pin_configs[8] = { + 0x40c003f0, 0x424503f2, 0x01813022, 0x02a19021, + 0x50a103f0, 0x90100211, 0x400003f1, 0x9033032e, +}; + static unsigned int stac925xM2_2_pin_configs[8] = { 0x40c003f3, 0x424503f2, 0x041800f4, 0x02a19020, 0x50a103F0, 0x90100210, 0x400003f1, 0x9033032e, @@ -491,20 +501,24 @@ static unsigned int *stac925x_brd_tbl[STAC_925x_MODELS] = { [STAC_REF] = ref925x_pin_configs, [STAC_M2_2] = stac925xM2_2_pin_configs, [STAC_MA6] = stac925x_MA6_pin_configs, + [STAC_PA6] = stac925x_PA6_pin_configs, }; static const char *stac925x_models[STAC_925x_MODELS] = { [STAC_REF] = "ref", [STAC_M2_2] = "m2-2", [STAC_MA6] = "m6", + [STAC_PA6] = "pa6", }; static struct snd_pci_quirk stac925x_cfg_tbl[] = { /* SigmaTel reference board */ SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, "DFI LanParty", STAC_REF), + SND_PCI_QUIRK(0x8384, 0x7632, "Stac9202 Reference Board", STAC_REF), SND_PCI_QUIRK(0x107b, 0x0316, "Gateway M255", STAC_REF), SND_PCI_QUIRK(0x107b, 0x0366, "Gateway MP6954", STAC_REF), SND_PCI_QUIRK(0x107b, 0x0461, "Gateway NX560XL", STAC_MA6), + SND_PCI_QUIRK(0x107b, 0x0681, "Gateway NX860", STAC_PA6), SND_PCI_QUIRK(0x1002, 0x437b, "Gateway MX6453", STAC_M2_2), {} /* terminator */ }; @@ -1911,7 +1925,8 @@ static int patch_stac925x(struct hda_codec *codec) stac925x_cfg_tbl); again: if (spec->board_config < 0) { - snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC925x, using BIOS defaults\n"); + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC925x," + "using BIOS defaults\n"); err = stac92xx_save_bios_config_regs(codec); if (err < 0) { stac92xx_free(codec); @@ -1929,7 +1944,18 @@ static int patch_stac925x(struct hda_codec *codec) spec->adc_nids = stac925x_adc_nids; spec->mux_nids = stac925x_mux_nids; spec->num_muxes = 1; - spec->num_dmics = 0; + switch (codec->vendor_id) { + case 0x83847632: /* STAC9202 */ + case 0x83847633: /* STAC9202D */ + case 0x83847636: /* STAC9251 */ + case 0x83847637: /* STAC9251D */ + spec->num_dmics = 1; + spec->dmic_nids = stac925x_dmic_nids; + break; + default: + spec->num_dmics = 0; + break; + } spec->init = stac925x_core_init; spec->mixer = stac925x_mixer; |