drm/amdgpu/vce: take all rings into account for idle checks
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 26 Sep 2016 19:19:14 +0000 (15:19 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 27 Sep 2016 17:00:50 +0000 (13:00 -0400)
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c

index 06b94c13c2c9f93f1b89c5480043e57cea32e006..686d99c121a8f794d3862351e58f6b38e5d847a9 100644 (file)
@@ -303,9 +303,12 @@ static void amdgpu_vce_idle_work_handler(struct work_struct *work)
 {
        struct amdgpu_device *adev =
                container_of(work, struct amdgpu_device, vce.idle_work.work);
+       unsigned i, count = 0;
 
-       if ((amdgpu_fence_count_emitted(&adev->vce.ring[0]) == 0) &&
-           (amdgpu_fence_count_emitted(&adev->vce.ring[1]) == 0)) {
+       for (i = 0; i < adev->vce.num_rings; i++)
+               count += amdgpu_fence_count_emitted(&adev->vce.ring[i]);
+
+       if (count == 0) {
                if (adev->pm.dpm_enabled) {
                        amdgpu_dpm_enable_vce(adev, false);
                } else {