drm/atomic-helper: Remove the backoff hack from set_config
Another one bites the dust. Again let's not forget to remove the temporary hidden acquire_ctx assignment, now that we pass this all around explicitly it can go away again. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/20170322215058.8671-20-daniel.vetter@ffwll.ch
This commit is contained in:
parent
a4eff9aa6d
commit
38b6441e4e
2 changed files with 2 additions and 20 deletions
|
@ -2290,32 +2290,15 @@ int drm_atomic_helper_set_config(struct drm_mode_set *set,
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
state->legacy_set_config = true;
|
state->legacy_set_config = true;
|
||||||
state->acquire_ctx = drm_modeset_legacy_acquire_ctx(crtc);
|
state->acquire_ctx = ctx;
|
||||||
retry:
|
|
||||||
ret = __drm_atomic_helper_set_config(set, state);
|
ret = __drm_atomic_helper_set_config(set, state);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
goto fail;
|
return ret;
|
||||||
|
|
||||||
ret = drm_atomic_commit(state);
|
ret = drm_atomic_commit(state);
|
||||||
fail:
|
|
||||||
if (ret == -EDEADLK)
|
|
||||||
goto backoff;
|
|
||||||
|
|
||||||
drm_atomic_state_put(state);
|
drm_atomic_state_put(state);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
backoff:
|
|
||||||
drm_atomic_state_clear(state);
|
|
||||||
drm_atomic_legacy_backoff(state);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Someone might have exchanged the framebuffer while we dropped locks
|
|
||||||
* in the backoff code. We need to fix up the fb refcount tracking the
|
|
||||||
* core does for us.
|
|
||||||
*/
|
|
||||||
crtc->primary->old_fb = crtc->primary->fb;
|
|
||||||
|
|
||||||
goto retry;
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_atomic_helper_set_config);
|
EXPORT_SYMBOL(drm_atomic_helper_set_config);
|
||||||
|
|
||||||
|
|
|
@ -581,7 +581,6 @@ retry:
|
||||||
ret = drm_modeset_lock_all_ctx(crtc->dev, &ctx);
|
ret = drm_modeset_lock_all_ctx(crtc->dev, &ctx);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
dev->mode_config.acquire_ctx = &ctx;
|
|
||||||
if (crtc_req->mode_valid) {
|
if (crtc_req->mode_valid) {
|
||||||
/* If we have a mode we need a framebuffer. */
|
/* If we have a mode we need a framebuffer. */
|
||||||
/* If we pass -1, set the mode with the currently bound fb */
|
/* If we pass -1, set the mode with the currently bound fb */
|
||||||
|
|
Loading…
Reference in a new issue