2 * SPDX-License-Identifier: MIT
4 * Copyright © 2019 Intel Corporation
7 #include <drm/drm_file.h>
12 unsigned long igt_mmap_offset(struct drm_i915_private *i915,
18 struct drm_vma_offset_node *node;
23 /* no need to refcount, we own this object */
24 drm_vma_offset_lock_lookup(i915->drm.vma_offset_manager);
25 node = drm_vma_offset_exact_lookup_locked(i915->drm.vma_offset_manager,
26 offset / PAGE_SIZE, size / PAGE_SIZE);
27 drm_vma_offset_unlock_lookup(i915->drm.vma_offset_manager);
29 if (GEM_WARN_ON(!node)) {
30 pr_info("Failed to lookup %llx\n", offset);
34 /* Pretend to open("/dev/dri/card0") */
35 file = mock_drm_getfile(i915->drm.primary, O_RDWR);
39 err = drm_vma_node_allow(node, file->private_data);
45 addr = vm_mmap(file, 0, drm_vma_node_size(node) << PAGE_SHIFT,
46 prot, flags, drm_vma_node_offset_addr(node));
48 drm_vma_node_revoke(node, file->private_data);