On Fri, Mar 01, 2024 at 12:28:57AM +0100, Andi Shyti wrote:
Some of the CCS engines are disabled. They should not be listed in the uabi_engine list, that is the list of engines that the user can see.
Fused off engines already aren't visible to userspace (or to the kernel for that matter). For CCS engines engine_mask_apply_compute_fuses() removes the fused off engines from the runtime engine mask; other engine types are handled in similar functions. Any engine that doesn't appear in the filtered down engine_mask won't even have a 'struct intel_engine_cs' allocated for it.
Matt
Fixes: d2eae8e98d59 ("drm/i915/dg2: Drop force_probe requirement") Requires: 4e4f77d74878 ("drm/i915/gt: Refactor uabi engine class/instance list creation") Signed-off-by: Andi Shyti andi.shyti@linux.intel.com
drivers/gpu/drm/i915/gt/intel_engine_user.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c b/drivers/gpu/drm/i915/gt/intel_engine_user.c index cf8f24ad88f6..ec5bcd1c1ec4 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_user.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c @@ -244,6 +244,18 @@ void intel_engines_driver_register(struct drm_i915_private *i915) if (uabi_class > I915_LAST_UABI_ENGINE_CLASS) continue;
/*
* If the CCS engine is fused off, the corresponding bit
* in the engine mask is disabled. Do not expose it
* to the user.
*
* By default at least one engine is enabled (check
* the engine_mask_apply_compute_fuses() function.
*/
if (!(engine->gt->info.engine_mask &
BIT(_CCS(engine->uabi_instance))))
continue;
- GEM_BUG_ON(uabi_class >= ARRAY_SIZE(i915->engine_uabi_class_count)); i915->engine_uabi_class_count[uabi_class]++;
-- 2.43.0