@@ -1441,12 +1441,7 @@ static int amdgpu_pmops_runtime_idle(struct device *dev)
struct drm_modeset_acquire_ctx ctx;
int ret_lock = 0;
-retry:
- drm_modeset_lock_all_ctx(drm_dev, &ctx);
- if(ret_lock == -EDEADLK) {
- drm_modeset_backoff(&ctx);
- goto retry;
- }
+ DRM_MODESET_LOCK_ALL_BEGIN(drm_dev, ctx, 0, ret_lock);
drm_for_each_crtc(crtc, drm_dev) {
if (crtc->state->active) {
@@ -1455,7 +1450,7 @@ static int amdgpu_pmops_runtime_idle(struct device *dev)
}
}
- drm_modeset_drop_locks(&ctx);
+ DRM_MODESET_LOCK_ALL_END(drm_dev, ctx, ret_lock);
} else {
struct drm_connector *list_connector;
This second patch makes use of the API that has been introduced with commit b7ea04d299c7: DRM_MODESET_LOCK_ALL_BEGIN() simplifies grabbing all modeset locks using a local context and has the advantage of reducing boilerplate. Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com> --- Changes from v2: The work is split in two consecutive logical steps. Changes from v1: Added further information to the commit message. drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)