OSDN Git Service

amdgpu/vce3: Simplify vce_v3_0_hw_init and ensure both rings default to not ready.
authorTom St Denis <tom.stdenis@amd.com>
Tue, 15 Dec 2015 15:55:34 +0000 (10:55 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 4 Jan 2016 22:20:54 +0000 (17:20 -0500)
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>
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c

index ad56b1f..e99af81 100644 (file)
@@ -414,28 +414,22 @@ static int vce_v3_0_sw_fini(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;
 
        r = vce_v3_0_start(adev);
        if (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");