amdgpu: add va range query interface
authorSabre Shao <Sabre.Shao@amd.com>
Thu, 9 Jul 2015 05:53:24 +0000 (13:53 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 5 Aug 2015 17:47:52 +0000 (13:47 -0400)
amdgpu_va_range_query interface is added so that client can query va
range supported by specific device.

Signed-off-by: Sabre Shao <Sabre.Shao@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
amdgpu/amdgpu.h
amdgpu/amdgpu_vamgr.c

index fcd12b3..a38e488 100644 (file)
@@ -1155,4 +1155,25 @@ int amdgpu_va_range_alloc(amdgpu_device_handle dev,
 */
 int amdgpu_va_range_free(amdgpu_va_handle va_range_handle);
 
+/**
+* Query virtual address range
+*
+* UMD can query GPU VM range supported by each device
+* to initialize its own VAM accordingly.
+*
+* \param   dev    - [in] Device handle. See #amdgpu_device_initialize()
+* \param   type   - \c [in] Type of virtual address range
+* \param   offset - \c [out] Start offset of virtual address range
+* \param   size   - \c [out] Size of virtual address range
+*
+* \return   0 on success\n
+*          <0 - Negative POSIX Error code
+*
+*/
+
+int amdgpu_va_range_query(amdgpu_device_handle dev,
+                         enum amdgpu_gpu_va_range type,
+                         uint64_t *start,
+                         uint64_t *end);
+
 #endif /* #ifdef _AMDGPU_H_ */
index faffba2..d6ec9b4 100644 (file)
 
 static struct amdgpu_bo_va_mgr vamgr = {{0}};
 
+int amdgpu_va_range_query(amdgpu_device_handle dev,
+                         enum amdgpu_gpu_va_range type, uint64_t *start, uint64_t *end)
+{
+       if (type == amdgpu_gpu_va_range_general) {
+               *start = dev->dev_info.virtual_address_offset;
+               *end = dev->dev_info.virtual_address_max;
+               return 0;
+       }
+       return -EINVAL;
+}
+
 static void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, struct amdgpu_device *dev)
 {
        mgr->va_offset = dev->dev_info.virtual_address_offset;