drm/i915: Update ring->emit_bb_start() to take a request structure
authorJohn Harrison <John.C.Harrison@Intel.com>
Fri, 29 May 2015 16:44:03 +0000 (17:44 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 23 Jun 2015 12:02:26 +0000 (14:02 +0200)
Updated the ring->emit_bb_start() implementation to take a request instead of a
ringbuf/context pair.

For: VIZ-5115
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Tomas Elf <tomas.elf@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_lrc.c
drivers/gpu/drm/i915/intel_ringbuffer.h

index 9be732b4012129c451e5699ef4e5cf95c0e32d53..9e99c6226b57e291ea1ab51b3e4fbcf78003cb82 100644 (file)
@@ -936,7 +936,7 @@ int intel_execlists_submission(struct i915_execbuffer_params *params,
        exec_start = params->batch_obj_vm_offset +
                     args->batch_start_offset;
 
-       ret = ring->emit_bb_start(ringbuf, params->ctx, exec_start, params->dispatch_flags);
+       ret = ring->emit_bb_start(params->request, exec_start, params->dispatch_flags);
        if (ret)
                return ret;
 
@@ -1365,14 +1365,14 @@ static int gen9_init_render_ring(struct intel_engine_cs *ring)
        return init_workarounds_ring(ring);
 }
 
-static int gen8_emit_bb_start(struct intel_ringbuffer *ringbuf,
-                             struct intel_context *ctx,
+static int gen8_emit_bb_start(struct drm_i915_gem_request *req,
                              u64 offset, unsigned dispatch_flags)
 {
+       struct intel_ringbuffer *ringbuf = req->ringbuf;
        bool ppgtt = !(dispatch_flags & I915_DISPATCH_SECURE);
        int ret;
 
-       ret = intel_logical_ring_begin(ringbuf, ctx, 4);
+       ret = intel_logical_ring_begin(ringbuf, req->ctx, 4);
        if (ret)
                return ret;
 
@@ -1582,9 +1582,7 @@ static int intel_lr_context_render_state_init(struct drm_i915_gem_request *req)
        if (so.rodata == NULL)
                return 0;
 
-       ret = req->ring->emit_bb_start(req->ringbuf,
-                                      req->ctx,
-                                      so.ggtt_offset,
+       ret = req->ring->emit_bb_start(req, so.ggtt_offset,
                                       I915_DISPATCH_SECURE);
        if (ret)
                goto out;
index bf679ae03aa15f9e74b926c41a4749e144d0cc11..1f11c3236768f47f7a7b55dcbab02409d434f5f6 100644 (file)
@@ -270,8 +270,7 @@ struct  intel_engine_cs {
        int             (*emit_flush)(struct drm_i915_gem_request *request,
                                      u32 invalidate_domains,
                                      u32 flush_domains);
-       int             (*emit_bb_start)(struct intel_ringbuffer *ringbuf,
-                                        struct intel_context *ctx,
+       int             (*emit_bb_start)(struct drm_i915_gem_request *req,
                                         u64 offset, unsigned dispatch_flags);
 
        /**