aboutsummaryrefslogtreecommitdiffstats
path: root/amdgpu
diff options
context:
space:
mode:
authorAndrey Grodzovsky2017-10-27 10:09:10 -0500
committerChristian König2017-10-27 11:25:53 -0500
commit9b38ea82fc30ccbf38ebc0c55412b27e5a5afd7b (patch)
tree19cff4ae90c65fbd001d23d756f05ee85eade6f5 /amdgpu
parent61ff9779e37179ed5106c0e2452e16500127fb9e (diff)
downloadexternal-libdrm-9b38ea82fc30ccbf38ebc0c55412b27e5a5afd7b.tar.gz
external-libdrm-9b38ea82fc30ccbf38ebc0c55412b27e5a5afd7b.tar.xz
external-libdrm-9b38ea82fc30ccbf38ebc0c55412b27e5a5afd7b.zip
amdgpu: Add wrappers for AMDGPU_VM IOCTL.
v2: Rename wrappers to match the IOCTL naming, fix identation and fix make check error. Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
Diffstat (limited to 'amdgpu')
-rw-r--r--amdgpu/Makefile.sources1
-rwxr-xr-xamdgpu/amdgpu-symbol-check2
-rw-r--r--amdgpu/amdgpu.h18
-rw-r--r--amdgpu/amdgpu_vm.c50
4 files changed, 71 insertions, 0 deletions
diff --git a/amdgpu/Makefile.sources b/amdgpu/Makefile.sources
index bc3abaa6..498b64cc 100644
--- a/amdgpu/Makefile.sources
+++ b/amdgpu/Makefile.sources
@@ -6,6 +6,7 @@ LIBDRM_AMDGPU_FILES := \
6 amdgpu_gpu_info.c \ 6 amdgpu_gpu_info.c \
7 amdgpu_internal.h \ 7 amdgpu_internal.h \
8 amdgpu_vamgr.c \ 8 amdgpu_vamgr.c \
9 amdgpu_vm.c \
9 util_hash.c \ 10 util_hash.c \
10 util_hash.h \ 11 util_hash.h \
11 util_hash_table.c \ 12 util_hash_table.c \
diff --git a/amdgpu/amdgpu-symbol-check b/amdgpu/amdgpu-symbol-check
index 095c3a08..d476038b 100755
--- a/amdgpu/amdgpu-symbol-check
+++ b/amdgpu/amdgpu-symbol-check
@@ -64,6 +64,8 @@ amdgpu_read_mm_registers
64amdgpu_va_range_alloc 64amdgpu_va_range_alloc
65amdgpu_va_range_free 65amdgpu_va_range_free
66amdgpu_va_range_query 66amdgpu_va_range_query
67amdgpu_vm_reserve_vmid
68amdgpu_vm_unreserve_vmid
67EOF 69EOF
68done) 70done)
69 71
diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
index ecc975f1..597fc2ba 100644
--- a/amdgpu/amdgpu.h
+++ b/amdgpu/amdgpu.h
@@ -1489,6 +1489,24 @@ void amdgpu_cs_chunk_fence_to_dep(struct amdgpu_cs_fence *fence,
1489void amdgpu_cs_chunk_fence_info_to_data(struct amdgpu_cs_fence_info *fence_info, 1489void amdgpu_cs_chunk_fence_info_to_data(struct amdgpu_cs_fence_info *fence_info,
1490 struct drm_amdgpu_cs_chunk_data *data); 1490 struct drm_amdgpu_cs_chunk_data *data);
1491 1491
1492/**
1493 * Reserve VMID
1494 * \param context - \c [in] GPU Context
1495 * \param flags - \c [in] TBD
1496 *
1497 * \return 0 on success otherwise POSIX Error code
1498*/
1499int amdgpu_vm_reserve_vmid(amdgpu_context_handle context, uint32_t flags);
1500
1501/**
1502 * Free reserved VMID
1503 * \param context - \c [in] GPU Context
1504 * \param flags - \c [in] TBD
1505 *
1506 * \return 0 on success otherwise POSIX Error code
1507*/
1508int amdgpu_vm_unreserve_vmid(amdgpu_context_handle context, uint32_t flags);
1509
1492#ifdef __cplusplus 1510#ifdef __cplusplus
1493} 1511}
1494#endif 1512#endif
diff --git a/amdgpu/amdgpu_vm.c b/amdgpu/amdgpu_vm.c
new file mode 100644
index 00000000..8a9a0a15
--- /dev/null
+++ b/amdgpu/amdgpu_vm.c
@@ -0,0 +1,50 @@
1/*
2 * Copyright 2017 Advanced Micro Devices, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 *
22 */
23
24
25#include "amdgpu.h"
26#include "amdgpu_drm.h"
27#include "xf86drm.h"
28#include "amdgpu_internal.h"
29
30int amdgpu_vm_reserve_vmid(amdgpu_context_handle context, uint32_t flags)
31{
32 union drm_amdgpu_vm vm;
33
34 vm.in.op = AMDGPU_VM_OP_RESERVE_VMID;
35 vm.in.flags = flags;
36
37 return drmCommandWriteRead(context->dev->fd, DRM_AMDGPU_VM,
38 &vm, sizeof(vm));
39}
40
41int amdgpu_vm_unreserve_vmid(amdgpu_context_handle context, uint32_t flags)
42{
43 union drm_amdgpu_vm vm;
44
45 vm.in.op = AMDGPU_VM_OP_UNRESERVE_VMID;
46 vm.in.flags = flags;
47
48 return drmCommandWriteRead(context->dev->fd, DRM_AMDGPU_VM,
49 &vm, sizeof(vm));
50}