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);
 
 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 */
        };
        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);
 }