ALSA: hda - Add ALC299 fujitsu preset model
Takashi Iwai [Mon, 3 Nov 2008 16:39:46 +0000 (17:39 +0100)]
Added a preset model for FSC Amilo with ALC269 codec chip.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

Documentation/sound/alsa/ALSA-Configuration.txt
sound/pci/hda/patch_realtek.c

index e0e54a2..fa8e9fa 100644 (file)
@@ -857,6 +857,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
          quanta        Quanta FL1
          eeepc-p703    ASUS Eeepc P703 P900A
          eeepc-p901    ASUS Eeepc P901 S101
+         fujitsu       FSC Amilo
+         auto          auto-config reading BIOS (default)
 
        ALC662/663
          3stack-dig    3-stack (2-channel) with SPDIF
index 88e54db..700fc86 100644 (file)
@@ -130,6 +130,7 @@ enum {
        ALC269_QUANTA_FL1,
        ALC269_ASUS_EEEPC_P703,
        ALC269_ASUS_EEEPC_P901,
+       ALC269_FUJITSU,
        ALC269_AUTO,
        ALC269_MODEL_LAST /* last tag */
 };
@@ -1726,6 +1727,7 @@ static const char *alc_slave_vols[] = {
        "Speaker Playback Volume",
        "Mono Playback Volume",
        "Line-Out Playback Volume",
+       "PCM Playback Volume",
        NULL,
 };
 
@@ -11662,6 +11664,15 @@ static struct snd_kcontrol_new alc269_eeepc_mixer[] = {
 static struct snd_kcontrol_new alc269_epc_capture_mixer[] = {
        HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT),
        HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT),
+       HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT),
+       { } /* end */
+};
+
+/* FSC amilo */
+static struct snd_kcontrol_new alc269_fujitsu_mixer[] = {
+       HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT),
+       HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT),
+       HDA_BIND_VOL("PCM Playback Volume", &alc269_epc_bind_vol),
        { } /* end */
 };
 
@@ -12084,7 +12095,8 @@ static const char *alc269_models[ALC269_MODEL_LAST] = {
        [ALC269_BASIC]                  = "basic",
        [ALC269_QUANTA_FL1]             = "quanta",
        [ALC269_ASUS_EEEPC_P703]        = "eeepc-p703",
-       [ALC269_ASUS_EEEPC_P901]        = "eeepc-p901"
+       [ALC269_ASUS_EEEPC_P901]        = "eeepc-p901",
+       [ALC269_FUJITSU]                = "fujitsu"
 };
 
 static struct snd_pci_quirk alc269_cfg_tbl[] = {
@@ -12095,6 +12107,7 @@ static struct snd_pci_quirk alc269_cfg_tbl[] = {
                      ALC269_ASUS_EEEPC_P901),
        SND_PCI_QUIRK(0x1043, 0x834a, "ASUS Eeepc S101",
                      ALC269_ASUS_EEEPC_P901),
+       SND_PCI_QUIRK(0x1734, 0x115d, "FSC Amilo", ALC269_FUJITSU),
        {}
 };
 
@@ -12149,6 +12162,20 @@ static struct alc_config_preset alc269_presets[] = {
                .unsol_event = alc269_eeepc_dmic_unsol_event,
                .init_hook = alc269_eeepc_dmic_inithook,
        },
+       [ALC269_FUJITSU] = {
+               .mixers = { alc269_fujitsu_mixer, alc269_beep_mixer },
+               .cap_mixer = alc269_epc_capture_mixer,
+               .init_verbs = { alc269_init_verbs,
+                               alc269_eeepc_dmic_init_verbs },
+               .num_dacs = ARRAY_SIZE(alc269_dac_nids),
+               .dac_nids = alc269_dac_nids,
+               .hp_nid = 0x03,
+               .num_channel_mode = ARRAY_SIZE(alc269_modes),
+               .channel_mode = alc269_modes,
+               .input_mux = &alc269_eeepc_dmic_capture_source,
+               .unsol_event = alc269_eeepc_dmic_unsol_event,
+               .init_hook = alc269_eeepc_dmic_inithook,
+       },
 };
 
 static int patch_alc269(struct hda_codec *codec)