Skip to content

Conversation

nbuchwitz
Copy link
Contributor

@nbuchwitz nbuchwitz commented Aug 21, 2025

The patch "dmaengine: dw-axi-dmac: add per-channel AXI burst length support" programs ARLEN/AWLEN from the snps,axi-max-burst-len array but still exposed a single max_burst value via dma_get_slave_caps(). As a result all channels reported 8 even when limited to 4, leading to warnings:

dma dma2chan5: requested source burst length 8 exceeds supported 4

Add a .device_caps callback to return the correct per-channel max_burst. This allows drivers like amba-pl011 to clamp burst lengths properly.

Fixes: 0e4e6a0c4f4e ("dmaengine: dw-axi-dmac: add per-channel AXI burst length support") #6994

@nbuchwitz
Copy link
Contributor Author

To be discussed: Keep dw->dma.max_burst = hdata->axi_rw_burst_len[0]; which set the default burst length to 8 or better use min on hdata->axi_rw_burst_len?

@pelwell
Copy link
Contributor

pelwell commented Aug 22, 2025

Apart from the checkpatch indentation complaints, this looks good.

To be discussed: Keep dw->dma.max_burst = hdata->axi_rw_burst_len[0]; which set the default burst length to 8 or better use min on hdata->axi_rw_burst_len?

Don't we drop the assignment completely now we have the device_caps method?

@nbuchwitz
Copy link
Contributor Author

Don't we drop the assignment completely now we have the device_caps method?

Probably can do, yes. The array should be populated for all channels, so the fallback isn't really needed. I will amend my commit when I take care of checkpatch.

The patch "dmaengine: dw-axi-dmac: add per-channel AXI burst length
support" programs ARLEN/AWLEN from the snps,axi-max-burst-len array but
still exposed a single max_burst value via dma_get_slave_caps(). As a
result all channels reported 8 even when limited to 4, leading to
warnings:

  dma dma2chan5: requested source burst length 8 exceeds supported 4

Add a .device_caps callback to return the correct per-channel max_burst.
This allows drivers like amba-pl011 to clamp burst lengths properly.

Fixes: 0e4e6a0c4f4e ("dmaengine: dw-axi-dmac: add per-channel AXI burst length support")
Signed-off-by: Nicolai Buchwitz <[email protected]>
@pelwell pelwell merged commit 5cd8ecc into raspberrypi:rpi-6.12.y Aug 22, 2025
12 checks passed
@pelwell
Copy link
Contributor

pelwell commented Aug 22, 2025

Thanks!

popcornmix added a commit to raspberrypi/firmware that referenced this pull request Aug 26, 2025
kernel: dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps
See: raspberrypi/linux#7011

kernel: Update tpm-slb9673-overlay.dts
See: raspberrypi/linux#6993

kernel: Enable Full Screen Splash Images
See: raspberrypi/linux#7005

kernel: overlays: Rebuild 5inch display from the 7inch
See: raspberrypi/linux#7016
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this pull request Aug 26, 2025
kernel: dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps
See: raspberrypi/linux#7011

kernel: Update tpm-slb9673-overlay.dts
See: raspberrypi/linux#6993

kernel: Enable Full Screen Splash Images
See: raspberrypi/linux#7005

kernel: overlays: Rebuild 5inch display from the 7inch
See: raspberrypi/linux#7016
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