Skip to content

drivers: dma: dma_xilinx_axi_dma: reliability fixes and cleanups #85412

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 8 commits into
base: main
Choose a base branch
from
Open
18 changes: 4 additions & 14 deletions drivers/dma/Kconfig.xilinx_axi_dma
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@ config DMA_XILINX_AXI_DMA
config DMA_XILINX_AXI_DMA_DISABLE_CACHE_WHEN_ACCESSING_SG_DESCRIPTORS
bool "Disable data cache while accessing Scatter-Gather Descriptors."
depends on DMA_XILINX_AXI_DMA
depends on CACHE_MANAGEMENT
depends on DCACHE
default n
help
Disable dcache while operating on Scatter-Gather descriptors.
Controls whether to explicitly flush or invalidate the data cache when accessing
DMA descriptors or buffers.
This allows the DMA to be used on architectures that do not provide
coherency for DMA accesses. If you are unsure whether you need this feature,
you should select n here.
Expand Down Expand Up @@ -68,19 +71,6 @@ config DMA_XILINX_AXI_DMA_LOCK_CHANNEL_IRQ

endchoice

config DMA_XILINX_AXI_DMA_POLL_INTERVAL
int "Period of the timer used for polling the DMA in milliseconds"
depends on DMA_XILINX_AXI_DMA
default 100
help
On certain platforms (e.g., RISC-V), the DMA driver can sometimes miss interrupts.
This can cause the DMA driver to stop processing completed transactions.
In order to prevent this, the DMA driver periodically polls the DMA's registers and
determines whether it needs to handle outstanding transactions.
This configuration controls how often this happens.
Choose a larger value to minimize overhead and a smaller value to minimize
worst-case latency.

config DMA_XILINX_AXI_DMA_INTERRUPT_THRESHOLD
int "Number of completed transactions after which to trigger an interrupt"
depends on DMA_XILINX_AXI_DMA
Expand Down
Loading
Loading