Greg KH wrote: > On Wed, Mar 05, 2014 at 10:16:17PM +0100, Clemens Ladisch wrote: >> 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@xxxxxxx> >> Signed-off-by: Clemens Ladisch <clemens@xxxxxxxxxx> >> --- >> sound/pci/oxygen/xonar_dg.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) >> >> diff --git a/sound/pci/oxygen/xonar_dg.c b/sound/pci/oxygen/xonar_dg.c >> index 77acd79..fec8f02 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; > > This looks _very_ different from the original commit in Linus's tree, > why the large variation? The upstream driver got reorganized; in earlier kernels, the DACx_SOURCE setting changes are not applicable, and the PLAY_MUTE settings must be moved to output_switch_put() because adjust_dg_dac_routing() would not be called when output_sel changes. Regards, Clemens -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html