Commit ae1da08f authored by Tvrtko Ursulin's avatar Tvrtko Ursulin

drm/i915: Simplify vcs/bsd engine selection

No need to look at the mask of present engines when we already have a
count stored ever since e2d0ff35 ("drm/i915: Count engine instances
per uabi class").
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: default avatarNirmoy Das <nirmoy.das@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230316142728.1335239-1-tvrtko.ursulin@linux.intel.com
[tursulin: fixup typo in patch title]
parent 72f6107d
...@@ -2449,11 +2449,6 @@ static int eb_submit(struct i915_execbuffer *eb) ...@@ -2449,11 +2449,6 @@ static int eb_submit(struct i915_execbuffer *eb)
return err; return err;
} }
static int num_vcs_engines(struct drm_i915_private *i915)
{
return hweight_long(VDBOX_MASK(to_gt(i915)));
}
/* /*
* Find one BSD ring to dispatch the corresponding BSD command. * Find one BSD ring to dispatch the corresponding BSD command.
* The engine index is returned. * The engine index is returned.
...@@ -2467,7 +2462,7 @@ gen8_dispatch_bsd_engine(struct drm_i915_private *dev_priv, ...@@ -2467,7 +2462,7 @@ gen8_dispatch_bsd_engine(struct drm_i915_private *dev_priv,
/* Check whether the file_priv has already selected one ring. */ /* Check whether the file_priv has already selected one ring. */
if ((int)file_priv->bsd_engine < 0) if ((int)file_priv->bsd_engine < 0)
file_priv->bsd_engine = file_priv->bsd_engine =
get_random_u32_below(num_vcs_engines(dev_priv)); get_random_u32_below(dev_priv->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO]);
return file_priv->bsd_engine; return file_priv->bsd_engine;
} }
...@@ -2655,7 +2650,8 @@ eb_select_legacy_ring(struct i915_execbuffer *eb) ...@@ -2655,7 +2650,8 @@ eb_select_legacy_ring(struct i915_execbuffer *eb)
return -1; return -1;
} }
if (user_ring_id == I915_EXEC_BSD && num_vcs_engines(i915) > 1) { if (user_ring_id == I915_EXEC_BSD &&
i915->engine_uabi_class_count[I915_ENGINE_CLASS_VIDEO] > 1) {
unsigned int bsd_idx = args->flags & I915_EXEC_BSD_MASK; unsigned int bsd_idx = args->flags & I915_EXEC_BSD_MASK;
if (bsd_idx == I915_EXEC_BSD_DEFAULT) { if (bsd_idx == I915_EXEC_BSD_DEFAULT) {
......
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