ASoC: nuc900: patch for modifing the ac97 delays to minimum
authorWan ZongShun <mcuos.com@gmail.com>
Wed, 2 Jun 2010 05:57:01 +0000 (13:57 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 2 Jun 2010 10:47:06 +0000 (11:47 +0100)
This patch is to modify the ac97 delays to minimum, all these 1000 micro
seconds delays seem over spec for the AC97 interface.

I deleted some unnecessary delays here and changed the AC97 cold and warm reset
delays from 1000us to 100us.

Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/nuc900/nuc900-ac97.c

index b6e42c7..caa7c90 100644 (file)
@@ -147,7 +147,7 @@ static void nuc900_ac97_warm_reset(struct snd_ac97 *ac97)
        val |= AC_W_RES;
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACCON, val);
 
-       udelay(1000);
+       udelay(100);
 
        val = nuc900_checkready();
        if (!!val)
@@ -168,40 +168,30 @@ static void nuc900_ac97_cold_reset(struct snd_ac97 *ac97)
        val |= ACTL_RESET_BIT;
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val);
 
-       udelay(1000);
-
        val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET);
        val &= (~ACTL_RESET_BIT);
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val);
 
-       udelay(1000);
-
        /* reset AC-link interface */
 
        val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET);
        val |= AC_RESET;
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val);
 
-       udelay(1000);
-
        val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET);
        val &= ~AC_RESET;
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val);
 
-       udelay(1000);
-
        /* cold reset AC 97 */
        val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON);
        val |= AC_C_RES;
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACCON, val);
 
-       udelay(1000);
-
        val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON);
        val &= (~AC_C_RES);
        AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACCON, val);
 
-       udelay(1000);
+       udelay(100);
 
        mutex_unlock(&ac97_mutex);