Commit fd287c8c authored by Leo Liu's avatar Leo Liu Committed by Alex Deucher
Browse files

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: default avatarLeo Liu <leo.liu@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarJames Zhu <James.Zhu@amd.com>
Acked-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
Cc: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 8a745c7f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -202,7 +202,6 @@ static int vcn_v1_0_hw_init(void *handle)

	for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
		ring = &adev->vcn.inst->ring_enc[i];
		ring->sched.ready = true;
		r = amdgpu_ring_test_helper(ring);
		if (r)
			goto done;
+6 −15
Original line number Diff line number Diff line
@@ -247,30 +247,21 @@ static int vcn_v2_0_hw_init(void *handle)
	adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
					     ring->doorbell_index, 0);

	ring->sched.ready = true;
	r = amdgpu_ring_test_ring(ring);
	if (r) {
		ring->sched.ready = false;
	r = amdgpu_ring_test_helper(ring);
	if (r)
		goto done;
	}

	for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
		ring = &adev->vcn.inst->ring_enc[i];
		ring->sched.ready = true;
		r = amdgpu_ring_test_ring(ring);
		if (r) {
			ring->sched.ready = false;
		r = amdgpu_ring_test_helper(ring);
		if (r)
			goto done;
	}
	}

	ring = &adev->vcn.inst->ring_jpeg;
	ring->sched.ready = true;
	r = amdgpu_ring_test_ring(ring);
	if (r) {
		ring->sched.ready = false;
	r = amdgpu_ring_test_helper(ring);
	if (r)
		goto done;
	}

done:
	if (!r)
+6 −12
Original line number Diff line number Diff line
@@ -258,30 +258,24 @@ static int vcn_v2_5_hw_init(void *handle)
		adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
						     ring->doorbell_index, j);

		r = amdgpu_ring_test_ring(ring);
		if (r) {
			ring->sched.ready = false;
		r = amdgpu_ring_test_helper(ring);
		if (r)
			goto done;
		}

		for (i = 0; i < adev->vcn.num_enc_rings; ++i) {
			ring = &adev->vcn.inst[j].ring_enc[i];
			ring->sched.ready = false;
			continue;
			r = amdgpu_ring_test_ring(ring);
			if (r) {
				ring->sched.ready = false;
			r = amdgpu_ring_test_helper(ring);
			if (r)
				goto done;
		}
		}

		ring = &adev->vcn.inst[j].ring_jpeg;
		r = amdgpu_ring_test_ring(ring);
		if (r) {
			ring->sched.ready = false;
		r = amdgpu_ring_test_helper(ring);
		if (r)
			goto done;
	}
	}
done:
	if (!r)
		DRM_INFO("VCN decode and encode initialized successfully.\n");