From 7c6dac30cba19b18fd82026a4a32ceb5f5f36ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?= Date: Thu, 18 Aug 2022 03:05:30 +0000 Subject: imx8/sai: increase watermark, run in slave mode, continue on fifo errors --- sys/src/9/imx8/sai.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'sys/src/9/imx8') diff --git a/sys/src/9/imx8/sai.c b/sys/src/9/imx8/sai.c index cf276c02a..abd4aa08b 100644 --- a/sys/src/9/imx8/sai.c +++ b/sys/src/9/imx8/sai.c @@ -12,6 +12,7 @@ typedef struct Ring Ring; enum { Byteps = 4, + Wmark = 96, TCSR = 0x08/4, TCSR_TE = 1<<31, @@ -27,10 +28,12 @@ enum { TCR2 = 0x10/4, TCR2_MSEL_MCLK1 = 1<<26, TCR2_BCP = 1<<25, + TCR2_BCD_SLAVE = 0<<24, TCR2_BCD_MASTER = 1<<24, TCR3 = 0x14/4, TCR3_TCE_SHIFT = 16, TCR4 = 0x18/4, + TCR4_FCONT = 1<<28, TCR4_FPACK_16BIT = 3<<24, TCR4_FRSZ_SHIFT = 16, TCR4_SYWD_SHIFT = 8, @@ -38,6 +41,7 @@ enum { TCR4_MSB_FIRST = 1<<4, TCR4_FSE = 1<<3, TCR4_FSP_LOW = 1<<1, + TCR4_FSD_SLAVE = 0<<0, TCR4_FSD_MASTER = 1<<0, TCR5 = 0x1c/4, TCR5_WNW_SHIFT = 24, @@ -147,7 +151,7 @@ saikick(Ctlr *ctlr) ctlr->wactive = 1; /* activate channel 1 */ wr(TCR3, 1<wactive){ if(buffered(r) < 128*Byteps) /* having less than fifo buffered */ saistop(ctlr); - else if(fifo(ctlr, (128-32)*Byteps) > 0) + else if(fifo(ctlr, (128-Wmark)*Byteps) > 0) v |= TCSR_TE; } wakeup(&r->r); -- cgit v1.2.3