diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h index ca17ffb01301..5825692d07e4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h @@ -41,6 +41,15 @@  #define AMDGPU_MAX_GFX_QUEUES KGD_MAX_QUEUES  #define AMDGPU_MAX_COMPUTE_QUEUES KGD_MAX_QUEUES +enum gfx_pipe_priority { +	AMDGPU_GFX_PIPE_PRIO_NORMAL = 1, +	AMDGPU_GFX_PIPE_PRIO_HIGH, +	AMDGPU_GFX_PIPE_PRIO_MAX +}; + +#define AMDGPU_GFX_QUEUE_PRIORITY_MINIMUM  0 +#define AMDGPU_GFX_QUEUE_PRIORITY_MAXIMUM  15 +  struct amdgpu_mec {  	struct amdgpu_bo	*hpd_eop_obj;  	u64			hpd_eop_gpu_addr; @@ -151,6 +160,8 @@ struct amdgpu_gfx_config {  	unsigned num_gpus;  	unsigned multi_gpu_tile_size;  	unsigned mc_arb_ramcfg; +	unsigned num_banks; +	unsigned num_ranks;  	unsigned gb_addr_config;  	unsigned num_rbs;  	unsigned gs_vgt_table_depth; @@ -204,6 +215,7 @@ struct amdgpu_gfx_funcs {  				 u32 queue, u32 vmid);  	int (*ras_error_inject)(struct amdgpu_device *adev, void *inject_if);  	int (*query_ras_error_count) (struct amdgpu_device *adev, void *ras_error_status); +	void (*reset_ras_error_count) (struct amdgpu_device *adev);  };  struct sq_work { @@ -278,8 +290,9 @@ struct amdgpu_gfx {  	uint32_t			num_gfx_sched;  	unsigned			num_gfx_rings;  	struct amdgpu_ring		compute_ring[AMDGPU_MAX_COMPUTE_RINGS]; +	struct drm_gpu_scheduler        **compute_prio_sched[AMDGPU_GFX_PIPE_PRIO_MAX];  	struct drm_gpu_scheduler	*compute_sched[AMDGPU_MAX_COMPUTE_RINGS]; -	uint32_t			num_compute_sched; +	uint32_t                        num_compute_sched[AMDGPU_GFX_PIPE_PRIO_MAX];  	unsigned			num_compute_rings;  	struct amdgpu_irq_src		eop_irq;  	struct amdgpu_irq_src		priv_reg_irq; @@ -361,6 +374,8 @@ void amdgpu_gfx_bit_to_mec_queue(struct amdgpu_device *adev, int bit,  				 int *mec, int *pipe, int *queue);  bool amdgpu_gfx_is_mec_queue_enabled(struct amdgpu_device *adev, int mec,  				     int pipe, int queue); +bool amdgpu_gfx_is_high_priority_compute_queue(struct amdgpu_device *adev, +					       int queue);  int amdgpu_gfx_me_queue_to_bit(struct amdgpu_device *adev, int me,  			       int pipe, int queue);  void amdgpu_gfx_bit_to_me_queue(struct amdgpu_device *adev, int bit, | 
