Summary

Improve DMAEngine for arm. The last couple of years DMAEngine has made a transition from being a generic memcpy API to handle a wide range of DMA features. The goal of this task is to collect add missing pieces and improve documentation for arm. It may turn out that DMAEngine supports most essential DMA features for an ARM platform If not, they need to be added.

Rationale

DMAEngine has become more popular for arm platforms over the last couple of years. DMAEngine has made a transition from memcpy to a well suited for DMA framework. Of today there is no generic ARM specific DMA API. Could DMAEngine become a generic DMA API for ARM?

Unresolved issues

The following items are minor still they need to be resolved eventually. There is no plan to do it within this BP yet.

  • Vinod has added an TODO list with items needed to be fixed.

  • There is redundant code in the dma drivers. For instance queue handling of descriptors are done the same in all drivers. This could be moved the the generic layer. It's likely that more common things can be found too by simple comparing different drivers.

BoF agenda and discussion

LDS Presentation

  • Improve DMAEngine documentation
    • The dmaengine documentation is shared with the async-tx-api documentation. This part doesn't cover features outside the scope of async-tx-api.
    • The best documentation about the API is the dmaengine.h. Koul Vinod, maintainer responsible of DMA_SLAVE is working on documentation

  • Missing DMA features in DMAEngine
    • DMA DEVICE to DEVICE transfer, any ARM platforms that use this feature?
    • Power management on framework level like in the MMC framework. Currently the driver implementation cover this.

Notes from session at LDS

Support dmaengine on ARM: - Any missing functionality? - Some drivers have dma engine specific to a device. - Do we need power management support in the dma engine core? Likely not, keep it at driver level.

Shawn: There's an api for max segment size in a scatter/gather dma list.

  • There's no API to tell how many segments to read max number of elememts in the S/G list.

ACTION: Investigate adding this API to dmaengine


CategorySpec CategoryTemplate

WorkingGroups/KernelArchived/Specs/DMAEngine-improve-for-arm (last modified 2013-01-14 19:39:41)