mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
drm/amdgpu/vcn: use amdgpu_ring_test_helper
Instead of amdgpu_ring_test_ring, so the helper function determines whether the ring is ready Signed-off-by: Leo Liu <leo.liu@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: James Zhu <James.Zhu@amd.com> Acked-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Cc: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
8a745c7ff2
commit
fd287c8cd2
|
|
@ -202,7 +202,6 @@ static int vcn_v1_0_hw_init(void *handle)
|
||||||
|
|
||||||
for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
|
for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
|
||||||
ring = &adev->vcn.inst->ring_enc[i];
|
ring = &adev->vcn.inst->ring_enc[i];
|
||||||
ring->sched.ready = true;
|
|
||||||
r = amdgpu_ring_test_helper(ring);
|
r = amdgpu_ring_test_helper(ring);
|
||||||
if (r)
|
if (r)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
|
||||||
|
|
@ -247,30 +247,21 @@ static int vcn_v2_0_hw_init(void *handle)
|
||||||
adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
|
adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
|
||||||
ring->doorbell_index, 0);
|
ring->doorbell_index, 0);
|
||||||
|
|
||||||
ring->sched.ready = true;
|
r = amdgpu_ring_test_helper(ring);
|
||||||
r = amdgpu_ring_test_ring(ring);
|
if (r)
|
||||||
if (r) {
|
|
||||||
ring->sched.ready = false;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
|
for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
|
||||||
ring = &adev->vcn.inst->ring_enc[i];
|
ring = &adev->vcn.inst->ring_enc[i];
|
||||||
ring->sched.ready = true;
|
r = amdgpu_ring_test_helper(ring);
|
||||||
r = amdgpu_ring_test_ring(ring);
|
if (r)
|
||||||
if (r) {
|
|
||||||
ring->sched.ready = false;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ring = &adev->vcn.inst->ring_jpeg;
|
ring = &adev->vcn.inst->ring_jpeg;
|
||||||
ring->sched.ready = true;
|
r = amdgpu_ring_test_helper(ring);
|
||||||
r = amdgpu_ring_test_ring(ring);
|
if (r)
|
||||||
if (r) {
|
|
||||||
ring->sched.ready = false;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (!r)
|
if (!r)
|
||||||
|
|
|
||||||
|
|
@ -258,29 +258,23 @@ static int vcn_v2_5_hw_init(void *handle)
|
||||||
adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
|
adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
|
||||||
ring->doorbell_index, j);
|
ring->doorbell_index, j);
|
||||||
|
|
||||||
r = amdgpu_ring_test_ring(ring);
|
r = amdgpu_ring_test_helper(ring);
|
||||||
if (r) {
|
if (r)
|
||||||
ring->sched.ready = false;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
|
for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
|
||||||
ring = &adev->vcn.inst[j].ring_enc[i];
|
ring = &adev->vcn.inst[j].ring_enc[i];
|
||||||
ring->sched.ready = false;
|
ring->sched.ready = false;
|
||||||
continue;
|
continue;
|
||||||
r = amdgpu_ring_test_ring(ring);
|
r = amdgpu_ring_test_helper(ring);
|
||||||
if (r) {
|
if (r)
|
||||||
ring->sched.ready = false;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ring = &adev->vcn.inst[j].ring_jpeg;
|
ring = &adev->vcn.inst[j].ring_jpeg;
|
||||||
r = amdgpu_ring_test_ring(ring);
|
r = amdgpu_ring_test_helper(ring);
|
||||||
if (r) {
|
if (r)
|
||||||
ring->sched.ready = false;
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
done:
|
done:
|
||||||
if (!r)
|
if (!r)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user