1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
From 8b7c227c3cb6429e2c53fd8375c415021626886d Mon Sep 17 00:00:00 2001
From: Chunming Zhou <David1.Zhou@amd.com>
Date: Mon, 16 Nov 2015 18:06:16 +0800
Subject: [PATCH 042/117] amdgpu: add amdgpu_query_capability interface
Change-Id: Iffdd157e411c19f4d9980994dad6952b183ef1a5
Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
Reviewed-by: Jim Qu <Jim.Qu@amd.com>
---
amdgpu/amdgpu.h | 18 ++++++++++++++++++
amdgpu/amdgpu_gpu_info.c | 6 ++++++
include/drm/amdgpu_drm.h | 8 +++-----
3 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
index 1db47c3..baae113 100644
--- a/amdgpu/amdgpu.h
+++ b/amdgpu/amdgpu.h
@@ -62,6 +62,11 @@ struct drm_amdgpu_info_hw_ip;
*/
#define AMDGPU_QUERY_FENCE_TIMEOUT_IS_ABSOLUTE (1 << 0)
+/**
+ * Used in amdgpu_query_capability(), meaning if pin feature is enabled.
+ */
+#define AMDGPU_CAP_PIN_MEM (1 << 0)
+
/*--------------------------------------------------------------------------*/
/* ----------------------------- Enums ------------------------------------ */
/*--------------------------------------------------------------------------*/
@@ -1070,6 +1075,19 @@ int amdgpu_query_info(amdgpu_device_handle dev, unsigned info_id,
unsigned size, void *value);
/**
+ * Query hardware or driver capabilities.
+ *
+ *
+ * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
+ * \param value - \c [out] Pointer to the return value.
+ *
+ * \return 0 on success\n
+ * <0 - Negative POSIX error code
+ *
+*/
+int amdgpu_query_capability(amdgpu_device_handle dev, uint64_t *value);
+
+/**
* Query information about GDS
*
* \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
diff --git a/amdgpu/amdgpu_gpu_info.c b/amdgpu/amdgpu_gpu_info.c
index 73d8d11..133952d 100644
--- a/amdgpu/amdgpu_gpu_info.c
+++ b/amdgpu/amdgpu_gpu_info.c
@@ -48,6 +48,12 @@ int amdgpu_query_info(amdgpu_device_handle dev, unsigned info_id,
sizeof(struct drm_amdgpu_info));
}
+int amdgpu_query_capability(amdgpu_device_handle dev, uint64_t *value)
+{
+ return amdgpu_query_info(dev, AMDGPU_INFO_CAPABILITY,
+ sizeof(uint64_t), value);
+}
+
int amdgpu_query_crtc_from_id(amdgpu_device_handle dev, unsigned id,
int32_t *result)
{
diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h
index 4ddb649..050e7fe 100644
--- a/include/drm/amdgpu_drm.h
+++ b/include/drm/amdgpu_drm.h
@@ -508,10 +508,11 @@ struct drm_amdgpu_cs_chunk_data {
#define AMDGPU_INFO_VIS_VRAM_USAGE 0x17
/* virtual range */
#define AMDGPU_INFO_VIRTUAL_RANGE 0x18
+
/* gpu capability */
#define AMDGPU_INFO_CAPABILITY 0x50
- /* query pin memory capability */
- #define AMDGPU_INFO_CAPABILITY_PIN_MEM 0x01
+/* query pin memory capability */
+#define AMDGPU_CAPABILITY_PIN_MEM_FLAG (1 << 0)
#define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
#define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
@@ -574,9 +575,6 @@ struct drm_amdgpu_info {
uint32_t _pad;
} virtual_range;
- struct {
- uint64_t type;
- } query_capability;
};
};
--
2.7.4
|