ASoC: fsl_esai: Disable exception interrupt before scheduling tasklet
Disable exception interrupt before scheduling tasklet, otherwise if
the tasklet isn't handled immediately, there will be endless xrun
interrupt.
Fixes: 7ccafa2b38
("ASoC: fsl_esai: recover the channel swap after xrun")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/a8f2ad955aac9e52587beedc1133b3efbe746895.1587968824.git.shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
c38b608504
commit
1fecbb71fe
|
@ -87,6 +87,10 @@ static irqreturn_t esai_isr(int irq, void *devid)
|
|||
if ((saisr & (ESAI_SAISR_TUE | ESAI_SAISR_ROE)) &&
|
||||
esai_priv->reset_at_xrun) {
|
||||
dev_dbg(&pdev->dev, "reset module for xrun\n");
|
||||
regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR,
|
||||
ESAI_xCR_xEIE_MASK, 0);
|
||||
regmap_update_bits(esai_priv->regmap, REG_ESAI_RCR,
|
||||
ESAI_xCR_xEIE_MASK, 0);
|
||||
tasklet_schedule(&esai_priv->task);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue