Commit e0059549 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Jaroslav Kysela

[ALSA] oxygen: fix playback routing

The default playback routing must be 0xe4, not 0xe1; the front and
surround DACs were exchanged.
Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent c2353a08
...@@ -214,7 +214,7 @@ static void __devinit oxygen_init(struct oxygen *chip) ...@@ -214,7 +214,7 @@ static void __devinit oxygen_init(struct oxygen *chip)
oxygen_write16(chip, OXYGEN_I2S_C_FORMAT, 0x010a); oxygen_write16(chip, OXYGEN_I2S_C_FORMAT, 0x010a);
oxygen_set_bits32(chip, OXYGEN_SPDIF_CONTROL, OXYGEN_SPDIF_RATE_MASK); oxygen_set_bits32(chip, OXYGEN_SPDIF_CONTROL, OXYGEN_SPDIF_RATE_MASK);
oxygen_write32(chip, OXYGEN_SPDIF_OUTPUT_BITS, chip->spdif_bits); 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_REC_ROUTING, 0x10);
oxygen_write8(chip, OXYGEN_ADC_MONITOR, 0x00); oxygen_write8(chip, OXYGEN_ADC_MONITOR, 0x00);
oxygen_write8(chip, OXYGEN_A_MONITOR_ROUTING, 0xe4); oxygen_write8(chip, OXYGEN_A_MONITOR_ROUTING, 0xe4);
......
...@@ -121,7 +121,7 @@ static int upmix_get(struct snd_kcontrol *ctl, struct snd_ctl_elem_value *value) ...@@ -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) void oxygen_update_dac_routing(struct oxygen *chip)
{ {
static const unsigned int reg_values[3] = { 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 */ 0xe000, /* front <- 0, surround <- 0, center <- 2, back <- 3 */
0x2000 /* front <- 0, surround <- 0, center <- 2, back <- 0 */ 0x2000 /* front <- 0, surround <- 0, center <- 2, back <- 0 */
}; };
...@@ -135,7 +135,7 @@ void oxygen_update_dac_routing(struct oxygen *chip) ...@@ -135,7 +135,7 @@ void oxygen_update_dac_routing(struct oxygen *chip)
else if (channels == OXYGEN_PLAY_CHANNELS_8) else if (channels == OXYGEN_PLAY_CHANNELS_8)
reg_value = 0x6c00; /* surround <- 3, back <- 1 */ reg_value = 0x6c00; /* surround <- 3, back <- 1 */
else else
reg_value = 0xe100; reg_value = 0xe400;
oxygen_write16_masked(chip, OXYGEN_PLAY_ROUTING, reg_value, 0xff00); oxygen_write16_masked(chip, OXYGEN_PLAY_ROUTING, reg_value, 0xff00);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment