On Thu, Nov 29, 2018 at 9:14 AM Christoph Hellwig <hch@xxxxxx> wrote: > > On Thu, Nov 29, 2018 at 07:33:15PM +0530, Vivek Gautam wrote: > > dma_map_sg() expects a DMA domain. However, the drm devices > > have been traditionally using unmanaged iommu domain which > > is non-dma type. Using dma mapping APIs with that domain is bad. > > > > Replace dma_map_sg() calls with dma_sync_sg_for_device{|cpu}() > > to do the cache maintenance. > > As I told you before: hell no. If you spent the slightest amount of > actually trying to understand what you are doing here you'd know this > can't work. Just turn on dma debugging and this will blow up in your > face. you can tone it down.. we weren't the ones who created the dma/iommu mess, we are just trying to find a way to work around it > Either you use the DMA API properly, that is you use it to map and > to sync, or you don't use it at all. Mix and match between iommu > APIs and DMA APIs is simply not possible. I'd *love* nothing more to not use the dma api.. but on arm there is no other way to do cache maint. BR, -R