All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [i-g-t, V3] lib/i915: Use FIXED mapping only for discrete memory
@ 2021-08-31  6:00 Tejas Upadhyay
  2021-08-31  6:51 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915: Use FIXED mapping only for discrete memory (rev4) Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Tejas Upadhyay @ 2021-08-31  6:00 UTC (permalink / raw)
  To: igt-dev

The FIXED mapping is only used for discrete, and mapping type
is pre-defined. This disables the other type of mmap
offsets when discrete memory is used.

Taken from kernel commit:
commit 7961c5b60f23 ("drm/i915: Add TTM offset argument to mmap.")

Changes since V2:
	- Add previous logic check for GTT offset type - Ashutosh Dixit
	- Added documentation for library API change - Daniel Vetter
Changes since V1:
        - Make logic more readable - Petri Latvala

Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
---
 include/drm-uapi/i915_drm.h |  1 +
 lib/i915/gem_mman.c         | 20 +++++++++++++++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
index a1c0030c..b46367f2 100644
--- a/include/drm-uapi/i915_drm.h
+++ b/include/drm-uapi/i915_drm.h
@@ -871,6 +871,7 @@ struct drm_i915_gem_mmap_offset {
 #define I915_MMAP_OFFSET_WC  1
 #define I915_MMAP_OFFSET_WB  2
 #define I915_MMAP_OFFSET_UC  3
+#define I915_MMAP_OFFSET_FIXED 4
 
 	/*
 	 * Zero-terminated chain of extensions.
diff --git a/lib/i915/gem_mman.c b/lib/i915/gem_mman.c
index 0406a0b9..aa9ac6f3 100644
--- a/lib/i915/gem_mman.c
+++ b/lib/i915/gem_mman.c
@@ -73,9 +73,27 @@ bool gem_has_legacy_mmap(int fd)
 	return errno != EOPNOTSUPP;
 }
 
+/**
+ * gem_has_mmap_offset_type:
+ * @fd: open i915 drm file descriptor
+ * @*t: pointer to mmap_offset
+ *
+ * This functions checks the mmap offset type is supported or not.
+ * For discrete memory only FIXED mmap_offset type is supported
+ * and for non-discrete memory all other offset type except FIXED
+ * are supported.
+ *
+ * Returns: True if supported or False if not.
+ */
 bool gem_has_mmap_offset_type(int fd, const struct mmap_offset *t)
 {
-	return gem_has_mmap_offset(fd) || t->type == I915_MMAP_OFFSET_GTT;
+	if (gem_has_mmap_offset(fd))
+		if (gem_has_lmem(fd))
+			return t->type == I915_MMAP_OFFSET_FIXED;
+		else
+			return t->type != I915_MMAP_OFFSET_FIXED;
+	else
+		return t->type == I915_MMAP_OFFSET_GTT;
 }
 
 /**
-- 
2.31.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-09-01 10:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-31  6:00 [igt-dev] [i-g-t, V3] lib/i915: Use FIXED mapping only for discrete memory Tejas Upadhyay
2021-08-31  6:51 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/i915: Use FIXED mapping only for discrete memory (rev4) Patchwork
2021-08-31  7:56 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-08-31 18:02 ` [igt-dev] [i-g-t, V3] lib/i915: Use FIXED mapping only for discrete memory Dixit, Ashutosh
2021-09-01 10:03   ` Matthew Auld

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.