Quoting Srinivasa Rao Mandadapu (2021-09-03 03:01:53) > Update interrupt clear register with reset value after addressing > all interrupts. This is to fix playback or capture hanging issue in > simultaneous playback and capture usecase. > > Signed-off-by: Srinivasa Rao Mandadapu <srivasam@xxxxxxxxxxxxxx> > --- Any Fixes tag? > sound/soc/qcom/lpass-platform.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c > index f9df76d37858..1a0a4b0b1a03 100644 > --- a/sound/soc/qcom/lpass-platform.c > +++ b/sound/soc/qcom/lpass-platform.c > @@ -749,6 +749,12 @@ static irqreturn_t lpass_platform_lpaif_irq(int irq, void *data) > } > } > > + rv = regmap_write(drvdata->lpaif_map, LPAIF_IRQCLEAR_REG(v, LPAIF_IRQ_PORT_HOST), 0x0); > + if (rv) { > + pr_err("error writing to irqstat reg: %d\n", rv); > + return IRQ_NONE; I was thinking we should return IRQ_HANDLED still, but then I guess failing to clear the irq be treated as a spurious irq so that if we fail enough times we'll shut off the irq at the irqchip. Things are going bad if the write fails. > + } > + > return IRQ_HANDLED; > } >