]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.39/patches.drivers/alsa-hda-dell-92hd73xx-models
Fix oinkmaster patch.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / alsa-hda-dell-92hd73xx-models
CommitLineData
2cb7cef9
BS
1From: Takashi Iwai <tiwai@suse.de>
2Subject: ALSA: hda - Check model for Dell 92HD73xx laptops
3Patch-mainline:
4References: bnc#446025
5
6Check the model type instead of PCI SSID for detection of the mic types
7on Dell laptops with IDT 92HD73xx codecs. In this way, a new laptop
8can be tested via model module option.
9
10Signed-off-by: Takashi Iwai <tiwai@suse.de>
11
12---
13 Documentation/sound/alsa/ALSA-Configuration.txt | 4 +-
14 sound/pci/hda/patch_sigmatel.c | 47 +++++++++++++-----------
15 2 files changed, 29 insertions(+), 22 deletions(-)
16
17--- a/Documentation/sound/alsa/ALSA-Configuration.txt
18+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
19@@ -1080,7 +1080,9 @@ Prior to version 0.9.0rc4 options had a
20
21 STAC92HD73*
22 ref Reference board
23- dell-m6 Dell desktops
24+ dell-m6-amic Dell desktops/laptops with analog mics
25+ dell-m6-dmic Dell desktops/laptops with digital mics
26+ dell-m6 Dell desktops/laptops with both type of mics
27
28 STAC9872
29 vaio Setup for VAIO FE550G/SZ110
30--- a/sound/pci/hda/patch_sigmatel.c
31+++ b/sound/pci/hda/patch_sigmatel.c
32@@ -70,7 +70,9 @@ enum {
33
34 enum {
35 STAC_92HD73XX_REF,
36- STAC_DELL_M6,
37+ STAC_DELL_M6_AMIC,
38+ STAC_DELL_M6_DMIC,
39+ STAC_DELL_M6_BOTH,
40 STAC_DELL_EQ,
41 STAC_92HD73XX_MODELS
42 };
43@@ -1604,13 +1606,17 @@ static unsigned int dell_m6_pin_configs[
44
45 static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
46 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
47- [STAC_DELL_M6] = dell_m6_pin_configs,
48+ [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
49+ [STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
50+ [STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
51 [STAC_DELL_EQ] = dell_m6_pin_configs,
52 };
53
54 static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
55 [STAC_92HD73XX_REF] = "ref",
56- [STAC_DELL_M6] = "dell-m6",
57+ [STAC_DELL_M6_AMIC] = "dell-m6-amic",
58+ [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
59+ [STAC_DELL_M6_BOTH] = "dell-m6",
60 [STAC_DELL_EQ] = "dell-eq",
61 };
62
63@@ -1619,21 +1625,23 @@ static struct snd_pci_quirk stac92hd73xx
64 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
65 "DFI LanParty", STAC_92HD73XX_REF),
66 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
67- "Dell Studio 1535", STAC_DELL_M6),
68+ "Dell Studio 1535", STAC_DELL_M6_DMIC),
69 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
70- "unknown Dell", STAC_DELL_M6),
71+ "unknown Dell", STAC_DELL_M6_DMIC),
72 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
73- "unknown Dell", STAC_DELL_M6),
74+ "unknown Dell", STAC_DELL_M6_BOTH),
75 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257,
76- "unknown Dell", STAC_DELL_M6),
77+ "unknown Dell", STAC_DELL_M6_BOTH),
78 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e,
79- "unknown Dell", STAC_DELL_M6),
80+ "unknown Dell", STAC_DELL_M6_AMIC),
81 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f,
82- "unknown Dell", STAC_DELL_M6),
83+ "unknown Dell", STAC_DELL_M6_AMIC),
84 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
85- "unknown Dell", STAC_DELL_M6),
86+ "unknown Dell", STAC_DELL_M6_DMIC),
87+ SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272,
88+ "unknown Dell", STAC_DELL_M6_DMIC),
89 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
90- "Dell Studio 15", STAC_DELL_M6),
91+ "Dell Studio 1537", STAC_DELL_M6_DMIC),
92 {} /* terminator */
93 };
94
95@@ -4284,7 +4292,9 @@ again:
96 case STAC_DELL_EQ:
97 spec->init = dell_eq_core_init;
98 /* fallthru */
99- case STAC_DELL_M6:
100+ case STAC_DELL_M6_AMIC:
101+ case STAC_DELL_M6_DMIC:
102+ case STAC_DELL_M6_BOTH:
103 if (!spec->init)
104 spec->init = dell_m6_core_init;
105 spec->num_smuxes = 0;
106@@ -4292,23 +4302,18 @@ again:
107 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
108 spec->eapd_switch = 0;
109 spec->num_amps = 1;
110- switch (codec->subsystem_id) {
111- case 0x1028025e: /* Analog Mics */
112- case 0x1028025f:
113+ switch (spec->board_config) {
114+ case STAC_DELL_M6_AMIC: /* Analog Mics */
115 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
116 spec->num_dmics = 0;
117 spec->private_dimux.num_items = 1;
118 break;
119- case 0x10280271: /* Digital Mics */
120- case 0x10280272:
121- case 0x10280254:
122- case 0x10280255:
123+ case STAC_DELL_M6_DMIC: /* Digital Mics */
124 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
125 spec->num_dmics = 1;
126 spec->private_dimux.num_items = 2;
127 break;
128- case 0x10280256: /* Both */
129- case 0x10280057:
130+ case STAC_DELL_M6_BOTH: /* Both */
131 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
132 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
133 spec->num_dmics = 1;