mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
drm/amdgpu: Introduce cached_rptr and is_guilty callback in amdgpu_ring
This patch introduces the following changes: - Add `cached_rptr` to the `amdgpu_ring` structure to store the read pointer before a reset. - Add `is_guilty` callback to the `amdgpu_ring_funcs` structure to check if a ring is guilty of causing a timeout. Suggested-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Jesse Zhang <jesse.zhang@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
4c02f73016
commit
4d3c4f4f7f
|
|
@ -349,6 +349,8 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
|
|||
ring->buf_mask = (ring->ring_size / 4) - 1;
|
||||
ring->ptr_mask = ring->funcs->support_64bit_ptrs ?
|
||||
0xffffffffffffffff : ring->buf_mask;
|
||||
/* Initialize cached_rptr to 0 */
|
||||
ring->cached_rptr = 0;
|
||||
|
||||
/* Allocate ring buffer */
|
||||
if (ring->is_mes_queue) {
|
||||
|
|
|
|||
|
|
@ -238,6 +238,7 @@ struct amdgpu_ring_funcs {
|
|||
void (*patch_de)(struct amdgpu_ring *ring, unsigned offset);
|
||||
int (*reset)(struct amdgpu_ring *ring, unsigned int vmid);
|
||||
void (*emit_cleaner_shader)(struct amdgpu_ring *ring);
|
||||
bool (*is_guilty)(struct amdgpu_ring *ring);
|
||||
};
|
||||
|
||||
struct amdgpu_ring {
|
||||
|
|
@ -307,6 +308,8 @@ struct amdgpu_ring {
|
|||
|
||||
bool is_sw_ring;
|
||||
unsigned int entry_index;
|
||||
/* store the cached rptr to restore after reset */
|
||||
uint64_t cached_rptr;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user