]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915/xehp: Don't support parallel submission on compute / render
authorMatthew Brost <matthew.brost@intel.com>
Tue, 1 Mar 2022 23:15:46 +0000 (15:15 -0800)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 2 Mar 2022 14:52:42 +0000 (06:52 -0800)
A different emit breadcrumbs ring programming is required for compute /
render and we don't have UMD user so just reject parallel submission for
these engine classes.

Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220301231549.1817978-11-matthew.d.roper@intel.com
drivers/gpu/drm/i915/gem/i915_gem_context.c
drivers/gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c

index bc6d59df064dc6914d871f25a70743f892807316..9ae294eb7fb4b85b93f2a082a4362f54d05f69c9 100644 (file)
@@ -670,6 +670,16 @@ set_proto_ctx_engines_parallel_submit(struct i915_user_extension __user *base,
                                goto out_err;
                        }
 
+                       /*
+                        * We don't support breadcrumb handshake on these
+                        * classes
+                        */
+                       if (siblings[n]->class == RENDER_CLASS ||
+                           siblings[n]->class == COMPUTE_CLASS) {
+                               err = -EINVAL;
+                               goto out_err;
+                       }
+
                        if (n) {
                                if (prev_engine.engine_class !=
                                    ci.engine_class) {
index 1297ddbf7f889b56aaa94739b1bf55d581a93bbc..812220a43df81b928ee62a9cfaab78023fb6da00 100644 (file)
@@ -154,6 +154,10 @@ static int intel_guc_multi_lrc_basic(void *arg)
        int ret;
 
        for (class = 0; class < MAX_ENGINE_CLASS + 1; ++class) {
+               /* We don't support breadcrumb handshake on these classes */
+               if (class == COMPUTE_CLASS || class == RENDER_CLASS)
+                       continue;
+
                ret = __intel_guc_multi_lrc_basic(gt, class);
                if (ret)
                        return ret;