drm/amdgpu: fix lost sync_to if scheduler is enabled.
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_sync.c
index dd005c336c974ad708827c25edc4a4534772bb2c..181ce39ef5e59f8e4d4fbf2feeb617af63deb611 100644 (file)
@@ -293,7 +293,8 @@ int amdgpu_sync_rings(struct amdgpu_sync *sync,
                fence = to_amdgpu_fence(sync->sync_to[i]);
 
                /* check if we really need to sync */
-               if (!amdgpu_fence_need_sync(fence, ring))
+               if (!amdgpu_enable_scheduler &&
+                   !amdgpu_fence_need_sync(fence, ring))
                        continue;
 
                /* prevent GPU deadlocks */
@@ -303,7 +304,7 @@ int amdgpu_sync_rings(struct amdgpu_sync *sync,
                }
 
                if (amdgpu_enable_scheduler || !amdgpu_enable_semaphores) {
-                       r = fence_wait(&fence->base, true);
+                       r = fence_wait(sync->sync_to[i], true);
                        if (r)
                                return r;
                        continue;