Эх сурвалжийг харах

amdgpu/vce3: Simplify vce_v3_0_hw_init and ensure both rings default to not ready.

Simplified the ring test and added logic to ensure rings are marked not ready
by default.

Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Tom St Denis 9 жил өмнө
parent
commit
691ca86a3a

+ 9 - 15
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c

@@ -414,28 +414,22 @@ static int vce_v3_0_sw_fini(void *handle)
 
 
 static int vce_v3_0_hw_init(void *handle)
 static int vce_v3_0_hw_init(void *handle)
 {
 {
-	struct amdgpu_ring *ring;
-	int r;
+	int r, i;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
 
 	r = vce_v3_0_start(adev);
 	r = vce_v3_0_start(adev);
 	if (r)
 	if (r)
 		return r;
 		return r;
 
 
-	ring = &adev->vce.ring[0];
-	ring->ready = true;
-	r = amdgpu_ring_test_ring(ring);
-	if (r) {
-		ring->ready = false;
-		return r;
-	}
+	adev->vce.ring[0].ready = false;
+	adev->vce.ring[1].ready = false;
 
 
-	ring = &adev->vce.ring[1];
-	ring->ready = true;
-	r = amdgpu_ring_test_ring(ring);
-	if (r) {
-		ring->ready = false;
-		return r;
+	for (i = 0; i < 2; i++) {
+		r = amdgpu_ring_test_ring(&adev->vce.ring[i]);
+		if (r)
+			return r;
+		else
+			adev->vce.ring[i].ready = true;
 	}
 	}
 
 
 	DRM_INFO("VCE initialized successfully.\n");
 	DRM_INFO("VCE initialized successfully.\n");