Commit f329f5f6 authored by Daniel Vetter's avatar Daniel Vetter

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
...@@ -1610,14 +1610,16 @@ void i915_ppgtt_release(struct kref *kref) ...@@ -1610,14 +1610,16 @@ void i915_ppgtt_release(struct kref *kref)
static void static void
ppgtt_bind_vma(struct i915_vma *vma, ppgtt_bind_vma(struct i915_vma *vma,
enum i915_cache_level cache_level, enum i915_cache_level cache_level,
u32 flags) u32 unused)
{ {
u32 pte_flags = 0;
/* Currently applicable only to VLV */ /* Currently applicable only to VLV */
if (vma->obj->gt_ro) 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, 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) static void ppgtt_unbind_vma(struct i915_vma *vma)
...@@ -1986,10 +1988,11 @@ static void ggtt_bind_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_private *dev_priv = dev->dev_private;
struct drm_i915_gem_object *obj = vma->obj; struct drm_i915_gem_object *obj = vma->obj;
struct sg_table *pages = obj->pages; struct sg_table *pages = obj->pages;
u32 pte_flags = 0;
/* Currently applicable only to VLV */ /* Currently applicable only to VLV */
if (obj->gt_ro) if (obj->gt_ro)
flags |= PTE_READ_ONLY; pte_flags |= PTE_READ_ONLY;
if (i915_is_ggtt(vma->vm)) if (i915_is_ggtt(vma->vm))
pages = vma->ggtt_view.pages; pages = vma->ggtt_view.pages;
...@@ -2010,7 +2013,7 @@ static void ggtt_bind_vma(struct i915_vma *vma, ...@@ -2010,7 +2013,7 @@ static void ggtt_bind_vma(struct i915_vma *vma,
(cache_level != obj->cache_level)) { (cache_level != obj->cache_level)) {
vma->vm->insert_entries(vma->vm, pages, vma->vm->insert_entries(vma->vm, pages,
vma->node.start, vma->node.start,
cache_level, flags); cache_level, pte_flags);
vma->bound |= GLOBAL_BIND; vma->bound |= GLOBAL_BIND;
} }
} }
...@@ -2021,7 +2024,7 @@ static void ggtt_bind_vma(struct i915_vma *vma, ...@@ -2021,7 +2024,7 @@ static void ggtt_bind_vma(struct i915_vma *vma,
struct i915_hw_ppgtt *appgtt = dev_priv->mm.aliasing_ppgtt; struct i915_hw_ppgtt *appgtt = dev_priv->mm.aliasing_ppgtt;
appgtt->base.insert_entries(&appgtt->base, pages, appgtt->base.insert_entries(&appgtt->base, pages,
vma->node.start, vma->node.start,
cache_level, flags); cache_level, pte_flags);
vma->bound |= LOCAL_BIND; vma->bound |= LOCAL_BIND;
} }
} }
......
...@@ -158,7 +158,6 @@ struct i915_vma { ...@@ -158,7 +158,6 @@ struct i915_vma {
/** Flags and address space this VMA is bound to */ /** Flags and address space this VMA is bound to */
#define GLOBAL_BIND (1<<0) #define GLOBAL_BIND (1<<0)
#define LOCAL_BIND (1<<1) #define LOCAL_BIND (1<<1)
#define PTE_READ_ONLY (1<<2)
unsigned int bound : 4; unsigned int bound : 4;
/** /**
...@@ -261,6 +260,8 @@ struct i915_address_space { ...@@ -261,6 +260,8 @@ struct i915_address_space {
gen6_pte_t (*pte_encode)(dma_addr_t addr, gen6_pte_t (*pte_encode)(dma_addr_t addr,
enum i915_cache_level level, enum i915_cache_level level,
bool valid, u32 flags); /* Create a valid PTE */ 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, int (*allocate_va_range)(struct i915_address_space *vm,
uint64_t start, uint64_t start,
uint64_t length); uint64_t length);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment