summaryrefslogtreecommitdiff
path: root/tools/include/uapi/drm/i915_drm.h
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2018-12-14 12:33:31 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2018-12-14 12:33:31 +0100
commitbb22dc14a2c29f6efef40ee72344c5d283a92987 (patch)
tree90938fc65a1c67ce3afbf3ccae7f10250a696332 /tools/include/uapi/drm/i915_drm.h
parentfca91f6d60b6ee53b8d43c8ad5bad153a758961c (diff)
parent211929fd3f7c8de4d541b1cc243b82830e5ea1e8 (diff)
Merge branch 'khdr_fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest into HEAD
Merge topic branch from Shuah.
Diffstat (limited to 'tools/include/uapi/drm/i915_drm.h')
-rw-r--r--tools/include/uapi/drm/i915_drm.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h
index 7f5634ce8e88..a4446f452040 100644
--- a/tools/include/uapi/drm/i915_drm.h
+++ b/tools/include/uapi/drm/i915_drm.h
@@ -529,6 +529,28 @@ typedef struct drm_i915_irq_wait {
*/
#define I915_PARAM_CS_TIMESTAMP_FREQUENCY 51
+/*
+ * Once upon a time we supposed that writes through the GGTT would be
+ * immediately in physical memory (once flushed out of the CPU path). However,
+ * on a few different processors and chipsets, this is not necessarily the case
+ * as the writes appear to be buffered internally. Thus a read of the backing
+ * storage (physical memory) via a different path (with different physical tags
+ * to the indirect write via the GGTT) will see stale values from before
+ * the GGTT write. Inside the kernel, we can for the most part keep track of
+ * the different read/write domains in use (e.g. set-domain), but the assumption
+ * of coherency is baked into the ABI, hence reporting its true state in this
+ * parameter.
+ *
+ * Reports true when writes via mmap_gtt are immediately visible following an
+ * lfence to flush the WCB.
+ *
+ * Reports false when writes via mmap_gtt are indeterminately delayed in an in
+ * internal buffer and are _not_ immediately visible to third parties accessing
+ * directly via mmap_cpu/mmap_wc. Use of mmap_gtt as part of an IPC
+ * communications channel when reporting false is strongly disadvised.
+ */
+#define I915_PARAM_MMAP_GTT_COHERENT 52
+
typedef struct drm_i915_getparam {
__s32 param;
/*