diff options
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 29 |
2 files changed, 30 insertions, 1 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index e0e54a27fc10..fa8e9fadfaf4 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -857,6 +857,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
857 | quanta Quanta FL1 | 857 | quanta Quanta FL1 |
858 | eeepc-p703 ASUS Eeepc P703 P900A | 858 | eeepc-p703 ASUS Eeepc P703 P900A |
859 | eeepc-p901 ASUS Eeepc P901 S101 | 859 | eeepc-p901 ASUS Eeepc P901 S101 |
860 | fujitsu FSC Amilo | ||
861 | auto auto-config reading BIOS (default) | ||
860 | 862 | ||
861 | ALC662/663 | 863 | ALC662/663 |
862 | 3stack-dig 3-stack (2-channel) with SPDIF | 864 | 3stack-dig 3-stack (2-channel) with SPDIF |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 88e54db0582c..700fc8632c66 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -130,6 +130,7 @@ enum { | |||
130 | ALC269_QUANTA_FL1, | 130 | ALC269_QUANTA_FL1, |
131 | ALC269_ASUS_EEEPC_P703, | 131 | ALC269_ASUS_EEEPC_P703, |
132 | ALC269_ASUS_EEEPC_P901, | 132 | ALC269_ASUS_EEEPC_P901, |
133 | ALC269_FUJITSU, | ||
133 | ALC269_AUTO, | 134 | ALC269_AUTO, |
134 | ALC269_MODEL_LAST /* last tag */ | 135 | ALC269_MODEL_LAST /* last tag */ |
135 | }; | 136 | }; |
@@ -1726,6 +1727,7 @@ static const char *alc_slave_vols[] = { | |||
1726 | "Speaker Playback Volume", | 1727 | "Speaker Playback Volume", |
1727 | "Mono Playback Volume", | 1728 | "Mono Playback Volume", |
1728 | "Line-Out Playback Volume", | 1729 | "Line-Out Playback Volume", |
1730 | "PCM Playback Volume", | ||
1729 | NULL, | 1731 | NULL, |
1730 | }; | 1732 | }; |
1731 | 1733 | ||
@@ -11662,6 +11664,15 @@ static struct snd_kcontrol_new alc269_eeepc_mixer[] = { | |||
11662 | static struct snd_kcontrol_new alc269_epc_capture_mixer[] = { | 11664 | static struct snd_kcontrol_new alc269_epc_capture_mixer[] = { |
11663 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), | 11665 | HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), |
11664 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), | 11666 | HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), |
11667 | HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), | ||
11668 | { } /* end */ | ||
11669 | }; | ||
11670 | |||
11671 | /* FSC amilo */ | ||
11672 | static struct snd_kcontrol_new alc269_fujitsu_mixer[] = { | ||
11673 | HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), | ||
11674 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), | ||
11675 | HDA_BIND_VOL("PCM Playback Volume", &alc269_epc_bind_vol), | ||
11665 | { } /* end */ | 11676 | { } /* end */ |
11666 | }; | 11677 | }; |
11667 | 11678 | ||
@@ -12084,7 +12095,8 @@ static const char *alc269_models[ALC269_MODEL_LAST] = { | |||
12084 | [ALC269_BASIC] = "basic", | 12095 | [ALC269_BASIC] = "basic", |
12085 | [ALC269_QUANTA_FL1] = "quanta", | 12096 | [ALC269_QUANTA_FL1] = "quanta", |
12086 | [ALC269_ASUS_EEEPC_P703] = "eeepc-p703", | 12097 | [ALC269_ASUS_EEEPC_P703] = "eeepc-p703", |
12087 | [ALC269_ASUS_EEEPC_P901] = "eeepc-p901" | 12098 | [ALC269_ASUS_EEEPC_P901] = "eeepc-p901", |
12099 | [ALC269_FUJITSU] = "fujitsu" | ||
12088 | }; | 12100 | }; |
12089 | 12101 | ||
12090 | static struct snd_pci_quirk alc269_cfg_tbl[] = { | 12102 | static struct snd_pci_quirk alc269_cfg_tbl[] = { |
@@ -12095,6 +12107,7 @@ static struct snd_pci_quirk alc269_cfg_tbl[] = { | |||
12095 | ALC269_ASUS_EEEPC_P901), | 12107 | ALC269_ASUS_EEEPC_P901), |
12096 | SND_PCI_QUIRK(0x1043, 0x834a, "ASUS Eeepc S101", | 12108 | SND_PCI_QUIRK(0x1043, 0x834a, "ASUS Eeepc S101", |
12097 | ALC269_ASUS_EEEPC_P901), | 12109 | ALC269_ASUS_EEEPC_P901), |
12110 | SND_PCI_QUIRK(0x1734, 0x115d, "FSC Amilo", ALC269_FUJITSU), | ||
12098 | {} | 12111 | {} |
12099 | }; | 12112 | }; |
12100 | 12113 | ||
@@ -12149,6 +12162,20 @@ static struct alc_config_preset alc269_presets[] = { | |||
12149 | .unsol_event = alc269_eeepc_dmic_unsol_event, | 12162 | .unsol_event = alc269_eeepc_dmic_unsol_event, |
12150 | .init_hook = alc269_eeepc_dmic_inithook, | 12163 | .init_hook = alc269_eeepc_dmic_inithook, |
12151 | }, | 12164 | }, |
12165 | [ALC269_FUJITSU] = { | ||
12166 | .mixers = { alc269_fujitsu_mixer, alc269_beep_mixer }, | ||
12167 | .cap_mixer = alc269_epc_capture_mixer, | ||
12168 | .init_verbs = { alc269_init_verbs, | ||
12169 | alc269_eeepc_dmic_init_verbs }, | ||
12170 | .num_dacs = ARRAY_SIZE(alc269_dac_nids), | ||
12171 | .dac_nids = alc269_dac_nids, | ||
12172 | .hp_nid = 0x03, | ||
12173 | .num_channel_mode = ARRAY_SIZE(alc269_modes), | ||
12174 | .channel_mode = alc269_modes, | ||
12175 | .input_mux = &alc269_eeepc_dmic_capture_source, | ||
12176 | .unsol_event = alc269_eeepc_dmic_unsol_event, | ||
12177 | .init_hook = alc269_eeepc_dmic_inithook, | ||
12178 | }, | ||
12152 | }; | 12179 | }; |
12153 | 12180 | ||
12154 | static int patch_alc269(struct hda_codec *codec) | 12181 | static int patch_alc269(struct hda_codec *codec) |