ALSA: oxygen: modify adjust_dg_dac_routing function

commit 1f91ecc14d 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>
This commit is contained in:
Roman Volkov 2014-01-24 16:18:11 +04:00 committed by Greg Kroah-Hartman
parent dba79490e5
commit 212b46549b

View 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;