anv: Pass anv_bo as parameter to anv_gem_mmap()

anv_bo has information that will be needed by a future patch in
anv_gem_mmap(), so here already preparing for that.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20423>
This commit is contained in:
José Roberto de Souza 2022-09-28 13:42:26 -07:00 committed by Marge Bot
parent 95ce9664d5
commit 3e28c5b9f9
4 changed files with 7 additions and 6 deletions

View file

@ -1576,7 +1576,7 @@ anv_device_map_bo(struct anv_device *device,
if (bo->map_wc)
gem_flags |= I915_MMAP_WC;
void *map = anv_gem_mmap(device, bo->gem_handle, offset, size, gem_flags);
void *map = anv_gem_mmap(device, bo, offset, size, gem_flags);
if (unlikely(map == MAP_FAILED))
return vk_errorf(device, VK_ERROR_MEMORY_MAP_FAILED, "mmap failed: %m");

View file

@ -142,9 +142,10 @@ anv_gem_mmap_legacy(struct anv_device *device, uint32_t gem_handle,
* Wrapper around DRM_IOCTL_I915_GEM_MMAP. Returns MAP_FAILED on error.
*/
void*
anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
anv_gem_mmap(struct anv_device *device, struct anv_bo *bo,
uint64_t offset, uint64_t size, uint32_t flags)
{
uint32_t gem_handle = bo->gem_handle;
void *map;
if (device->physical->info.has_mmap_offset)
map = anv_gem_mmap_offset(device, gem_handle, offset, size, flags);

View file

@ -54,14 +54,14 @@ anv_gem_create_regions(struct anv_device *device, uint64_t anv_bo_size,
}
void*
anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
anv_gem_mmap(struct anv_device *device, struct anv_bo *bo,
uint64_t offset, uint64_t size, uint32_t flags)
{
/* Ignore flags, as they're specific to I915_GEM_MMAP. */
(void) flags;
return mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED,
gem_handle, offset);
bo->gem_handle, offset);
}
/* This is just a wrapper around munmap, but it also notifies valgrind that

View file

@ -1360,8 +1360,8 @@ VkResult anv_queue_submit(struct vk_queue *queue,
VkResult anv_queue_submit_simple_batch(struct anv_queue *queue,
struct anv_batch *batch);
void* anv_gem_mmap(struct anv_device *device,
uint32_t gem_handle, uint64_t offset, uint64_t size, uint32_t flags);
void* anv_gem_mmap(struct anv_device *device, struct anv_bo *bo,
uint64_t offset, uint64_t size, uint32_t flags);
void anv_gem_munmap(struct anv_device *device, void *p, uint64_t size);
uint32_t anv_gem_create(struct anv_device *device, uint64_t size);
void anv_gem_close(struct anv_device *device, uint32_t gem_handle);