aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-01-22 11:40:18 -0500
committerTakashi Iwai <tiwai@suse.de>2009-01-22 11:41:14 -0500
commitd9a4268ee92ba1a2355c892a3add1fa66856b510 (patch)
tree99850586393b9f598ce2e207ba0b6a7ea6a544b6
parenteda6829394cd1755c145583bd506ac244201a2c4 (diff)
ALSA: hda - Add quirk for Gateway %1616 laptop
Gateway T1616 laptop needs EAPD always on while the current STAC9205 code turns off per HP plug. Added a new model "eapd" to keep it on. Reference: Novell bnc#467597 https://bugzilla.novell.com/show_bug.cgi?id=467597 Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt1
-rw-r--r--sound/pci/hda/patch_sigmatel.c10
2 files changed, 10 insertions, 1 deletions
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index 75914bcdce7..ef6b22e2541 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -285,6 +285,7 @@ STAC9205/9254
285 dell-m42 Dell (unknown) 285 dell-m42 Dell (unknown)
286 dell-m43 Dell Precision 286 dell-m43 Dell Precision
287 dell-m44 Dell Inspiron 287 dell-m44 Dell Inspiron
288 eapd Keep EAPD on (e.g. Gateway T1616)
288 289
289STAC9220/9221 290STAC9220/9221
290============= 291=============
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 3f85731055c..ed2fa431b03 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -66,6 +66,7 @@ enum {
66 STAC_9205_DELL_M42, 66 STAC_9205_DELL_M42,
67 STAC_9205_DELL_M43, 67 STAC_9205_DELL_M43,
68 STAC_9205_DELL_M44, 68 STAC_9205_DELL_M44,
69 STAC_9205_EAPD,
69 STAC_9205_MODELS 70 STAC_9205_MODELS
70}; 71};
71 72
@@ -2240,6 +2241,7 @@ static unsigned int *stac9205_brd_tbl[STAC_9205_MODELS] = {
2240 [STAC_9205_DELL_M42] = dell_9205_m42_pin_configs, 2241 [STAC_9205_DELL_M42] = dell_9205_m42_pin_configs,
2241 [STAC_9205_DELL_M43] = dell_9205_m43_pin_configs, 2242 [STAC_9205_DELL_M43] = dell_9205_m43_pin_configs,
2242 [STAC_9205_DELL_M44] = dell_9205_m44_pin_configs, 2243 [STAC_9205_DELL_M44] = dell_9205_m44_pin_configs,
2244 [STAC_9205_EAPD] = NULL,
2243}; 2245};
2244 2246
2245static const char *stac9205_models[STAC_9205_MODELS] = { 2247static const char *stac9205_models[STAC_9205_MODELS] = {
@@ -2247,12 +2249,14 @@ static const char *stac9205_models[STAC_9205_MODELS] = {
2247 [STAC_9205_DELL_M42] = "dell-m42", 2249 [STAC_9205_DELL_M42] = "dell-m42",
2248 [STAC_9205_DELL_M43] = "dell-m43", 2250 [STAC_9205_DELL_M43] = "dell-m43",
2249 [STAC_9205_DELL_M44] = "dell-m44", 2251 [STAC_9205_DELL_M44] = "dell-m44",
2252 [STAC_9205_EAPD] = "eapd",
2250}; 2253};
2251 2254
2252static struct snd_pci_quirk stac9205_cfg_tbl[] = { 2255static struct snd_pci_quirk stac9205_cfg_tbl[] = {
2253 /* SigmaTel reference board */ 2256 /* SigmaTel reference board */
2254 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 2257 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
2255 "DFI LanParty", STAC_9205_REF), 2258 "DFI LanParty", STAC_9205_REF),
2259 /* Dell */
2256 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f1, 2260 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f1,
2257 "unknown Dell", STAC_9205_DELL_M42), 2261 "unknown Dell", STAC_9205_DELL_M42),
2258 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f2, 2262 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f2,
@@ -2283,6 +2287,8 @@ static struct snd_pci_quirk stac9205_cfg_tbl[] = {
2283 "Dell Inspiron", STAC_9205_DELL_M44), 2287 "Dell Inspiron", STAC_9205_DELL_M44),
2284 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228, 2288 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228,
2285 "Dell Vostro 1500", STAC_9205_DELL_M42), 2289 "Dell Vostro 1500", STAC_9205_DELL_M42),
2290 /* Gateway */
2291 SND_PCI_QUIRK(0x107b, 0x0565, "Gateway T1616", STAC_9205_EAPD),
2286 {} /* terminator */ 2292 {} /* terminator */
2287}; 2293};
2288 2294
@@ -5320,7 +5326,9 @@ static int patch_stac9205(struct hda_codec *codec)
5320 5326
5321 spec->aloopback_mask = 0x40; 5327 spec->aloopback_mask = 0x40;
5322 spec->aloopback_shift = 0; 5328 spec->aloopback_shift = 0;
5323 spec->eapd_switch = 1; 5329 /* Turn on/off EAPD per HP plugging */
5330 if (spec->board_config != STAC_9205_EAPD)
5331 spec->eapd_switch = 1;
5324 spec->multiout.dac_nids = spec->dac_nids; 5332 spec->multiout.dac_nids = spec->dac_nids;
5325 5333
5326 switch (spec->board_config){ 5334 switch (spec->board_config){