]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.drivers/alsa-hda-dell-92hd73xx-models
Changed checkfs to auto reboot after correctable fsck fixes.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / alsa-hda-dell-92hd73xx-models
1 From: Takashi Iwai <tiwai@suse.de>
2 Subject: ALSA: hda - Check model for Dell 92HD73xx laptops
3 Patch-mainline:
4 References: bnc#446025
5
6 Check the model type instead of PCI SSID for detection of the mic types
7 on Dell laptops with IDT 92HD73xx codecs. In this way, a new laptop
8 can be tested via model module option.
9
10 Signed-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;