ASoC: fsl_ssi: set fifo watermark to more reliable value
authorCaleb Crome <caleb@crome.org>
Tue, 3 Jan 2017 18:22:57 +0000 (10:22 -0800)
committerMark Brown <broonie@kernel.org>
Wed, 4 Jan 2017 18:27:17 +0000 (18:27 +0000)
commit4ee437fbf626b5ad756889d8bc0fcead3d66dde7
tree46aedb493db2c9603200bae5d784b2915f164300
parenta5de5b74a50113564a1e0850e2da96c37c35e55d
ASoC: fsl_ssi: set fifo watermark to more reliable value

The fsl_ssi fifo watermark is by default set to 2 free spaces (i.e.
activate DMA on FIFO when only 2 spaces are left.)  This means the
DMA must service the fifo within 2 audio samples, which is just not
enough time  for many use cases with high data rate.  In many
configurations the audio channel slips (causing l/r swap in stereo
configurations, or channel slipping in multi-channel configurations).

This patch gives more breathing room and allows the SSI to operate
reliably by changing the fifio refill watermark to 8.

There is no change in behavior for older chips (with an 8-deep fifo).
Only the newer chips with a 15-deep fifo get the new behavior. I
suspect a new fifo depth setting could be optimized on the older
chips too, but I have not tested.

Signed-off-by: Caleb Crome <caleb@crome.org>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_ssi.c