Skip to content

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

Open
pelwell wants to merge 1 commit into
raspberrypi:rpi-6.18.yfrom
pelwell:dmapm
Open

dmaengine: dw-axi-dmac: Wait for runtime resume...#7484
pelwell wants to merge 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)

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