aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/nuc900/nuc900-ac97.c
diff options
context:
space:
mode:
authorWan ZongShun <mcuos.com@gmail.com>2010-06-02 13:57:01 +0800
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-06-02 11:47:06 +0100
commit08a0b717578ab03db99367e69bfe6a4a71918e2c (patch)
tree5801b936586e3878cc79aca18a105a3220279793 /sound/soc/nuc900/nuc900-ac97.c
parent0dc3b44202fe7e7f43d6c687904ca1a04a0afb43 (diff)
downloadkernel_goldelico_gta04-08a0b717578ab03db99367e69bfe6a4a71918e2c.zip
kernel_goldelico_gta04-08a0b717578ab03db99367e69bfe6a4a71918e2c.tar.gz
kernel_goldelico_gta04-08a0b717578ab03db99367e69bfe6a4a71918e2c.tar.bz2
ASoC: nuc900: patch for modifing the ac97 delays to minimum
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>
Diffstat (limited to 'sound/soc/nuc900/nuc900-ac97.c')
-rw-r--r--sound/soc/nuc900/nuc900-ac97.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/sound/soc/nuc900/nuc900-ac97.c b/sound/soc/nuc900/nuc900-ac97.c
index b6e42c7..caa7c90 100644
--- a/sound/soc/nuc900/nuc900-ac97.c
+++ b/sound/soc/nuc900/nuc900-ac97.c
@@ -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);