diff options
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_ppgtt.c')
| -rw-r--r-- | drivers/gpu/drm/i915/gt/intel_ppgtt.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/i915/gt/intel_ppgtt.c b/drivers/gpu/drm/i915/gt/intel_ppgtt.c index 96b85a10ef33..014ae8ac4480 100644 --- a/drivers/gpu/drm/i915/gt/intel_ppgtt.c +++ b/drivers/gpu/drm/i915/gt/intel_ppgtt.c @@ -5,6 +5,8 @@  #include <linux/slab.h> +#include "gem/i915_gem_lmem.h" +  #include "i915_trace.h"  #include "intel_gtt.h"  #include "gen6_ppgtt.h" @@ -192,6 +194,8 @@ void ppgtt_bind_vma(struct i915_address_space *vm,  	pte_flags = 0;  	if (i915_gem_object_is_readonly(vma->obj))  		pte_flags |= PTE_READ_ONLY; +	if (i915_gem_object_is_lmem(vma->obj)) +		pte_flags |= PTE_LM;  	vm->insert_entries(vm, vma, cache_level, pte_flags);  	wmb(); @@ -262,7 +266,7 @@ int i915_vm_pin_pt_stash(struct i915_address_space *vm,  	for (n = 0; n < ARRAY_SIZE(stash->pt); n++) {  		for (pt = stash->pt[n]; pt; pt = pt->stash) { -			err = pin_pt_dma(vm, pt->base); +			err = pin_pt_dma_locked(vm, pt->base);  			if (err)  				return err;  		} @@ -301,9 +305,10 @@ void ppgtt_init(struct i915_ppgtt *ppgtt, struct intel_gt *gt)  	ppgtt->vm.gt = gt;  	ppgtt->vm.i915 = i915; -	ppgtt->vm.dma = &i915->drm.pdev->dev; +	ppgtt->vm.dma = i915->drm.dev;  	ppgtt->vm.total = BIT_ULL(INTEL_INFO(i915)->ppgtt_size); +	dma_resv_init(&ppgtt->vm.resv);  	i915_address_space_init(&ppgtt->vm, VM_CLASS_PPGTT);  	ppgtt->vm.vma_ops.bind_vma    = ppgtt_bind_vma; | 
