summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Kempczyński <zbigniew.kempczynski@intel.com>2021-06-17 07:44:18 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2021-11-16 09:50:34 +0100
commit4c82fd0506b4cc196a375d1200361fb0c5439acd (patch)
treee336f5eaf5812426893d72b349869b6f9e625048
parenta457e2229c46d6580148d9b0be3740c447ec7783 (diff)
drm/i915: Add relocation exceptions for two other platforms
For topic/intel-for-CI branch only. We have established previously we stop using relocations starting from gen12 platforms with Tigerlake as an exception. We keep this statement but we want to enable relocations conditionally for Alderlake S+P under require_force_probe flag set. Keeping relocations under require_force_probe flag is interim solution until IGTs will be rewritten to use softpin. v2: - remove inline from function definition (Jani) - fix indentation v3: change to GRAPHICS_VER() (Zbigniew) v4: remove RKL from flag as it is already shipped (Rodrigo) v5: prepare patch to be used within topic/intel-for-CI branch only v6: change comment (Rodrigo) Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Jason Ekstrand <jason@jlekstrand.net> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Acked-by: Dave Airlie <airlied@redhat.com> Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
-rw-r--r--drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 4d7da07442f2..9c323666bd7c 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -490,16 +490,27 @@ eb_unreserve_vma(struct eb_vma *ev)
ev->flags &= ~__EXEC_OBJECT_RESERVED;
}
+static bool platform_has_relocs_enabled(const struct i915_execbuffer *eb)
+{
+ /*
+ * Relocations are disallowed starting from gen12 with Tigerlake
+ * as an exception. To unblock CI, we are temporarily allowing it
+ * for Rocketlake and Alderlake.
+ */
+ if (GRAPHICS_VER(eb->i915) < 12 || IS_TIGERLAKE(eb->i915) ||
+ IS_ROCKETLAKE(eb->i915) || IS_ALDERLAKE_S(eb->i915) ||
+ IS_ALDERLAKE_P(eb->i915))
+ return true;
+
+ return false;
+}
+
static int
eb_validate_vma(struct i915_execbuffer *eb,
struct drm_i915_gem_exec_object2 *entry,
struct i915_vma *vma)
{
- /* Relocations are disallowed for all platforms after TGL-LP. This
- * also covers all platforms with local memory.
- */
- if (entry->relocation_count &&
- GRAPHICS_VER(eb->i915) >= 12 && !IS_TIGERLAKE(eb->i915))
+ if (entry->relocation_count && !platform_has_relocs_enabled(eb))
return -EINVAL;
if (unlikely(entry->flags & eb->invalid_flags))