Skip to content

ipc: ipc4: fixes to DMA driver use in user-space builds#10844

Open
kv2019i wants to merge 3 commits into
thesofproject:mainfrom
kv2019i:202606-dai-dma-usage
Open

ipc: ipc4: fixes to DMA driver use in user-space builds#10844
kv2019i wants to merge 3 commits into
thesofproject:mainfrom
kv2019i:202606-dai-dma-usage

Conversation

@kv2019i
Copy link
Copy Markdown
Collaborator

@kv2019i kv2019i commented Jun 4, 2026

A set of small fixes to how IPC4 code uses DMA driver and driver look-up interfaces.

Patches part of feature development done in #10558

kv2019i added 3 commits June 4, 2026 19:28
Use sof_dma_get_status() call to allow the audio pipeline to
be run in user-space.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Fix a few remaining uses of direct DMA driver calls. Use
the sof_dma.h wrapper instead, allowing the code to be used
also from user-space.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Do not use IRQ disable/enable when built for user-space. The driver list
is immutable by IPC processing time so no lock is needed.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Copilot AI review requested due to automatic review settings June 4, 2026 16:34
@kv2019i kv2019i requested review from jsarha and lyakh June 4, 2026 16:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates IPC4 code paths to be compatible with Zephyr user-space LL builds by avoiding privileged DMA and interrupt APIs, while keeping existing behavior for non-user-space builds.

Changes:

  • Make IPC4 component driver lookup avoid irq_local_disable() in user-space LL builds.
  • Switch IPC4 DAI DMA operations from direct Zephyr DMA calls to sof_dma_*() wrappers for stop/release/status.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
src/ipc/ipc4/helper.c Conditionally avoids IRQ masking during driver lookup in user-space LL builds.
src/ipc/ipc4/dai.c Uses sof_dma_*() wrapper APIs for DMA stop/release/status in IPC4 DAI paths.

Comment thread src/ipc/ipc4/helper.c
Comment on lines +1134 to +1136
#ifndef CONFIG_SOF_USERSPACE_LL
uint32_t flags;
#endif
Comment thread src/ipc/ipc4/helper.c
* list is immutable by this point so no lock is needed.
*/
#ifndef CONFIG_SOF_USERSPACE_LL
irq_local_disable(flags);
Comment thread src/ipc/ipc4/helper.c
}

#ifndef CONFIG_SOF_USERSPACE_LL
irq_local_enable(flags);
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.

2 participants