From e0a9ec34e7d6f0d4a5b77078f373e0e17d5c0b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Fri, 7 Mar 2025 08:02:19 -0800 Subject: [PATCH] intel: Add has_partial_mmap_offset to intel_device_info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 3fc79582a1db ("drm/i915: Increase I915_PARAM_MMAP_GTT_VERSION version to indicate support for partial mmaps") increased the I915_PARAM_MMAP_GTT_VERSION version, with that we can detect what kernel version has the partial mmap fix or not and limit the usage of this workaround. This time o mmap will be used in memory pool, so here adding this propertly to enable or not the feature. Reviewed-by: Lionel Landwerlin Signed-off-by: José Roberto de Souza Part-of: --- src/intel/dev/i915/intel_device_info.c | 4 +++- src/intel/dev/intel_device_info.py | 1 + src/intel/dev/xe/intel_device_info.c | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/intel/dev/i915/intel_device_info.c b/src/intel/dev/i915/intel_device_info.c index 02b4dcbc3ce..69c0a111458 100644 --- a/src/intel/dev/i915/intel_device_info.c +++ b/src/intel/dev/i915/intel_device_info.c @@ -605,8 +605,10 @@ bool intel_device_info_i915_get_info_from_fd(int fd, struct intel_device_info *d if (devinfo->ver > 12 || intel_device_info_is_mtl_or_arl(devinfo)) devinfo->has_set_pat_uapi = true; - if (getparam(fd, I915_PARAM_MMAP_GTT_VERSION, &val)) + if (getparam(fd, I915_PARAM_MMAP_GTT_VERSION, &val)) { devinfo->has_mmap_offset = val >= 4; + devinfo->has_partial_mmap_offset = val >= 5; + } if (getparam(fd, I915_PARAM_HAS_USERPTR_PROBE, &val)) devinfo->has_userptr_probe = val; if (getparam(fd, I915_PARAM_HAS_CONTEXT_ISOLATION, &val)) diff --git a/src/intel/dev/intel_device_info.py b/src/intel/dev/intel_device_info.py index 582c2dd02a6..77a486ed0dc 100644 --- a/src/intel/dev/intel_device_info.py +++ b/src/intel/dev/intel_device_info.py @@ -301,6 +301,7 @@ Struct("intel_device_info", Member("bool", "has_lsc", compiler_field=True), Member("bool", "has_mesh_shading"), Member("bool", "has_mmap_offset"), + Member("bool", "has_partial_mmap_offset"), Member("bool", "has_userptr_probe"), Member("bool", "has_context_isolation"), Member("bool", "has_set_pat_uapi"), diff --git a/src/intel/dev/xe/intel_device_info.c b/src/intel/dev/xe/intel_device_info.c index 29410e1bf17..f76c8680501 100644 --- a/src/intel/dev/xe/intel_device_info.c +++ b/src/intel/dev/xe/intel_device_info.c @@ -356,6 +356,7 @@ intel_device_info_xe_get_info_from_fd(int fd, struct intel_device_info *devinfo) devinfo->has_context_isolation = true; devinfo->has_mmap_offset = true; + devinfo->has_partial_mmap_offset = true; devinfo->has_caching_uapi = false; devinfo->has_set_pat_uapi = true;