]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/gpu/drm/i915/i915_gem_execbuffer.c
drm/i915: Mark all non-vma being inserted into the address spaces
[mirror_ubuntu-bionic-kernel.git] / drivers / gpu / drm / i915 / i915_gem_execbuffer.c
index fb5b44339f710024907229f5294018f63b5bbc71..5f164adc837cd11937e12003ae931405b6c787d7 100644 (file)
@@ -287,7 +287,7 @@ static inline int use_cpu_reloc(struct drm_i915_gem_object *obj)
        if (DBG_USE_CPU_RELOC)
                return DBG_USE_CPU_RELOC > 0;
 
-       return (HAS_LLC(obj->base.dev) ||
+       return (HAS_LLC(to_i915(obj->base.dev)) ||
                obj->base.write_domain == I915_GEM_DOMAIN_CPU ||
                obj->cache_level != I915_CACHE_NONE);
 }
@@ -437,7 +437,7 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj,
                        memset(&cache->node, 0, sizeof(cache->node));
                        ret = drm_mm_insert_node_in_range_generic
                                (&ggtt->base.mm, &cache->node,
-                                4096, 0, 0,
+                                4096, 0, I915_COLOR_UNEVICTABLE,
                                 0, ggtt->mappable_end,
                                 DRM_MM_SEARCH_DEFAULT,
                                 DRM_MM_CREATE_DEFAULT);
@@ -833,7 +833,7 @@ need_reloc_mappable(struct i915_vma *vma)
                return false;
 
        /* See also use_cpu_reloc() */
-       if (HAS_LLC(vma->obj->base.dev))
+       if (HAS_LLC(to_i915(vma->obj->base.dev)))
                return false;
 
        if (vma->obj->base.write_domain == I915_GEM_DOMAIN_CPU)
@@ -1232,14 +1232,12 @@ i915_gem_validate_context(struct drm_device *dev, struct drm_file *file,
                          struct intel_engine_cs *engine, const u32 ctx_id)
 {
        struct i915_gem_context *ctx;
-       struct i915_ctx_hang_stats *hs;
 
        ctx = i915_gem_context_lookup(file->driver_priv, ctx_id);
        if (IS_ERR(ctx))
                return ctx;
 
-       hs = &ctx->hang_stats;
-       if (hs->banned) {
+       if (ctx->banned) {
                DRM_DEBUG("Context %u tried to submit while banned\n", ctx_id);
                return ERR_PTR(-EIO);
        }
@@ -1276,9 +1274,8 @@ void i915_vma_move_to_active(struct i915_vma *vma,
        list_move_tail(&vma->vm_link, &vma->vm->active_list);
 
        if (flags & EXEC_OBJECT_WRITE) {
-               i915_gem_active_set(&vma->last_write, req);
-
-               intel_fb_obj_invalidate(obj, ORIGIN_CS);
+               if (intel_fb_obj_invalidate(obj, ORIGIN_CS))
+                       i915_gem_active_set(&obj->frontbuffer_write, req);
 
                /* update for the implicit flush after a batch */
                obj->base.write_domain &= ~I915_GEM_GPU_DOMAINS;
@@ -1624,7 +1621,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
        }
 
        if (args->flags & I915_EXEC_RESOURCE_STREAMER) {
-               if (!HAS_RESOURCE_STREAMER(dev)) {
+               if (!HAS_RESOURCE_STREAMER(dev_priv)) {
                        DRM_DEBUG("RS is only allowed for Haswell, Gen8 and above\n");
                        return -EINVAL;
                }
@@ -1716,7 +1713,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
        }
 
        params->args_batch_start_offset = args->batch_start_offset;
-       if (intel_engine_needs_cmd_parser(engine) && args->batch_len) {
+       if (engine->needs_cmd_parser && args->batch_len) {
                struct i915_vma *vma;
 
                vma = i915_gem_execbuffer_parse(engine, &shadow_exec_entry,
@@ -1878,7 +1875,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
                exec2_list[i].relocs_ptr = exec_list[i].relocs_ptr;
                exec2_list[i].alignment = exec_list[i].alignment;
                exec2_list[i].offset = exec_list[i].offset;
-               if (INTEL_INFO(dev)->gen < 4)
+               if (INTEL_GEN(to_i915(dev)) < 4)
                        exec2_list[i].flags = EXEC_OBJECT_NEEDS_FENCE;
                else
                        exec2_list[i].flags = 0;