aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/samsung/i2s.c
diff options
context:
space:
mode:
authorJassi Brar <jassi.brar@samsung.com>2010-12-20 11:05:47 +0900
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-12-20 13:45:48 +0000
commit775bc97131c3dcf62d29cdb33e00db8f827eac35 (patch)
tree9d40391476832a19a7914a4129f6e66475683019 /sound/soc/samsung/i2s.c
parent6ce534aac29ca177749000d76e4ecc8a326c852d (diff)
downloadkernel_samsung_smdk4412-775bc97131c3dcf62d29cdb33e00db8f827eac35.zip
kernel_samsung_smdk4412-775bc97131c3dcf62d29cdb33e00db8f827eac35.tar.gz
kernel_samsung_smdk4412-775bc97131c3dcf62d29cdb33e00db8f827eac35.tar.bz2
ASoC: Samsung: I2S: Flush FIFO after stop
Flush the FIFO while stopping the channel rather than starting. This saves time during stream start and keeps the FIFOs clean when the channel is idling. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/samsung/i2s.c')
-rw-r--r--sound/soc/samsung/i2s.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index 26b4bdf..d00ac3a 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -843,11 +843,6 @@ static int i2s_trigger(struct snd_pcm_substream *substream,
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
local_irq_save(flags);
- if (capture)
- i2s_fifo(i2s, FIC_RXFLUSH);
- else
- i2s_fifo(i2s, FIC_TXFLUSH);
-
if (config_setup(i2s)) {
local_irq_restore(flags);
return -EINVAL;
@@ -870,6 +865,11 @@ static int i2s_trigger(struct snd_pcm_substream *substream,
else
i2s_txctrl(i2s, 0);
+ if (capture)
+ i2s_fifo(i2s, FIC_RXFLUSH);
+ else
+ i2s_fifo(i2s, FIC_TXFLUSH);
+
local_irq_restore(flags);
break;
}