]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: oxygen: modify adjust_dg_dac_routing function
authorRoman Volkov <v1ron@mail.ru>
Fri, 24 Jan 2014 12:18:11 +0000 (16:18 +0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Mar 2014 04:37:08 +0000 (21:37 -0700)
commit 1f91ecc14deea9461aca93273d78871ec4d98fcd upstream.

When selecting the audio output destinations (headphones,
FP headphones, multichannel output), the channel routing
should be changed depending on what destination selected.
Also unnecessary I2S channels are digitally muted. This
function called when the user selects the destination
in the ALSA mixer.

Signed-off-by: Roman Volkov <v1ron@mail.ru>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/pci/oxygen/xonar_dg.c

index 7c61b5a0f0b3bef6c8e885144bdaa2d3a831c258..71527467de05fc483d7826f2eb7de08a25757110 100644 (file)
@@ -294,6 +294,16 @@ static int output_switch_put(struct snd_kcontrol *ctl,
                oxygen_write16_masked(chip, OXYGEN_GPIO_DATA,
                                      data->output_sel == 1 ? GPIO_HP_REAR : 0,
                                      GPIO_HP_REAR);
+               oxygen_write8_masked(chip, OXYGEN_PLAY_ROUTING,
+                                    data->output_sel == 0 ?
+                                    OXYGEN_PLAY_MUTE01 :
+                                    OXYGEN_PLAY_MUTE23 |
+                                    OXYGEN_PLAY_MUTE45 |
+                                    OXYGEN_PLAY_MUTE67,
+                                    OXYGEN_PLAY_MUTE01 |
+                                    OXYGEN_PLAY_MUTE23 |
+                                    OXYGEN_PLAY_MUTE45 |
+                                    OXYGEN_PLAY_MUTE67);
        }
        mutex_unlock(&chip->mutex);
        return changed;