diff options
| author | Jack Xiao <Jack.Xiao@amd.com> | 2019-01-25 17:54:58 +0800 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2019-06-21 18:58:22 -0500 | 
| commit | 7bbc36765ccbf1a4706fe4c6d0400c2bb544dbc8 (patch) | |
| tree | c8cbbb0d9a91bdfadfb44f3fc98c85b6c3d7222f /drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | |
| parent | a538bbe7a8db66730af522e687af03c0e3d9d643 (diff) | |
drm/amdgpu/mes: add definitions of ip callback function
Abstract mes ip independent function layer.
Acked-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 54 | 
1 files changed, 54 insertions, 0 deletions
| 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__ */ | 
