drm/amdgpu:fix ring init sequence
ring->buf_mask need be set prior to ring_clear_ring invoke and fix ring_clear_ring as well which should use buf_mask instead of ptr_mask Signed-off-by: Monk Liu <Monk.Liu@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
b4d6126d1e
commit
e09706f46e
@ -235,6 +235,9 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
|
|||||||
ring->ring_size = roundup_pow_of_two(max_dw * 4 *
|
ring->ring_size = roundup_pow_of_two(max_dw * 4 *
|
||||||
amdgpu_sched_hw_submission);
|
amdgpu_sched_hw_submission);
|
||||||
|
|
||||||
|
ring->buf_mask = (ring->ring_size / 4) - 1;
|
||||||
|
ring->ptr_mask = ring->funcs->support_64bit_ptrs ?
|
||||||
|
0xffffffffffffffff : ring->buf_mask;
|
||||||
/* Allocate ring buffer */
|
/* Allocate ring buffer */
|
||||||
if (ring->ring_obj == NULL) {
|
if (ring->ring_obj == NULL) {
|
||||||
r = amdgpu_bo_create_kernel(adev, ring->ring_size, PAGE_SIZE,
|
r = amdgpu_bo_create_kernel(adev, ring->ring_size, PAGE_SIZE,
|
||||||
@ -248,9 +251,6 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
|
|||||||
}
|
}
|
||||||
amdgpu_ring_clear_ring(ring);
|
amdgpu_ring_clear_ring(ring);
|
||||||
}
|
}
|
||||||
ring->buf_mask = (ring->ring_size / 4) - 1;
|
|
||||||
ring->ptr_mask = ring->funcs->support_64bit_ptrs ?
|
|
||||||
0xffffffffffffffff : ring->buf_mask;
|
|
||||||
|
|
||||||
ring->max_dw = max_dw;
|
ring->max_dw = max_dw;
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ void amdgpu_ring_fini(struct amdgpu_ring *ring);
|
|||||||
static inline void amdgpu_ring_clear_ring(struct amdgpu_ring *ring)
|
static inline void amdgpu_ring_clear_ring(struct amdgpu_ring *ring)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i <= ring->ptr_mask)
|
while (i <= ring->buf_mask)
|
||||||
ring->ring[i++] = ring->funcs->nop;
|
ring->ring[i++] = ring->funcs->nop;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user