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>
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;
else
i2s_txctrl(i2s, 0);
+ if (capture)
+ i2s_fifo(i2s, FIC_RXFLUSH);
+ else
+ i2s_fifo(i2s, FIC_TXFLUSH);
+
local_irq_restore(flags);
break;
}