Quoting Srinivasa Rao Mandadapu (2021-09-03 03:01:53)Actually it's incremental change. I will add base commit of this function.
Update interrupt clear register with reset value after addressingAny Fixes tag?
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>
---
Here bit confusing. Could You please suggest How to go ahead on this?
sound/soc/qcom/lpass-platform.c | 6 ++++++I was thinking we should return IRQ_HANDLED still, but then I guess
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;
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;
}