diff options
author | Jassi Brar <jassi.brar@samsung.com> | 2010-12-19 21:05:47 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-12-20 08:45:48 -0500 |
commit | 775bc97131c3dcf62d29cdb33e00db8f827eac35 (patch) | |
tree | 9d40391476832a19a7914a4129f6e66475683019 /sound/soc/samsung | |
parent | 6ce534aac29ca177749000d76e4ecc8a326c852d (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.c | 10 |
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 | } |