From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Now that it only contains three parameters we can pass them directly to execbuf_submit just as well. No effect on generated binary, just a source reduction. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 39 ++++++++---------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index afbb56196162..82e74db5923b 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -49,12 +49,6 @@ #define BATCH_OFFSET_BIAS (256*1024) -struct i915_execbuffer_params { - u32 dispatch_flags; - u32 batch_start; - struct drm_i915_gem_request *request; -}; - struct eb_vmas { struct drm_i915_private *i915; struct list_head vmas; @@ -1404,11 +1398,10 @@ i915_gem_execbuffer_parse(struct intel_engine_cs *engine, } static int -execbuf_submit(struct i915_execbuffer_params *params, - struct drm_i915_gem_execbuffer2 *args, +execbuf_submit(struct drm_i915_gem_request *req, u32 batch_start, + u32 dispatch_flags, struct drm_i915_gem_execbuffer2 *args, struct list_head *vmas) { - struct drm_i915_gem_request *req = params->request; struct drm_i915_private *dev_priv = req->i915; struct intel_engine_cs *engine = req->engine; u64 exec_start, exec_len; @@ -1481,17 +1474,16 @@ execbuf_submit(struct i915_execbuffer_params *params, } exec_len = args->batch_len; - exec_start = req->batch->node.start + params->batch_start; + exec_start = req->batch->node.start + batch_start; if (exec_len == 0) - exec_len = req->batch->size - params->batch_start; + exec_len = req->batch->size - batch_start; - ret = engine->emit_bb_start(req, exec_start, exec_len, - params->dispatch_flags); + ret = engine->emit_bb_start(req, exec_start, exec_len, dispatch_flags); if (ret) return ret; - trace_i915_gem_ring_dispatch(req, params->dispatch_flags); + trace_i915_gem_ring_dispatch(req, dispatch_flags); i915_gem_execbuffer_move_to_active(vmas, req); @@ -1589,8 +1581,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, struct i915_address_space *vm; struct drm_i915_gem_request *req; struct i915_vma *batch; - u32 batch_start_offset; - struct i915_execbuffer_params params; + u32 batch_start; const u32 ctx_id = i915_execbuffer2_get_context_id(*args); u32 dispatch_flags; struct dma_fence *in_fence = NULL; @@ -1732,7 +1723,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, goto err; } - batch_start_offset = args->batch_start_offset; + batch_start = args->batch_start_offset; if (engine->needs_cmd_parser && args->batch_len) { struct i915_vma *vma; @@ -1758,7 +1749,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, * command parser has accepted. */ dispatch_flags |= I915_DISPATCH_SECURE; - batch_start_offset = 0; + batch_start = 0; batch = vma; } } @@ -1824,17 +1815,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, if (ret) goto err_request; - /* - * Save assorted stuff away to pass through to *_submission(). - * NB: This data should be 'persistent' and not local as it will - * kept around beyond the duration of the IOCTL once the GPU - * scheduler arrives. - */ - params.dispatch_flags = dispatch_flags; - params.batch_start = batch_start_offset; - params.request = req; - - ret = execbuf_submit(¶ms, args, &eb->vmas); + ret = execbuf_submit(req, batch_start, dispatch_flags, args, &eb->vmas); err_request: __i915_add_request(req, ret == 0); if (out_fence) { -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx