From: Jack Xiao <[email protected]>

Abstract mes ip independent function layer.

Acked-by: Hawking Zhang <[email protected]>
Signed-off-by: Jack Xiao <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 54 +++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
index 621ef8a7f074..788084310dd5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
@@ -24,8 +24,62 @@
 #ifndef __AMDGPU_MES_H__
 #define __AMDGPU_MES_H__
 
+struct amdgpu_mes_funcs;
+
 struct amdgpu_mes {
+       struct amdgpu_adev *adev;
+
+       /* ip specific functions */
+       struct amdgpu_mes_funcs *funcs;
+};
+
+struct mes_add_queue_input {
+       uint32_t        process_id;
+       uint64_t        page_table_base_addr;
+       uint64_t        process_va_start;
+       uint64_t        process_va_end;
+       uint64_t        process_quantum;
+       uint64_t        process_context_addr;
+       uint64_t        gang_quantum;
+       uint64_t        gang_context_addr;
+       uint32_t        inprocess_gang_priority;
+       uint32_t        gang_global_priority_level;
+       uint32_t        doorbell_offset;
+       uint64_t        mqd_addr;
+       uint64_t        wptr_addr;
+       uint32_t        queue_type;
+       uint32_t        paging;
+};
+
+struct mes_remove_queue_input {
+       uint32_t        doorbell_offset;
+       uint64_t        gang_context_addr;
+};
+
+struct mes_suspend_gang_input {
+       bool            suspend_all_gangs;
+       uint64_t        gang_context_addr;
+       uint64_t        suspend_fence_addr;
+       uint32_t        suspend_fence_value;
+};
+
+struct mes_resume_gang_input {
+       bool            resume_all_gangs;
+       uint64_t        gang_context_addr;
+};
+
+struct amdgpu_mes_funcs {
+       int (*add_hw_queue)(struct amdgpu_mes *mes,
+                           struct mes_add_queue_input *input);
+
+       int (*remove_hw_queue)(struct amdgpu_mes *mes,
+                              struct mes_remove_queue_input *input);
+
+       int (*suspend_gang)(struct amdgpu_mes *mes,
+                           struct mes_suspend_gang_input *input);
 
+       int (*resume_gang)(struct amdgpu_mes *mes,
+                          struct mes_resume_gang_input *input);
 };
 
 #endif /* __AMDGPU_MES_H__ */
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to