From: Adrian Larumbe <[email protected]> In a previous commit, the uAPI documentation for this param was updated to reflect the actual usage expected by Iris. Now make sure the driver does indeed return a boolean value rather than an engine bitmask.
Signed-off-by: Adrian Larumbe <[email protected]> Signed-off-by: Krzysztof Niemiec <[email protected]> --- drivers/gpu/drm/i915/gt/intel_engine_user.c | 14 ++++++++++++++ drivers/gpu/drm/i915/gt/intel_engine_user.h | 1 + drivers/gpu/drm/i915/i915_getparam.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c b/drivers/gpu/drm/i915/gt/intel_engine_user.c index 833987015b8b..1f8e2bc540a9 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_user.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c @@ -324,3 +324,17 @@ unsigned int intel_engines_has_context_isolation(struct drm_i915_private *i915) return which; } + +bool engines_context_isolated(struct drm_i915_private *i915) +{ + struct intel_engine_cs *engine; + + if (!DRIVER_CAPS(i915)->has_logical_contexts) + return false; + + for_each_uabi_engine(engine, i915) + if (!engine->default_state) + return false; + + return true; +} diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.h b/drivers/gpu/drm/i915/gt/intel_engine_user.h index 3dc7e8ab9fbc..760167db07d5 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_user.h +++ b/drivers/gpu/drm/i915/gt/intel_engine_user.h @@ -15,6 +15,7 @@ struct intel_engine_cs * intel_engine_lookup_user(struct drm_i915_private *i915, u8 class, u8 instance); unsigned int intel_engines_has_context_isolation(struct drm_i915_private *i915); +bool engines_context_isolated(struct drm_i915_private *i915); void intel_engine_add_user(struct intel_engine_cs *engine); void intel_engines_driver_register(struct drm_i915_private *i915); diff --git a/drivers/gpu/drm/i915/i915_getparam.c b/drivers/gpu/drm/i915/i915_getparam.c index 6fcda6d7b5b7..34999ab51a6f 100644 --- a/drivers/gpu/drm/i915/i915_getparam.c +++ b/drivers/gpu/drm/i915/i915_getparam.c @@ -163,7 +163,7 @@ int i915_getparam_ioctl(struct drm_device *dev, void *data, value = -EINVAL; break; case I915_PARAM_HAS_CONTEXT_ISOLATION: - value = intel_engines_has_context_isolation(i915); + value = engines_context_isolated(i915); break; case I915_PARAM_SLICE_MASK: /* Not supported from Xe_HP onward; use topology queries */ -- 2.45.2
