Commit f85dc3c5 authored by Matthew Brost's avatar Matthew Brost
Browse files

drm/xe: Add xe_bo_vm_access



Add xe_bo_vm_access which is wrapper around ttm_bo_vm_access which takes
rpm refs for device access.

Suggested-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241126174615.2665852-2-matthew.brost@intel.com
parent febc689b
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -1249,11 +1249,26 @@ static vm_fault_t xe_gem_fault(struct vm_fault *vmf)
	return ret;
}

static int xe_bo_vm_access(struct vm_area_struct *vma, unsigned long addr,
			   void *buf, int len, int write)
{
	struct ttm_buffer_object *ttm_bo = vma->vm_private_data;
	struct xe_bo *bo = ttm_to_xe_bo(ttm_bo);
	struct xe_device *xe = xe_bo_device(bo);
	int ret;

	xe_pm_runtime_get(xe);
	ret = ttm_bo_vm_access(vma, addr, buf, len, write);
	xe_pm_runtime_put(xe);

	return ret;
}

static const struct vm_operations_struct xe_gem_vm_ops = {
	.fault = xe_gem_fault,
	.open = ttm_bo_vm_open,
	.close = ttm_bo_vm_close,
	.access = ttm_bo_vm_access
	.access = xe_bo_vm_access,
};

static const struct drm_gem_object_funcs xe_gem_object_funcs = {