summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2008-01-18 09:18:32 +0100
committerJaroslav Kysela <perex@perex.cz>2008-01-31 17:30:04 +0100
commite0059549345903195d6eb796c22048204c40a785 (patch)
tree42ad0eda51c80842101c2223fb307f6ffe0e5c2e /sound
parent[ALSA] oxygen: add register definitions (diff)
downloadlinux-e0059549345903195d6eb796c22048204c40a785.tar.xz
linux-e0059549345903195d6eb796c22048204c40a785.zip
[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>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/oxygen/oxygen_lib.c2
-rw-r--r--sound/pci/oxygen/oxygen_mixer.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c
index 79e7c16c71ff..3e61f94ec2e3 100644
--- a/sound/pci/oxygen/oxygen_lib.c
+++ b/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);
diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c
index fae7c0f060a0..6fd2a594e89e 100644
--- a/sound/pci/oxygen/oxygen_mixer.c
+++ b/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);
}