Skip to content

dmaengine: dw-axi-dmac: Wait for runtime resume...#7484

Merged
pelwell merged 1 commit into
raspberrypi:rpi-6.18.yfrom
pelwell:dmapm
Jul 13, 2026
Merged

dmaengine: dw-axi-dmac: Wait for runtime resume...#7484
pelwell merged 1 commit into
raspberrypi:rpi-6.18.yfrom
pelwell:dmapm

Conversation

@pelwell

@pelwell pelwell commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

...before using a channel

dma_chan_alloc_chan_resources() called pm_runtime_get(), which only schedules the clock-enabling resume work asynchronously. If callers go on to configure and use the channel's registers immediately, the clocks may not yet be running, causing early register writes (e.g. CH_CFG) to be silently dropped. Later accesses succeed once the clock has come up, leaving the channel enabled but with an invalid configuration, and its completion interrupt never fires.

Use pm_runtime_resume_and_get() so the clocks are guaranteed to be enabled before the channel is handed back to the caller.

...before using a channel

dma_chan_alloc_chan_resources() called pm_runtime_get(), which only
schedules the clock-enabling resume work asynchronously. If callers go
on to configure and use the channel's registers immediately, the clocks
may not yet be running, causing early register writes (e.g. CH_CFG) to
be silently dropped. Later accesses succeed once the clock has come up,
leaving the channel enabled but with an invalid configuration, and its
completion interrupt never fires.

Use pm_runtime_resume_and_get() so the clocks are guaranteed to be
enabled before the channel is handed back to the caller.

Fixes: 1fe20f1 ("dmaengine: Introduce DW AXI DMAC driver")
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
@pelwell

pelwell commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

(updated with a Fixes: tag)

@pelwell pelwell merged commit 10214ef into raspberrypi:rpi-6.18.y Jul 13, 2026
12 checks passed
popcornmix added a commit to raspberrypi/firmware that referenced this pull request Jul 15, 2026
See: raspberrypi/linux#7500

kernel: staging: vchiq_arm: use one DMA device to map and unmap bulk pagelists
See: raspberrypi/linux#7494

kernel: drm/vc4: hdmi: Remove duplicate hotplug helper call
See: raspberrypi/linux#7489

kernel: ASoC: hifiberry_studio: change driver name and add support for new soundcards
See: raspberrypi/linux#7487

kernel: mmc: Fix MMC request issuing race condition to prevent stall
See: raspberrypi/linux#7486

kernel: dmaengine: dw-axi-dmac: Wait for runtime resume before using a channel
See: raspberrypi/linux#7484

kernel: overlays: i2c-fan: add compatible for upstream compatibility
See: raspberrypi/linux#7483
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this pull request Jul 15, 2026
See: raspberrypi/linux#7500

kernel: staging: vchiq_arm: use one DMA device to map and unmap bulk pagelists
See: raspberrypi/linux#7494

kernel: drm/vc4: hdmi: Remove duplicate hotplug helper call
See: raspberrypi/linux#7489

kernel: ASoC: hifiberry_studio: change driver name and add support for new soundcards
See: raspberrypi/linux#7487

kernel: mmc: Fix MMC request issuing race condition to prevent stall
See: raspberrypi/linux#7486

kernel: dmaengine: dw-axi-dmac: Wait for runtime resume before using a channel
See: raspberrypi/linux#7484

kernel: overlays: i2c-fan: add compatible for upstream compatibility
See: raspberrypi/linux#7483
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant