diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h index 82c178a9033a..f752c7ae7f60 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h @@ -39,6 +39,7 @@ struct amdgpu_vm;  #define AMDGPU_MAX_RINGS		28  #define AMDGPU_MAX_HWIP_RINGS		8  #define AMDGPU_MAX_GFX_RINGS		2 +#define AMDGPU_MAX_SW_GFX_RINGS         2  #define AMDGPU_MAX_COMPUTE_RINGS	8  #define AMDGPU_MAX_VCE_RINGS		3  #define AMDGPU_MAX_UVD_ENC_RINGS	2 @@ -59,6 +60,7 @@ enum amdgpu_ring_priority_level {  #define AMDGPU_FENCE_FLAG_64BIT         (1 << 0)  #define AMDGPU_FENCE_FLAG_INT           (1 << 1)  #define AMDGPU_FENCE_FLAG_TC_WB_ONLY    (1 << 2) +#define AMDGPU_FENCE_FLAG_EXEC          (1 << 3)  #define to_amdgpu_ring(s) container_of((s), struct amdgpu_ring, sched) @@ -143,8 +145,13 @@ signed long amdgpu_fence_wait_polling(struct amdgpu_ring *ring,  				      uint32_t wait_seq,  				      signed long timeout);  unsigned amdgpu_fence_count_emitted(struct amdgpu_ring *ring); +  void amdgpu_fence_driver_isr_toggle(struct amdgpu_device *adev, bool stop); +u64 amdgpu_fence_last_unsignaled_time_us(struct amdgpu_ring *ring); +void amdgpu_fence_update_start_timestamp(struct amdgpu_ring *ring, uint32_t seq, +					 ktime_t timestamp); +  /*   * Rings.   */ @@ -279,6 +286,10 @@ struct amdgpu_ring {  	bool			is_mes_queue;  	uint32_t		hw_queue_id;  	struct amdgpu_mes_ctx_data *mes_ctx; + +	bool            is_sw_ring; +	unsigned int    entry_index; +  };  #define amdgpu_ring_parse_cs(r, p, job, ib) ((r)->funcs->parse_cs((p), (job), (ib))) @@ -307,6 +318,9 @@ struct amdgpu_ring {  #define amdgpu_ring_preempt_ib(r) (r)->funcs->preempt_ib(r)  int amdgpu_ring_alloc(struct amdgpu_ring *ring, unsigned ndw); +void amdgpu_ring_ib_begin(struct amdgpu_ring *ring); +void amdgpu_ring_ib_end(struct amdgpu_ring *ring); +  void amdgpu_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count);  void amdgpu_ring_generic_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib);  void amdgpu_ring_commit(struct amdgpu_ring *ring); |