Quellcode durchsuchen

[ALSA] ymfpci: fix swapped channels in SPDIF output

Modules: YMFPCI driver

The routing of the effect 2/3 channels to the digital output is the
opposite of the rear analog output (left/right swapped).

We make the order correct for the digital output (which will make the
analog rear have the channels swapped) to make AC3 output work.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Clemens Ladisch vor 19 Jahren
Ursprung
Commit
153abaa4ff
1 geänderte Dateien mit 8 neuen und 4 gelöschten Zeilen
  1. 8 4
      sound/pci/ymfpci/ymfpci_main.c

+ 8 - 4
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;
 			}
 		}
 	}