From dddbc2ed136f3edf007366c2e81c3f735bd29266 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 6 Sep 2017 15:34:13 +0100 Subject: lib: Disable MI_STORE_DATA_IMM for gen3 (i915g and i915gm) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ville Syrjälä --- lib/igt_dummyload.c | 13 ++++++++++--- lib/igt_gt.c | 3 +++ lib/ioctl_wrappers.h | 1 + 3 files changed, 14 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c index f2a94b55..c98f15f1 100644 --- a/lib/igt_dummyload.c +++ b/lib/igt_dummyload.c @@ -22,11 +22,18 @@ * */ -#include "igt.h" -#include "igt_dummyload.h" #include #include -#include +#include + +#include + +#include "igt_core.h" +#include "igt_dummyload.h" +#include "igt_gt.h" +#include "intel_chipset.h" +#include "intel_reg.h" +#include "ioctl_wrappers.h" /** * SECTION:igt_dummyload 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! */ diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h index 8915edca..090c1251 100644 --- a/lib/ioctl_wrappers.h +++ b/lib/ioctl_wrappers.h @@ -32,6 +32,7 @@ #include #include +#include #include #include -- cgit v1.2.3