mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 23:24:11 +08:00
ASoC: fsl_sai: Remove unnecessary FIFO reset in ISR
The FIFO reset drops the words in the FIFO, which may cause
channel swap when SAI module is running, especially when the
DMA speed is low. So it is not good to do FIFO reset in ISR,
then remove the operation.
Fixes: e2681a1bf5
("ASoC: fsl_sai: Add isr to deal with error flag")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1660713867-26921-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
e6f4bddefd
commit
cb225ac125
@ -114,11 +114,8 @@ static irqreturn_t fsl_sai_isr(int irq, void *devid)
|
||||
if (flags & FSL_SAI_CSR_SEF)
|
||||
dev_dbg(dev, "isr: Tx Frame sync error detected\n");
|
||||
|
||||
if (flags & FSL_SAI_CSR_FEF) {
|
||||
if (flags & FSL_SAI_CSR_FEF)
|
||||
dev_dbg(dev, "isr: Transmit underrun detected\n");
|
||||
/* FIFO reset for safety */
|
||||
xcsr |= FSL_SAI_CSR_FR;
|
||||
}
|
||||
|
||||
if (flags & FSL_SAI_CSR_FWF)
|
||||
dev_dbg(dev, "isr: Enabled transmit FIFO is empty\n");
|
||||
@ -148,11 +145,8 @@ irq_rx:
|
||||
if (flags & FSL_SAI_CSR_SEF)
|
||||
dev_dbg(dev, "isr: Rx Frame sync error detected\n");
|
||||
|
||||
if (flags & FSL_SAI_CSR_FEF) {
|
||||
if (flags & FSL_SAI_CSR_FEF)
|
||||
dev_dbg(dev, "isr: Receive overflow detected\n");
|
||||
/* FIFO reset for safety */
|
||||
xcsr |= FSL_SAI_CSR_FR;
|
||||
}
|
||||
|
||||
if (flags & FSL_SAI_CSR_FWF)
|
||||
dev_dbg(dev, "isr: Enabled receive FIFO is full\n");
|
||||
|
Loading…
Reference in New Issue
Block a user