aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Volkov <v1ron@mail.ru>2014-01-24 07:18:11 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-24 00:38:20 -0400
commit4010fe8e338981f0f6192cb80758d7f4abdbe712 (patch)
tree80e5637e5c7d5d30c6f4d166108b0a538d8636da
parent0e48f06cf0a1b55cd2dcc432ccfb13174705fcc2 (diff)
ALSA: oxygen: modify adjust_dg_dac_routing function
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>
-rw-r--r--sound/pci/oxygen/xonar_dg.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/oxygen/xonar_dg.c b/sound/pci/oxygen/xonar_dg.c
index 5519b8f0dad0..eb7ad7706205 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,
294 oxygen_write16_masked(chip, OXYGEN_GPIO_DATA, 294 oxygen_write16_masked(chip, OXYGEN_GPIO_DATA,
295 data->output_sel == 1 ? GPIO_HP_REAR : 0, 295 data->output_sel == 1 ? GPIO_HP_REAR : 0,
296 GPIO_HP_REAR); 296 GPIO_HP_REAR);
297 oxygen_write8_masked(chip, OXYGEN_PLAY_ROUTING,
298 data->output_sel == 0 ?
299 OXYGEN_PLAY_MUTE01 :
300 OXYGEN_PLAY_MUTE23 |
301 OXYGEN_PLAY_MUTE45 |
302 OXYGEN_PLAY_MUTE67,
303 OXYGEN_PLAY_MUTE01 |
304 OXYGEN_PLAY_MUTE23 |
305 OXYGEN_PLAY_MUTE45 |
306 OXYGEN_PLAY_MUTE67);
297 } 307 }
298 mutex_unlock(&chip->mutex); 308 mutex_unlock(&chip->mutex);
299 return changed; 309 return changed;