aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h29
1 files changed, 13 insertions, 16 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
index 28700a80cddd..9ec5d1a666a6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
@@ -37,6 +37,7 @@
37#define PSP_TMR_SIZE 0x400000 37#define PSP_TMR_SIZE 0x400000
38 38
39struct psp_context; 39struct psp_context;
40struct psp_xgmi_node_info;
40struct psp_xgmi_topology_info; 41struct psp_xgmi_topology_info;
41 42
42enum psp_ring_type 43enum psp_ring_type
@@ -85,9 +86,9 @@ struct psp_funcs
85 uint64_t (*xgmi_get_node_id)(struct psp_context *psp); 86 uint64_t (*xgmi_get_node_id)(struct psp_context *psp);
86 uint64_t (*xgmi_get_hive_id)(struct psp_context *psp); 87 uint64_t (*xgmi_get_hive_id)(struct psp_context *psp);
87 int (*xgmi_get_topology_info)(struct psp_context *psp, int number_devices, 88 int (*xgmi_get_topology_info)(struct psp_context *psp, int number_devices,
88 struct psp_xgmi_topology_info *topology); 89 struct psp_xgmi_topology_info *topology);
89 int (*xgmi_set_topology_info)(struct psp_context *psp, int number_devices, 90 int (*xgmi_set_topology_info)(struct psp_context *psp, int number_devices,
90 struct psp_xgmi_topology_info *topology); 91 struct psp_xgmi_topology_info *topology);
91}; 92};
92 93
93struct psp_xgmi_context { 94struct psp_xgmi_context {
@@ -161,21 +162,17 @@ struct amdgpu_psp_funcs {
161 enum AMDGPU_UCODE_ID); 162 enum AMDGPU_UCODE_ID);
162}; 163};
163 164
165#define AMDGPU_XGMI_MAX_CONNECTED_NODES 64
166struct psp_xgmi_node_info {
167 uint64_t node_id;
168 uint8_t num_hops;
169 uint8_t is_sharing_enabled;
170 enum ta_xgmi_assigned_sdma_engine sdma_engine;
171};
172
164struct psp_xgmi_topology_info { 173struct psp_xgmi_topology_info {
165 /* Generated by PSP to identify the GPU instance within xgmi connection */ 174 uint32_t num_nodes;
166 uint64_t node_id; 175 struct psp_xgmi_node_info nodes[AMDGPU_XGMI_MAX_CONNECTED_NODES];
167 /*
168 * If all bits set to 0 , driver indicates it wants to retrieve the xgmi
169 * connection vector topology, but not access enable the connections
170 * if some or all bits are set to 1, driver indicates it want to retrieve the
171 * current xgmi topology and access enable the link to GPU[i] associated
172 * with the bit position in the vector.
173 * On return,: bits indicated which xgmi links are present/active depending
174 * on the value passed in. The relative bit offset for the relative GPU index
175 * within the hive is always marked active.
176 */
177 uint32_t connection_mask;
178 uint32_t reserved; /* must be 0 */
179}; 176};
180 177
181#define psp_prep_cmd_buf(ucode, type) (psp)->funcs->prep_cmd_buf((ucode), (type)) 178#define psp_prep_cmd_buf(ucode, type) (psp)->funcs->prep_cmd_buf((ucode), (type))