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

Srinivasa Rao Mandadapu srivasam at codeaurora.org
Mon Sep 6 15:35:46 CEST 2021


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 at codeaurora.org>
>> ---
> 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.



More information about the Alsa-devel mailing list