summaryrefslogtreecommitdiff
path: root/lib/igt_gt.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-09-06 15:34:13 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-09-06 18:57:27 +0100
commitdddbc2ed136f3edf007366c2e81c3f735bd29266 (patch)
tree8ec701faef29fe7a05694a74147b1d6fb1194971 /lib/igt_gt.c
parent918863f8e3e8f49235fd2e4a36e11f386c06c11c (diff)
lib: Disable MI_STORE_DATA_IMM for gen3 (i915g and i915gm)
The early gen3 machines inherited the MI block and restrictions from gen2, and may only use physical addresses in conjunction with MI_STORE_DATA_IMM -- that makes it unusable for us from userspace, where we can only use virtual offsets. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'lib/igt_gt.c')
-rw-r--r--lib/igt_gt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/igt_gt.c b/lib/igt_gt.c
index d5e8b557..b3f3b380 100644
--- a/lib/igt_gt.c
+++ b/lib/igt_gt.c
@@ -557,6 +557,9 @@ bool gem_can_store_dword(int fd, unsigned int engine)
if (gen <= 2) /* requires physical addresses */
return false;
+ if (gen == 3 && (info->is_grantsdale || info->is_alviso))
+ return false; /* only supports physical addresses */
+
if (gen == 6 && (engine & ~(3<<13)) == I915_EXEC_BSD)
return false; /* kills the machine! */