Re: [PATCH] ASoC: qcom: lpass-platform: Reset irq clear reg post handling interrupts

From: Srinivasa Rao Mandadapu
Date: Mon Sep 06 2021 - 09:36:07 EST


Thanks for Your time Stephen!!

On 9/4/2021 12:10 AM, Stephen Boyd wrote:
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?
Actually it's incremental change. I will add base commit of this function.

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.
Here bit confusing. Could You please suggest How to go ahead on this?

+ }
+
return IRQ_HANDLED;
}

--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.