]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.25/patches.drivers/alsa-hda-alc269-fsc-amilo
Revert "Move xen patchset to new version's subdir."
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.drivers / alsa-hda-alc269-fsc-amilo
CommitLineData
00e5a55c
BS
1From: Takashi Iwai <tiwai@suse.de>
2Subject: ALSA: hda - Add ALC269 fujitsu model
3Patch-mainline:
4References: bnc#440626
5
6Added a dedicated quirk model for FSC Amilo with ALC269.
7The patch is almost same as in sound git tree, but it has a fix
8for capture mixer setup (missing patch-series in SUSE kernel tree).
9
10Signed-off-by: Takashi Iwai <tiwai@suse.de>
11
12---
13
14---
15 Documentation/sound/alsa/ALSA-Configuration.txt | 2 +
16 sound/pci/hda/patch_realtek.c | 29 +++++++++++++++++++++++-
17 2 files changed, 30 insertions(+), 1 deletion(-)
18
19--- a/Documentation/sound/alsa/ALSA-Configuration.txt
20+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
21@@ -857,6 +857,8 @@ Prior to version 0.9.0rc4 options had a
22 quanta Quanta FL1
23 eeepc-p703 ASUS Eeepc P703 P900A
24 eeepc-p901 ASUS Eeepc P901 S101
25+ fujitsu FSC Amilo
26+ auto auto-config reading BIOS (default)
27
28 ALC662/663
29 3stack-dig 3-stack (2-channel) with SPDIF
30--- a/sound/pci/hda/patch_realtek.c
31+++ b/sound/pci/hda/patch_realtek.c
32@@ -130,6 +130,7 @@ enum {
33 ALC269_QUANTA_FL1,
34 ALC269_ASUS_EEEPC_P703,
35 ALC269_ASUS_EEEPC_P901,
36+ ALC269_FUJITSU,
37 ALC269_AUTO,
38 ALC269_MODEL_LAST /* last tag */
39 };
40@@ -1621,6 +1622,7 @@ static const char *alc_slave_vols[] = {
41 "Speaker Playback Volume",
42 "Mono Playback Volume",
43 "Line-Out Playback Volume",
44+ "PCM Playback Volume",
45 NULL,
46 };
47
48@@ -11938,6 +11940,15 @@ static struct snd_kcontrol_new alc269_ca
49 static struct snd_kcontrol_new alc269_epc_capture_mixer[] = {
50 HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT),
51 HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT),
52+ HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT),
53+ { } /* end */
54+};
55+
56+/* FSC amilo */
57+static struct snd_kcontrol_new alc269_fujitsu_mixer[] = {
58+ HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT),
59+ HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT),
60+ HDA_BIND_VOL("PCM Playback Volume", &alc269_epc_bind_vol),
61 { } /* end */
62 };
63
64@@ -12360,7 +12371,8 @@ static const char *alc269_models[ALC269_
65 [ALC269_BASIC] = "basic",
66 [ALC269_QUANTA_FL1] = "quanta",
67 [ALC269_ASUS_EEEPC_P703] = "eeepc-p703",
68- [ALC269_ASUS_EEEPC_P901] = "eeepc-p901"
69+ [ALC269_ASUS_EEEPC_P901] = "eeepc-p901",
70+ [ALC269_FUJITSU] = "fujitsu"
71 };
72
73 static struct snd_pci_quirk alc269_cfg_tbl[] = {
74@@ -12371,6 +12383,7 @@ static struct snd_pci_quirk alc269_cfg_t
75 ALC269_ASUS_EEEPC_P901),
76 SND_PCI_QUIRK(0x1043, 0x834a, "ASUS Eeepc S101",
77 ALC269_ASUS_EEEPC_P901),
78+ SND_PCI_QUIRK(0x1734, 0x115d, "FSC Amilo", ALC269_FUJITSU),
79 {}
80 };
81
82@@ -12423,6 +12436,20 @@ static struct alc_config_preset alc269_p
83 .unsol_event = alc269_eeepc_dmic_unsol_event,
84 .init_hook = alc269_eeepc_dmic_inithook,
85 },
86+ [ALC269_FUJITSU] = {
87+ .mixers = { alc269_fujitsu_mixer, alc269_beep_mixer,
88+ alc269_epc_capture_mixer },
89+ .init_verbs = { alc269_init_verbs,
90+ alc269_eeepc_dmic_init_verbs },
91+ .num_dacs = ARRAY_SIZE(alc269_dac_nids),
92+ .dac_nids = alc269_dac_nids,
93+ .hp_nid = 0x03,
94+ .num_channel_mode = ARRAY_SIZE(alc269_modes),
95+ .channel_mode = alc269_modes,
96+ .input_mux = &alc269_eeepc_dmic_capture_source,
97+ .unsol_event = alc269_eeepc_dmic_unsol_event,
98+ .init_hook = alc269_eeepc_dmic_inithook,
99+ },
100 };
101
102 static int patch_alc269(struct hda_codec *codec)