diff options
author | Tony Lin <tony.lin@freescale.com> | 2011-01-28 16:32:46 +0800 |
---|---|---|
committer | Alan Tull <alan.tull@freescale.com> | 2011-02-03 16:45:29 -0600 |
commit | 61f9b04c0d52b1615cb982031571fe5fdb51d873 (patch) | |
tree | 93b1a12387eb462d3911945ff37db3d8adb83386 /sound | |
parent | f618ab58066ee2cd5b944108068044fb64f8ef32 (diff) |
ENGR00137418 [MX28]fix aplay has no sound after suspend/resume
DMA internal bug causes this problem, set freeze DMA channel will not
freeze DMA channel immediately, IC suggest to wait for some event to
make sure the channel is freezed. However, we found the method spec
mentioned does not work properly as expected. We add 30ms delay as a
temp solution for this problem. We can update our solution after IC
has verified suggestion for this issue.
Signed-off-by: Tony Lin <tony.lin@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/mxs/mxs-pcm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/mxs/mxs-pcm.c b/sound/soc/mxs/mxs-pcm.c index b4d7ca00a68f..bde32d6008d7 100644 --- a/sound/soc/mxs/mxs-pcm.c +++ b/sound/soc/mxs/mxs-pcm.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ #include <linux/slab.h> #include <linux/interrupt.h> #include <linux/dma-mapping.h> +#include <linux/delay.h> #include <sound/core.h> #include <sound/pcm.h> @@ -230,6 +231,7 @@ static int mxs_pcm_trigger(struct snd_pcm_substream *substream, int cmd) case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: mxs_dma_freeze(prtd->dma_ch); + mdelay(30); break; default: |