[igt-dev] [i-g-t, V4 1/2] lib/i915: Use FIXED mapping only for discrete memory
Tejas Upadhyay
tejaskumarx.surendrakumar.upadhyay at intel.com
Wed Sep 1 10:34:01 UTC 2021
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 V3:
- Split change in two commits - Matthew Auld
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 at intel.com>
---
lib/i915/gem_mman.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
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
More information about the igt-dev
mailing list