On Mon, Mar 16, 2020 at 10:41:42AM +0100, Christian König wrote:
Well I would prefer if the drivers can somehow express their requirements and get IOVA structures already in the form they need.
Converting the IOVA data from one form to another is sometimes quite costly. Especially when it is only temporarily needed.
We basically have two ways to generate the IOVA:
- a linear translation for the direct mapping case or some dumb IOMMU drivers - in that case case there is a 1:1 mapping between input segments and output segments in DMA mapping - a non-trivial IOMMU where all aligned segments are merged into a single IOVA range
So I don't really see how the dma layer could help much with any limitation beyond existing max size and dma boundary ones.