Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f329f5f6 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm/i915: Move PTE_READ_ONLY to ->pte_encode vfunc



It's only used as a flag there, so unconfuse things a bit.
Also separate the bind_vma flag space from the pte_encode flag
space in the code.

Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 5c5f6457
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -1610,14 +1610,16 @@ void i915_ppgtt_release(struct kref *kref)
static void
ppgtt_bind_vma(struct i915_vma *vma,
	       enum i915_cache_level cache_level,
	       u32 flags)
	       u32 unused)
{
	u32 pte_flags = 0;

	/* Currently applicable only to VLV */
	if (vma->obj->gt_ro)
		flags |= PTE_READ_ONLY;
		pte_flags |= PTE_READ_ONLY;

	vma->vm->insert_entries(vma->vm, vma->obj->pages, vma->node.start,
				cache_level, flags);
				cache_level, pte_flags);
}

static void ppgtt_unbind_vma(struct i915_vma *vma)
@@ -1986,10 +1988,11 @@ static void ggtt_bind_vma(struct i915_vma *vma,
	struct drm_i915_private *dev_priv = dev->dev_private;
	struct drm_i915_gem_object *obj = vma->obj;
	struct sg_table *pages = obj->pages;
	u32 pte_flags = 0;

	/* Currently applicable only to VLV */
	if (obj->gt_ro)
		flags |= PTE_READ_ONLY;
		pte_flags |= PTE_READ_ONLY;

	if (i915_is_ggtt(vma->vm))
		pages = vma->ggtt_view.pages;
@@ -2010,7 +2013,7 @@ static void ggtt_bind_vma(struct i915_vma *vma,
		    (cache_level != obj->cache_level)) {
			vma->vm->insert_entries(vma->vm, pages,
						vma->node.start,
						cache_level, flags);
						cache_level, pte_flags);
			vma->bound |= GLOBAL_BIND;
		}
	}
@@ -2021,7 +2024,7 @@ static void ggtt_bind_vma(struct i915_vma *vma,
		struct i915_hw_ppgtt *appgtt = dev_priv->mm.aliasing_ppgtt;
		appgtt->base.insert_entries(&appgtt->base, pages,
					    vma->node.start,
					    cache_level, flags);
					    cache_level, pte_flags);
		vma->bound |= LOCAL_BIND;
	}
}
+2 −1
Original line number Diff line number Diff line
@@ -158,7 +158,6 @@ struct i915_vma {
	/** Flags and address space this VMA is bound to */
#define GLOBAL_BIND	(1<<0)
#define LOCAL_BIND	(1<<1)
#define PTE_READ_ONLY	(1<<2)
	unsigned int bound : 4;

	/**
@@ -261,6 +260,8 @@ struct i915_address_space {
	gen6_pte_t (*pte_encode)(dma_addr_t addr,
				 enum i915_cache_level level,
				 bool valid, u32 flags); /* Create a valid PTE */
	/* flags for pte_encode */
#define PTE_READ_ONLY	(1<<0)
	int (*allocate_va_range)(struct i915_address_space *vm,
				 uint64_t start,
				 uint64_t length);