diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2014-03-05 22:16:17 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2014-04-02 00:59:01 +0100 |
commit | 54a19ec5469fcaf9a91cffb2a81eae2d13f46726 (patch) | |
tree | 37960fb7dd36f1820001aca24c095bea89b97be7 /sound | |
parent | 935e68c6e197e3c2ed906fba935246a81f0b30d9 (diff) | |
download | lwn-54a19ec5469fcaf9a91cffb2a81eae2d13f46726.tar.gz lwn-54a19ec5469fcaf9a91cffb2a81eae2d13f46726.zip |
ALSA: oxygen: Xonar DG(X): modify DAC routing
commit 1f91ecc14deea9461aca93273d78871ec4d98fcd upstream.
When selecting the audio output destinations (headphones, FP headphones,
multichannel output), unnecessary I2S channels are digitally muted to
avoid invalid signal levels on the other outputs.
Signed-off-by: Roman Volkov <v1ron@mail.ru>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/oxygen/xonar_dg.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/oxygen/xonar_dg.c b/sound/pci/oxygen/xonar_dg.c index bbbb24e1bfb0..59eda0a3cce5 100644 --- a/sound/pci/oxygen/xonar_dg.c +++ b/sound/pci/oxygen/xonar_dg.c @@ -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; |