|
@@ -1715,9 +1715,7 @@ void drm_atomic_helper_commit_hw_done(struct drm_atomic_state *old_state)
|
|
|
|
|
|
/* backend must have consumed any event by now */
|
|
/* backend must have consumed any event by now */
|
|
WARN_ON(new_crtc_state->event);
|
|
WARN_ON(new_crtc_state->event);
|
|
- spin_lock(&crtc->commit_lock);
|
|
|
|
complete_all(&commit->hw_done);
|
|
complete_all(&commit->hw_done);
|
|
- spin_unlock(&crtc->commit_lock);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(drm_atomic_helper_commit_hw_done);
|
|
EXPORT_SYMBOL(drm_atomic_helper_commit_hw_done);
|
|
@@ -1746,7 +1744,6 @@ void drm_atomic_helper_commit_cleanup_done(struct drm_atomic_state *old_state)
|
|
if (WARN_ON(!commit))
|
|
if (WARN_ON(!commit))
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- spin_lock(&crtc->commit_lock);
|
|
|
|
complete_all(&commit->cleanup_done);
|
|
complete_all(&commit->cleanup_done);
|
|
WARN_ON(!try_wait_for_completion(&commit->hw_done));
|
|
WARN_ON(!try_wait_for_completion(&commit->hw_done));
|
|
|
|
|
|
@@ -1756,8 +1753,6 @@ void drm_atomic_helper_commit_cleanup_done(struct drm_atomic_state *old_state)
|
|
if (try_wait_for_completion(&commit->flip_done))
|
|
if (try_wait_for_completion(&commit->flip_done))
|
|
goto del_commit;
|
|
goto del_commit;
|
|
|
|
|
|
- spin_unlock(&crtc->commit_lock);
|
|
|
|
-
|
|
|
|
/* We must wait for the vblank event to signal our completion
|
|
/* We must wait for the vblank event to signal our completion
|
|
* before releasing our reference, since the vblank work does
|
|
* before releasing our reference, since the vblank work does
|
|
* not hold a reference of its own. */
|
|
* not hold a reference of its own. */
|
|
@@ -1767,8 +1762,8 @@ void drm_atomic_helper_commit_cleanup_done(struct drm_atomic_state *old_state)
|
|
DRM_ERROR("[CRTC:%d:%s] flip_done timed out\n",
|
|
DRM_ERROR("[CRTC:%d:%s] flip_done timed out\n",
|
|
crtc->base.id, crtc->name);
|
|
crtc->base.id, crtc->name);
|
|
|
|
|
|
- spin_lock(&crtc->commit_lock);
|
|
|
|
del_commit:
|
|
del_commit:
|
|
|
|
+ spin_lock(&crtc->commit_lock);
|
|
list_del(&commit->commit_entry);
|
|
list_del(&commit->commit_entry);
|
|
spin_unlock(&crtc->commit_lock);
|
|
spin_unlock(&crtc->commit_lock);
|
|
}
|
|
}
|