소스 검색

[ALSA] oxygen: fix playback routing

The default playback routing must be 0xe4, not 0xe1; the front and
surround DACs were exchanged.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Clemens Ladisch 17 년 전
부모
커밋
e005954934
2개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 1
      sound/pci/oxygen/oxygen_lib.c
  2. 2 2
      sound/pci/oxygen/oxygen_mixer.c

+ 1 - 1
sound/pci/oxygen/oxygen_lib.c

@@ -214,7 +214,7 @@ static void __devinit oxygen_init(struct oxygen *chip)
 	oxygen_write16(chip, OXYGEN_I2S_C_FORMAT, 0x010a);
 	oxygen_set_bits32(chip, OXYGEN_SPDIF_CONTROL, OXYGEN_SPDIF_RATE_MASK);
 	oxygen_write32(chip, OXYGEN_SPDIF_OUTPUT_BITS, chip->spdif_bits);
-	oxygen_write16(chip, OXYGEN_PLAY_ROUTING, 0xe100);
+	oxygen_write16(chip, OXYGEN_PLAY_ROUTING, 0xe400);
 	oxygen_write8(chip, OXYGEN_REC_ROUTING, 0x10);
 	oxygen_write8(chip, OXYGEN_ADC_MONITOR, 0x00);
 	oxygen_write8(chip, OXYGEN_A_MONITOR_ROUTING, 0xe4);

+ 2 - 2
sound/pci/oxygen/oxygen_mixer.c

@@ -121,7 +121,7 @@ static int upmix_get(struct snd_kcontrol *ctl, struct snd_ctl_elem_value *value)
 void oxygen_update_dac_routing(struct oxygen *chip)
 {
 	static const unsigned int reg_values[3] = {
-		0xe100, /* front <- 0, surround <- 1, center <- 2, back <- 3 */
+		0xe400, /* front <- 0, surround <- 1, center <- 2, back <- 3 */
 		0xe000, /* front <- 0, surround <- 0, center <- 2, back <- 3 */
 		0x2000  /* front <- 0, surround <- 0, center <- 2, back <- 0 */
 	};
@@ -135,7 +135,7 @@ void oxygen_update_dac_routing(struct oxygen *chip)
 	else if (channels == OXYGEN_PLAY_CHANNELS_8)
 		reg_value = 0x6c00; /* surround <- 3, back <- 1 */
 	else
-		reg_value = 0xe100;
+		reg_value = 0xe400;
 	oxygen_write16_masked(chip, OXYGEN_PLAY_ROUTING, reg_value, 0xff00);
 }