aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/samsung
diff options
context:
space:
mode:
authorJassi Brar <jassi.brar@samsung.com>2010-12-19 21:05:47 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-12-20 08:45:48 -0500
commit775bc97131c3dcf62d29cdb33e00db8f827eac35 (patch)
tree9d40391476832a19a7914a4129f6e66475683019 /sound/soc/samsung
parent6ce534aac29ca177749000d76e4ecc8a326c852d (diff)
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')
-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 26b4bdf42c5b..d00ac3a7102c 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,
843 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 843 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
844 local_irq_save(flags); 844 local_irq_save(flags);
845 845
846 if (capture)
847 i2s_fifo(i2s, FIC_RXFLUSH);
848 else
849 i2s_fifo(i2s, FIC_TXFLUSH);
850
851 if (config_setup(i2s)) { 846 if (config_setup(i2s)) {
852 local_irq_restore(flags); 847 local_irq_restore(flags);
853 return -EINVAL; 848 return -EINVAL;
@@ -870,6 +865,11 @@ static int i2s_trigger(struct snd_pcm_substream *substream,
870 else 865 else
871 i2s_txctrl(i2s, 0); 866 i2s_txctrl(i2s, 0);
872 867
868 if (capture)
869 i2s_fifo(i2s, FIC_RXFLUSH);
870 else
871 i2s_fifo(i2s, FIC_TXFLUSH);
872
873 local_irq_restore(flags); 873 local_irq_restore(flags);
874 break; 874 break;
875 } 875 }