On Thu, Nov 29, 2018 at 10:57 AM Christoph Hellwig <hch@xxxxxx> wrote: > > On Thu, Nov 29, 2018 at 03:43:50PM +0100, Daniel Vetter wrote: > > Yeah we had patches to add manual cache management code to drm, so we > > don't have to abuse the dma streaming api anymore. Got shouted down. > > Abusing the dma streaming api also gets shouted down. It's a gpu, any > > idea of these drivers actually being platform independent is out of > > the window from the start anyway, so we're ok with tying this to > > platforms. > > Manual or not the iommu API is missing APIs for cache management, > which makes it kinda surprising it actually ever worked for non-coherent > devices. > > And fortunately while some people spent the last year ot two bickering > about the situation others actually did work, and we now have a > generic arch_sync_dma_for_device/arch_sync_dma_for_cpu kernel-internal > API. This is only used for DMA API internals so far, and explicitly > not intended for direct driver use, but it would be perfect as the > backend for iommu API cache maintainance functions. It exists on all > but two architectures on mainline. Out of those powerpc is in the works, > only arm32 will need some major help. oh, hmm, I realized I'd been looking still at the armv7 dma-mapping, I hadn't noticed arch_sync_* yet.. that does look like a step in the right direction. As far as hiding cache ops behind iommu layer, I guess I'd been thinking more of just letting the drivers that want to bypass dma layer take things into their own hands.. tbh I think/assume/hope drm/msm is more the exception than the rule as far as needing to bypass the dma layer. Or at least I guess the # of drivers having problems w/ the dma layer is less than the # of iommu drivers. (Not sure if that changes my thoughts on this patch, it isn't like what this patch replaces isn't also a problematic hack around the inability to bypass the dma layer. In the short term I just want *something* that works, I'm totally happy to refactor later when there are better options.) BR, -R