drm/i915/tgl: add GEN12_MAX_CONTEXT_HW_ID
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Sat, 17 Aug 2019 09:38:50 +0000 (02:38 -0700)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 20 Aug 2019 13:23:45 +0000 (14:23 +0100)
Like Gen11, Gen12 has 11 available bits for the ctx id field. However,
the last value (0x7FF) is reserved to indicate engine idle, so we
need to reduce the maximum number of contexts by 1 compared to Gen11.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190817093902.2171-29-lucas.demarchi@intel.com
drivers/gpu/drm/i915/gem/i915_gem_context.c
drivers/gpu/drm/i915/i915_drv.h

index cd1fd2e5423ac1a3a3f1b22a3e5e7762ebc169ae..1cdfe05514c3f6597b78455978030307a5d10b73 100644 (file)
@@ -173,7 +173,9 @@ static inline int new_hw_id(struct drm_i915_private *i915, gfp_t gfp)
 
        lockdep_assert_held(&i915->contexts.mutex);
 
-       if (INTEL_GEN(i915) >= 11)
+       if (INTEL_GEN(i915) >= 12)
+               max = GEN12_MAX_CONTEXT_HW_ID;
+       else if (INTEL_GEN(i915) >= 11)
                max = GEN11_MAX_CONTEXT_HW_ID;
        else if (USES_GUC_SUBMISSION(i915))
                /*
index 63682cb3658a2eba6237a46bb6d3b6c8d98734a1..c69a2f495f9d7efb624fa0bd0caf61084024ec7a 100644 (file)
@@ -1602,6 +1602,8 @@ struct drm_i915_private {
 #define MAX_CONTEXT_HW_ID (1<<21) /* exclusive */
 #define MAX_GUC_CONTEXT_HW_ID (1 << 20) /* exclusive */
 #define GEN11_MAX_CONTEXT_HW_ID (1<<11) /* exclusive */
+/* in Gen12 ID 0x7FF is reserved to indicate idle */
+#define GEN12_MAX_CONTEXT_HW_ID        (GEN11_MAX_CONTEXT_HW_ID - 1)
                struct list_head hw_id_list;
        } contexts;