From: Christian König <christian.koe...@amd.com>

We somehow forgot the flags paramter in amdgpu_create_bo_from_user_mem(). Fix
that with a new function.

v2: fix typo in function name

Signed-off-by: Christian König <christian.koenig at amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com> (v1)
---
 amdgpu/amdgpu.h    |  8 ++++++++
 amdgpu/amdgpu_bo.c | 26 ++++++++++++++++++--------
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
index 0851306..be7b924 100644
--- a/amdgpu/amdgpu.h
+++ b/amdgpu/amdgpu.h
@@ -637,6 +637,7 @@ int amdgpu_bo_import(amdgpu_device_handle dev,
  * want to map to GPU address space (make GPU accessible)
  * (This address must be correctly aligned).
  * \param size - [in] Size of allocation (must be correctly aligned)
+ * \param flags - [in] AMDGPU_GEM_USERPTR_* flags for userptr
  * \param buf_handle - [out] Buffer handle for the userptr memory
  * resource on submission and be used in other operations.
  *
@@ -660,6 +661,13 @@ int amdgpu_bo_import(amdgpu_device_handle dev,
  * It is responsibility of caller to correctly specify access rights
  * on VA assignment.
 */
+int amdgpu_create_bo_from_userptr(amdgpu_device_handle dev,
+                                 void *cpu, uint64_t size, uint32_t flags,
+                                 amdgpu_bo_handle *buf_handle);
+
+/**
+ * Deprecated, don't use for new implementations
+ */
 int amdgpu_create_bo_from_user_mem(amdgpu_device_handle dev,
                                    void *cpu, uint64_t size,
                                    amdgpu_bo_handle *buf_handle);
diff --git a/amdgpu/amdgpu_bo.c b/amdgpu/amdgpu_bo.c
index d30fd1e..e150376 100644
--- a/amdgpu/amdgpu_bo.c
+++ b/amdgpu/amdgpu_bo.c
@@ -529,18 +529,16 @@ int amdgpu_bo_wait_for_idle(amdgpu_bo_handle bo,
        }
 }

-int amdgpu_create_bo_from_user_mem(amdgpu_device_handle dev,
-                                   void *cpu,
-                                   uint64_t size,
-                                   amdgpu_bo_handle *buf_handle)
+int amdgpu_create_bo_from_userptr(amdgpu_device_handle dev,
+                                 void *cpu, uint64_t size, uint32_t flags,
+                                 amdgpu_bo_handle *buf_handle)
 {
-       int r;
-       struct amdgpu_bo *bo;
        struct drm_amdgpu_gem_userptr args;
+       struct amdgpu_bo *bo;
+       int r;

        args.addr = (uintptr_t)cpu;
-       args.flags = AMDGPU_GEM_USERPTR_ANONONLY | AMDGPU_GEM_USERPTR_REGISTER |
-               AMDGPU_GEM_USERPTR_VALIDATE;
+       args.flags = flags;
        args.size = size;
        r = drmCommandWriteRead(dev->fd, DRM_AMDGPU_GEM_USERPTR,
                                &args, sizeof(args));
@@ -561,6 +559,18 @@ int amdgpu_create_bo_from_user_mem(amdgpu_device_handle 
dev,
        return r;
 }

+int amdgpu_create_bo_from_user_mem(amdgpu_device_handle dev,
+                                  void *cpu, uint64_t size,
+                                  amdgpu_bo_handle *buf_handle)
+{
+       uint32_t flags = AMDGPU_GEM_USERPTR_ANONONLY |
+               AMDGPU_GEM_USERPTR_REGISTER |
+               AMDGPU_GEM_USERPTR_VALIDATE;
+
+       return amdgpu_create_bo_from_userptr(dev, cpu, size,
+                                            flags, buf_handle);
+}
+
 int amdgpu_bo_list_create(amdgpu_device_handle dev,
                          uint32_t number_of_resources,
                          amdgpu_bo_handle *resources,
-- 
2.5.0

Reply via email to