On Tue, Feb 3, 2015 at 9:41 AM, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote: > On Tue, Feb 03, 2015 at 03:17:27PM +0100, Arnd Bergmann wrote: >> On Tuesday 03 February 2015 09:04:03 Rob Clark wrote: >> > Since I'm stuck w/ an iommu, instead of built in mmu, my plan was to >> > drop use of dma-mapping entirely (incl the current call to dma_map_sg, >> > which I just need until we can use drm_cflush on arm), and >> > attach/detach iommu domains directly to implement context switches. >> > At that point, dma_addr_t really has no sensible meaning for me. >> >> I think what you see here is a quite common hardware setup and we really >> lack the right abstraction for it at the moment. Everybody seems to >> work around it with a mix of the dma-mapping API and the iommu API. >> These are doing different things, and even though the dma-mapping API >> can be implemented on top of the iommu API, they are not really compatible. > > I'd go as far as saying that the "DMA API on top of IOMMU" is more > intended to be for a system IOMMU for the bus in question, rather > than a device-level IOMMU. > > If an IOMMU is part of a device, then the device should handle it > (maybe via an abstraction) and not via the DMA API. The DMA API should > be handing the bus addresses to the device driver which the device's > IOMMU would need to generate. (In other words, in this circumstance, > the DMA API shouldn't give you the device internal address.) if the dma_addr_t becomes the address upstream of the iommu (in practice, the phys addr), that would, I think, address my concerns about dma_addr_t BR, -R > -- > FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up > according to speedtest.net. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel