OSDN Git Service

drm/i915/gtt: Control cache domain of dma_map_page() directly
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jul 2018 12:26:11 +0000 (13:26 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jul 2018 15:02:46 +0000 (16:02 +0100)
We already maually control the CPU cache for our page table directories,
so we can tell the dma mapper to skip doing it as well.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180706122611.4142-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c

index 92a0604..e279323 100644 (file)
@@ -564,6 +564,7 @@ static int __setup_page_dma(struct i915_address_space *vm,
        p->daddr = dma_map_page_attrs(vm->dma,
                                      p->page, 0, PAGE_SIZE,
                                      PCI_DMA_BIDIRECTIONAL,
+                                     DMA_ATTR_SKIP_CPU_SYNC |
                                      DMA_ATTR_NO_WARN);
        if (unlikely(dma_mapping_error(vm->dma, p->daddr))) {
                vm_free_page(vm, p->page);
@@ -648,6 +649,7 @@ setup_scratch_page(struct i915_address_space *vm, gfp_t gfp)
                addr = dma_map_page_attrs(vm->dma,
                                          page, 0, size,
                                          PCI_DMA_BIDIRECTIONAL,
+                                         DMA_ATTR_SKIP_CPU_SYNC |
                                          DMA_ATTR_NO_WARN);
                if (unlikely(dma_mapping_error(vm->dma, addr)))
                        goto free_page;