[PATCH] md: Final stages of raid5 expand code
[linux-2.6.git] / sound / i2c / cs8427.c
index 9deba80a587cb8255ac69e643b6316057e51f6df..cb89f7eb9236dfee53a2870f8f0622a8d4f9f98a 100644 (file)
@@ -291,11 +291,13 @@ static void snd_cs8427_reset(struct snd_i2c_device *cs8427)
 {
        struct cs8427 *chip;
        unsigned long end_time;
-       int data;
+       int data, aes3input = 0;
 
        snd_assert(cs8427, return);
        chip = cs8427->private_data;
        snd_i2c_lock(cs8427->bus);
+       if ((chip->regmap[CS8427_REG_CLOCKSOURCE] & CS8427_RXDAES3INPUT) == CS8427_RXDAES3INPUT)  /* AES3 bit is set */
+               aes3input = 1;
        chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~(CS8427_RUN | CS8427_RXDMASK);
        snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE,
                             chip->regmap[CS8427_REG_CLOCKSOURCE]);
@@ -316,7 +318,8 @@ static void snd_cs8427_reset(struct snd_i2c_device *cs8427)
        }
        snd_i2c_lock(cs8427->bus);
        chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~CS8427_RXDMASK;
-       chip->regmap[CS8427_REG_CLOCKSOURCE] |= CS8427_RXDAES3INPUT;
+       if (aes3input)
+               chip->regmap[CS8427_REG_CLOCKSOURCE] |= CS8427_RXDAES3INPUT;
        snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE,
                             chip->regmap[CS8427_REG_CLOCKSOURCE]);
        snd_i2c_unlock(cs8427->bus);