Shengjiu Wang 94741eba63
ASoC: fsl_sai: Refine enable/disable TE/RE sequence in trigger()
Current code enables TCSR.TE and RCSR.RE together, and disable
TCSR.TE and RCSR.RE together in trigger(), which only supports
one operation mode:
1. Rx synchronous with Tx: TE is last enabled and first disabled

Other operation mode need to be considered also:
2. Tx synchronous with Rx: RE is last enabled and first disabled.
3. Asynchronous mode: Tx and Rx are independent.

So the enable TCSR.TE and RCSR.RE sequence and the disable
sequence need to be refined accordingly for #2 and #3.

There is slightly against what RM recommennds with this change.
For example in Rx synchronous with Tx mode, case "aplay 1.wav;
arecord 2.wav" enable TE before RE. But it should be safe to
do so, judging by years of testing results.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/20200805063413.4610-2-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-08-17 14:56:49 +01:00
..
2020-08-06 14:27:31 -07:00
2020-08-06 14:27:31 -07:00
2020-07-07 12:09:32 +02:00
2020-08-06 14:27:31 -07:00
2020-07-09 13:01:29 +02:00
2020-01-28 16:26:57 -08:00
2020-01-05 16:15:13 +01:00
2020-01-05 16:14:46 +01:00
2020-08-14 15:58:57 -07:00