Skip to content

drivers: dma: silabs: modify LDMA driver to handle large dma_block_config #92960

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Martinhoff-maker
Copy link
Contributor

@Martinhoff-maker Martinhoff-maker commented Jul 10, 2025

The goal of this PR is to allows multiple hardware descriptors to be allocated for a single struct dma_block_config if the block size exceeds the transfer capacity of a single hardware LDMA descriptor. This is beneficial for other peripheral drivers: it is no longer necessary to split the payload by the transfer capacity of a single hardware LDMA descriptor.

It also contains cleanup for Silabs board DMA test files and update the default value for the max number of DMA descriptor.

@Martinhoff-maker Martinhoff-maker force-pushed the ldma_multiple_hw_descriptor branch from 69b8dec to 206d82f Compare July 10, 2025 10:21
The LDMA driver currently has a 1:1 mapping between hardware LDMA
descriptors and struct dma_block_config. This patch allows multiple
hardware descriptors to be allocated for a single struct dma_block_config
if the block size exceeds the transfer capacity of a single hardware
LDMA descriptor. This is beneficial for other peripheral drivers: it is
no longer necessary to split the payload by the transfer capacity of a
single hardware LDMA descriptor.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
We need to add CONFIG_DMA_MAX_DESCRIPTOR=16 for a lot of tests, then
this default value of this parameter need to be higher. It allows to
delete some overlay files.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
With the recent upgrade of the LDMA driver, these conf files are no
longer needed. (The LDMA driver now supports channel allocation and
large transfers)

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
@Martinhoff-maker Martinhoff-maker force-pushed the ldma_multiple_hw_descriptor branch from 206d82f to b2e030e Compare July 10, 2025 12:54
Copy link

@Martinhoff-maker Martinhoff-maker marked this pull request as ready for review July 10, 2025 13:30
@github-actions github-actions bot added area: DMA Direct Memory Access platform: Silabs Silicon Labs labels Jul 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: DMA Direct Memory Access platform: Silabs Silicon Labs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants