[PATCH v3 1/1] drm: msm: Replace dma_map_sg with dma_sync_sg*

Rob Clark robdclark at gmail.com
Thu Nov 29 14:25:43 UTC 2018


On Thu, Nov 29, 2018 at 9:14 AM Christoph Hellwig <hch at lst.de> 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


More information about the dri-devel mailing list