summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arunr@valvesoftware.com>2026-08-03 15:07:52 -0700
committerTakashi Iwai <tiwai@suse.de>2026-08-04 13:20:01 +0200
commitdc9edf5878286beb140c401f4e0c3549d529049a (patch)
tree8a4c17d0c7a0520b1a5fecfc3cb5f3ebbfd0fc63
parent1c03dd434e0a38a1d92fe02d38fa2c019bf807e0 (diff)
ALSA: hda/core: Log stream DMA errors on interrupt
The stream descriptor status register reports FIFO and descriptor errors, but these are currently cleared silently along with the rest of the interrupt status. Log them, rate-limited, so DMA problems are visible instead of only manifesting as audible glitches. Observed on some AMD GPU HDMI audio controllers under specific low power circumstances. Signed-off-by: Arun Raghavan <arunr@valvesoftware.com> Cc: Arun Raghavan <arun@arunraghavan.net> Link: https://patch.msgid.link/20260803-master-v1-1-9bcedb736978@valvesoftware.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/hda/core/controller.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/hda/core/controller.c b/sound/hda/core/controller.c
index 32048ef32d96..78855ac357c6 100644
--- a/sound/hda/core/controller.c
+++ b/sound/hda/core/controller.c
@@ -688,6 +688,11 @@ int snd_hdac_bus_handle_stream_irq(struct hdac_bus *bus, unsigned int status,
sd_status = snd_hdac_stream_readb(azx_dev, SD_STS);
snd_hdac_stream_writeb(azx_dev, SD_STS, SD_INT_MASK);
handled |= 1 << azx_dev->index;
+ if (sd_status & (SD_INT_FIFO_ERR | SD_INT_DESC_ERR)) {
+ dev_warn_ratelimited(bus->dev,
+ "stream %u dma error: 0x%02x\n",
+ azx_dev->index, sd_status);
+ }
if ((!azx_dev->substream && !azx_dev->cstream) ||
!azx_dev->running || !(sd_status & SD_INT_COMPLETE))
continue;