From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 305E589E0E for ; Tue, 31 Aug 2021 18:02:34 +0000 (UTC) Date: Tue, 31 Aug 2021 11:02:22 -0700 Message-ID: <87fsupv6fl.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" In-Reply-To: <20210831060013.1215605-1-tejaskumarx.surendrakumar.upadhyay@intel.com> References: <20210831060013.1215605-1-tejaskumarx.surendrakumar.upadhyay@intel.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Subject: Re: [igt-dev] [i-g-t, V3] lib/i915: Use FIXED mapping only for discrete memory List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Tejas Upadhyay , Matthew Auld Cc: igt-dev@lists.freedesktop.org List-ID: On Mon, 30 Aug 2021 23:00:13 -0700, Tejas Upadhyay wrote: > > 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 > --- > 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 I don't believe we can add stuff to i915_drm.h like this we need to sync with the kernel in drm-next? Also I915_MMAP_OFFSET_FIXED is already available in lib/i915/i915_drm_local.h, so do we need to add this? Matt, do you have any comments on this since you introduced the FIXED mmap type? I am ok with the patch otherwise. Thanks. > > /* > * 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 >