summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTony Lin <tony.lin@freescale.com>2011-01-28 16:32:46 +0800
committerAlan Tull <alan.tull@freescale.com>2011-02-03 16:45:29 -0600
commit61f9b04c0d52b1615cb982031571fe5fdb51d873 (patch)
tree93b1a12387eb462d3911945ff37db3d8adb83386 /sound
parentf618ab58066ee2cd5b944108068044fb64f8ef32 (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.c4
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: