diff options
author | Matthew Auld <matthew.auld@intel.com> | 2022-06-27 17:10:04 +0100 |
---|---|---|
committer | Matthew Auld <matthew.auld@intel.com> | 2022-06-28 15:43:15 +0100 |
commit | 9b9371c8da32533022ad700a7c023b4c3a085fbc (patch) | |
tree | 33bd1a75ec78108a1ea33cc483bd2c8e8d11aa8d | |
parent | fc6274b0081cd9cc42ea30c8b3bfc933944a55ed (diff) |
tests/i915: adapt __copy_ccs for discrete
We can't explicitly control the mmap caching type for discrete, but
using mmap_device_coherent should be good enough here on such devices.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4842
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
-rw-r--r-- | lib/intel_bufops.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c index 05c0b0d4..c63a5760 100644 --- a/lib/intel_bufops.c +++ b/lib/intel_bufops.c @@ -451,11 +451,16 @@ static void __copy_ccs(struct buf_ops *bops, struct intel_buf *buf, ccs_size = CCS_SIZE(gen, buf); size = offset + ccs_size; - map = __gem_mmap_offset__wc(bops->fd, buf->handle, 0, size, - PROT_READ | PROT_WRITE); - if (!map) - map = gem_mmap__wc(bops->fd, buf->handle, 0, size, - PROT_READ | PROT_WRITE); + if (gem_has_lmem(bops->fd)) { + map = gem_mmap__device_coherent(bops->fd, buf->handle, 0, size, + PROT_READ | PROT_WRITE); + } else { + map = __gem_mmap_offset__wc(bops->fd, buf->handle, 0, size, + PROT_READ | PROT_WRITE); + if (!map) + map = gem_mmap__wc(bops->fd, buf->handle, 0, size, + PROT_READ | PROT_WRITE); + } switch (dir) { case CCS_LINEAR_TO_BUF: |