Skip to content

Commit 38592ae

Browse files
vijendarmukundabroonie
authored andcommitted
ASoC: SOF: amd: clear dsp to host interrupt status
DSP_SW_INTR_STAT_OFFSET is a common interrupt register which will be accessed by both ACP firmware and driver. This register contains register bits corresponds to host to dsp interrupts and vice versa. when dsp to host interrupt is reported, only clear dsp to host interrupt bit in DSP_SW_INTR_STAT_OFFSET. Fixes: 2e7c665 ("ASoC: SOF: amd: Fix for handling spurious interrupts from DSP") Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Link: https://lore.kernel.org/r/20230823073340.2829821-7-Vijendar.Mukunda@amd.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 3d02e1c commit 38592ae

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

sound/soc/sof/amd/acp.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,9 @@ static irqreturn_t acp_irq_handler(int irq, void *dev_id)
367367
unsigned int val;
368368

369369
val = snd_sof_dsp_read(sdev, ACP_DSP_BAR, base + DSP_SW_INTR_STAT_OFFSET);
370-
if (val) {
371-
val |= ACP_DSP_TO_HOST_IRQ;
372-
snd_sof_dsp_write(sdev, ACP_DSP_BAR, base + DSP_SW_INTR_STAT_OFFSET, val);
370+
if (val & ACP_DSP_TO_HOST_IRQ) {
371+
snd_sof_dsp_write(sdev, ACP_DSP_BAR, base + DSP_SW_INTR_STAT_OFFSET,
372+
ACP_DSP_TO_HOST_IRQ);
373373
return IRQ_WAKE_THREAD;
374374
}
375375

0 commit comments

Comments
 (0)