aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/ymfpci/ymfpci_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/ymfpci/ymfpci_main.c')
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index a1aa74b79b3..30ee53adb49 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -536,13 +536,17 @@ static void snd_ymfpci_pcm_init_voice(struct snd_ymfpci_pcm *ypcm, unsigned int
}
}
if (ypcm->output_rear) {
+ /* The SPDIF out channels seem to be swapped, so we have
+ * to swap them here, too. The rear analog out channels
+ * will be wrong, but otherwise AC3 would not work.
+ */
if (use_left) {
- bank->eff2_gain =
- bank->eff2_gain_end = vol_left;
+ bank->eff3_gain =
+ bank->eff3_gain_end = vol_left;
}
if (use_right) {
- bank->eff3_gain =
- bank->eff3_gain_end = vol_right;
+ bank->eff2_gain =
+ bank->eff2_gain_end = vol_right;
}
}
}