On Fri, Jul 29, 2011 at 12:14:25PM +0200, Marek Szyprowski wrote:
This sounds rather hacky. How about partitioning the address space for the device and give the dma-api only a part of it. The other parts can be directly mapped using the iommu-api then.
Well, I'm not convinced that iommu-api should be used by the device drivers directly. If possible we should rather extend dma-mapping than use such hacks.
Building this into dma-api would turn it into an iommu-api. The line between the apis are clear. The iommu-api provides direct mapping of bus-addresses to system-addresses while the dma-api puts a memory manager on-top which deals with bus-address allocation itself. So if you want to map bus-addresses directly the iommu-api is the way to go. This is in no way a hack.
Regards,
Joerg