forked from Minki/linux
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>
This commit is contained in:
parent
6ce534aac2
commit
775bc97131
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user