These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / sound / pci / emu10k1 / emumixer.c
index 55e5716..076b117 100644 (file)
@@ -1741,7 +1741,7 @@ static int snd_audigy_capture_boost_put(struct snd_kcontrol *kcontrol,
 static struct snd_kcontrol_new snd_audigy_capture_boost =
 {
        .iface =        SNDRV_CTL_ELEM_IFACE_MIXER,
-       .name =         "Analog Capture Boost",
+       .name =         "Mic Extra Boost",
        .info =         snd_audigy_capture_boost_info,
        .get =          snd_audigy_capture_boost_get,
        .put =          snd_audigy_capture_boost_put
@@ -1819,8 +1819,6 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                 * the Philips ADC for 24bit capture */
                "PCM Playback Switch",
                "PCM Playback Volume",
-               "Master Mono Playback Switch",
-               "Master Mono Playback Volume",
                "Master Playback Switch",
                "Master Playback Volume",
                "PCM Out Path & Mute",
@@ -1830,10 +1828,16 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                "Capture Switch",
                "Capture Volume",
                "Mic Select",
+               "Headphone Playback Switch",
+               "Headphone Playback Volume",
+               "3D Control - Center",
+               "3D Control - Depth",
+               "3D Control - Switch",
                "Video Playback Switch",
                "Video Playback Volume",
                "Mic Playback Switch",
                "Mic Playback Volume",
+               "External Amplifier",
                NULL
        };
        static char *audigy_rename_ctls[] = {
@@ -1842,6 +1846,8 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                /* "Wave Capture Volume", "PCM Capture Volume", */
                "Wave Master Playback Volume", "Master Playback Volume",
                "AMic Playback Volume", "Mic Playback Volume",
+               "Master Mono Playback Switch", "Phone Output Playback Switch",
+               "Master Mono Playback Volume", "Phone Output Playback Volume",
                NULL
        };
        static char *audigy_rename_ctls_i2c_adc[] = {
@@ -1867,8 +1873,6 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                 * the Philips ADC for 24bit capture */
                "PCM Playback Switch",
                "PCM Playback Volume",
-               "Master Mono Playback Switch",
-               "Master Mono Playback Volume",
                "Capture Source",
                "Capture Switch",
                "Capture Volume",
@@ -1900,7 +1904,8 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                "Aux Playback Volume", "Aux Capture Volume",
                "Video Playback Switch", "Video Capture Switch",
                "Video Playback Volume", "Video Capture Volume",
-
+               "Master Mono Playback Switch", "Phone Output Playback Switch",
+               "Master Mono Playback Volume", "Phone Output Playback Volume",
                NULL
        };
 
@@ -1935,6 +1940,9 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                        snd_ac97_write_cache(emu->ac97, AC97_MASTER, 0x0000);
                        /* set capture source to mic */
                        snd_ac97_write_cache(emu->ac97, AC97_REC_SEL, 0x0000);
+                       /* set mono output (TAD) to mic */
+                       snd_ac97_update_bits(emu->ac97, AC97_GENERAL_PURPOSE,
+                               0x0200, 0x0200);
                        if (emu->card_capabilities->adc_1361t)
                                c = audigy_remove_ctls_1361t_adc;
                        else 
@@ -1996,11 +2004,6 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
                rename_ctl(card, "Analog Mix Capture Volume", "Line2 Capture Volume");
                rename_ctl(card, "Aux2 Capture Volume", "Line3 Capture Volume");
                rename_ctl(card, "Mic Capture Volume", "Unknown1 Capture Volume");
-               remove_ctl(card, "Headphone Playback Switch");
-               remove_ctl(card, "Headphone Playback Volume");
-               remove_ctl(card, "3D Control - Center");
-               remove_ctl(card, "3D Control - Depth");
-               remove_ctl(card, "3D Control - Switch");
        }
        if ((kctl = emu->ctl_send_routing = snd_ctl_new1(&snd_emu10k1_send_routing_control, emu)) == NULL)
                return -ENOMEM;