We may be missing support for the mappable aperture on some platforms.

Signed-off-by: Matthew Auld <matthew.a...@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospu...@intel.com>
---
 .../drm/i915/gem/selftests/i915_gem_coherency.c    |  5 ++++-
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |  6 ++++++
 drivers/gpu/drm/i915/gt/selftest_hangcheck.c       | 14 ++++++++++----
 drivers/gpu/drm/i915/selftests/i915_gem.c          |  3 +++
 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c      |  3 +++
 5 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
index 0ff7a89aadca..07faeada86eb 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c
@@ -246,7 +246,10 @@ static bool always_valid(struct drm_i915_private *i915)
 
 static bool needs_fence_registers(struct drm_i915_private *i915)
 {
-       return !intel_gt_is_wedged(&i915->gt);
+       if (intel_gt_is_wedged(&i915->gt))
+               return false;
+
+       return i915->ggtt.num_fences;
 }
 
 static bool needs_mi_store_dword(struct drm_i915_private *i915)
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c 
b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index aefe557527f8..cb880d73ef73 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -301,6 +301,9 @@ static int igt_partial_tiling(void *arg)
        int tiling;
        int err;
 
+       if (!HAS_MAPPABLE_APERTURE(i915))
+               return 0;
+
        /* We want to check the page mapping and fencing of a large object
         * mmapped through the GTT. The object we create is larger than can
         * possibly be mmaped as a whole, and so we must use partial GGTT vma.
@@ -433,6 +436,9 @@ static int igt_smoke_tiling(void *arg)
        IGT_TIMEOUT(end);
        int err;
 
+       if (!HAS_MAPPABLE_APERTURE(i915))
+               return 0;
+
        /*
         * igt_partial_tiling() does an exhastive check of partial tiling
         * chunking, but will undoubtably run out of time. Here, we do a
diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c 
b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index a0098fc35921..35cc2c68b32f 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -1189,8 +1189,12 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
        struct i915_request *rq;
        struct evict_vma arg;
        struct hang h;
+       unsigned int pin_flags;
        int err;
 
+       if (!gt->ggtt->num_fences && flags & EXEC_OBJECT_NEEDS_FENCE)
+               return 0;
+
        if (!engine || !intel_engine_can_store_dword(engine))
                return 0;
 
@@ -1227,10 +1231,12 @@ static int __igt_reset_evict_vma(struct intel_gt *gt,
                goto out_obj;
        }
 
-       err = i915_vma_pin(arg.vma, 0, 0,
-                          i915_vma_is_ggtt(arg.vma) ?
-                          PIN_GLOBAL | PIN_MAPPABLE :
-                          PIN_USER);
+       pin_flags = i915_vma_is_ggtt(arg.vma) ? PIN_GLOBAL : PIN_USER;
+
+       if (flags & EXEC_OBJECT_NEEDS_FENCE)
+               pin_flags |= PIN_MAPPABLE;
+
+       err = i915_vma_pin(arg.vma, 0, 0, pin_flags);
        if (err) {
                i915_request_add(rq);
                goto out_obj;
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem.c 
b/drivers/gpu/drm/i915/selftests/i915_gem.c
index 37593831b539..4951957a4d8d 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem.c
@@ -42,6 +42,9 @@ static void trash_stolen(struct drm_i915_private *i915)
        unsigned long page;
        u32 prng = 0x12345678;
 
+       if (!HAS_MAPPABLE_APERTURE(i915))
+               return;
+
        for (page = 0; page < size; page += PAGE_SIZE) {
                const dma_addr_t dma = i915->dsm.start + page;
                u32 __iomem *s;
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c 
b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
index f4d7b254c9a7..57dd237cd220 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
@@ -1152,6 +1152,9 @@ static int igt_ggtt_page(void *arg)
        unsigned int *order, n;
        int err;
 
+       if (!HAS_MAPPABLE_APERTURE(i915))
+               return 0;
+
        mutex_lock(&i915->drm.struct_mutex);
 
        obj = i915_gem_object_create_internal(i915, PAGE_SIZE);
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to