Loading drivers/gpu/drm/msm/sde/sde_kms.c +17 −17 Original line number Diff line number Diff line Loading @@ -2074,7 +2074,7 @@ static void sde_kms_preclose(struct msm_kms *kms, struct drm_file *file) } end: if ((ret != 0) && state) if (state) drm_atomic_state_put(state); SDE_DEBUG("sde preclose done, ret:%d\n", ret); Loading Loading @@ -2189,14 +2189,10 @@ static void sde_kms_lastclose(struct msm_kms *kms, SDE_DEBUG("deadlock backoff on attempt %d\n", i); } if (ret) { /** * on success, atomic state object ownership transfers to * framework, otherwise, free it here */ drm_atomic_state_put(state); if (ret) SDE_ERROR("failed to run last close: %d\n", ret); } drm_atomic_state_put(state); } static int sde_kms_check_secure_transition(struct msm_kms *kms, Loading Loading @@ -2640,6 +2636,7 @@ static int sde_kms_pm_suspend(struct device *dev) drm_modeset_acquire_init(&ctx, 0); retry: state = NULL; ret = drm_modeset_lock_all_ctx(ddev, &ctx); if (ret) goto unlock; Loading @@ -2649,15 +2646,17 @@ static int sde_kms_pm_suspend(struct device *dev) drm_atomic_state_put(sde_kms->suspend_state); sde_kms->suspend_state = drm_atomic_helper_duplicate_state(ddev, &ctx); if (IS_ERR_OR_NULL(sde_kms->suspend_state)) { DRM_ERROR("failed to back up suspend state\n"); ret = PTR_ERR(sde_kms->suspend_state); DRM_ERROR("failed to back up suspend state, %d\n", ret); sde_kms->suspend_state = NULL; goto unlock; } /* create atomic state to disable all CRTCs */ state = drm_atomic_state_alloc(ddev); if (IS_ERR_OR_NULL(state)) { DRM_ERROR("failed to allocate crtc disable state\n"); if (!state) { ret = -ENOMEM; DRM_ERROR("failed to allocate crtc disable state, %d\n", ret); goto unlock; } Loading @@ -2679,7 +2678,6 @@ static int sde_kms_pm_suspend(struct device *dev) if (ret) { DRM_ERROR("failed to set lp2 for conn %d\n", conn->base.id); drm_atomic_state_put(state); goto unlock; } } Loading Loading @@ -2714,7 +2712,6 @@ static int sde_kms_pm_suspend(struct device *dev) ret = drm_atomic_commit(state); if (ret < 0) { DRM_ERROR("failed to disable crtcs, %d\n", ret); drm_atomic_state_put(state); goto unlock; } Loading @@ -2739,6 +2736,9 @@ static int sde_kms_pm_suspend(struct device *dev) } drm_connector_list_iter_end(&conn_iter); unlock: if (state) drm_atomic_state_put(state); if (ret == -EDEADLK) { drm_modeset_backoff(&ctx); goto retry; Loading @@ -2746,7 +2746,7 @@ static int sde_kms_pm_suspend(struct device *dev) drm_modeset_drop_locks(&ctx); drm_modeset_acquire_fini(&ctx); return 0; return ret; } static int sde_kms_pm_resume(struct device *dev) Loading Loading @@ -2792,10 +2792,10 @@ static int sde_kms_pm_resume(struct device *dev) drm_modeset_backoff(&ctx); } if (ret < 0) { if (ret < 0) DRM_ERROR("failed to restore state, %d\n", ret); drm_atomic_state_put(sde_kms->suspend_state); } sde_kms->suspend_state = NULL; } Loading Loading
drivers/gpu/drm/msm/sde/sde_kms.c +17 −17 Original line number Diff line number Diff line Loading @@ -2074,7 +2074,7 @@ static void sde_kms_preclose(struct msm_kms *kms, struct drm_file *file) } end: if ((ret != 0) && state) if (state) drm_atomic_state_put(state); SDE_DEBUG("sde preclose done, ret:%d\n", ret); Loading Loading @@ -2189,14 +2189,10 @@ static void sde_kms_lastclose(struct msm_kms *kms, SDE_DEBUG("deadlock backoff on attempt %d\n", i); } if (ret) { /** * on success, atomic state object ownership transfers to * framework, otherwise, free it here */ drm_atomic_state_put(state); if (ret) SDE_ERROR("failed to run last close: %d\n", ret); } drm_atomic_state_put(state); } static int sde_kms_check_secure_transition(struct msm_kms *kms, Loading Loading @@ -2640,6 +2636,7 @@ static int sde_kms_pm_suspend(struct device *dev) drm_modeset_acquire_init(&ctx, 0); retry: state = NULL; ret = drm_modeset_lock_all_ctx(ddev, &ctx); if (ret) goto unlock; Loading @@ -2649,15 +2646,17 @@ static int sde_kms_pm_suspend(struct device *dev) drm_atomic_state_put(sde_kms->suspend_state); sde_kms->suspend_state = drm_atomic_helper_duplicate_state(ddev, &ctx); if (IS_ERR_OR_NULL(sde_kms->suspend_state)) { DRM_ERROR("failed to back up suspend state\n"); ret = PTR_ERR(sde_kms->suspend_state); DRM_ERROR("failed to back up suspend state, %d\n", ret); sde_kms->suspend_state = NULL; goto unlock; } /* create atomic state to disable all CRTCs */ state = drm_atomic_state_alloc(ddev); if (IS_ERR_OR_NULL(state)) { DRM_ERROR("failed to allocate crtc disable state\n"); if (!state) { ret = -ENOMEM; DRM_ERROR("failed to allocate crtc disable state, %d\n", ret); goto unlock; } Loading @@ -2679,7 +2678,6 @@ static int sde_kms_pm_suspend(struct device *dev) if (ret) { DRM_ERROR("failed to set lp2 for conn %d\n", conn->base.id); drm_atomic_state_put(state); goto unlock; } } Loading Loading @@ -2714,7 +2712,6 @@ static int sde_kms_pm_suspend(struct device *dev) ret = drm_atomic_commit(state); if (ret < 0) { DRM_ERROR("failed to disable crtcs, %d\n", ret); drm_atomic_state_put(state); goto unlock; } Loading @@ -2739,6 +2736,9 @@ static int sde_kms_pm_suspend(struct device *dev) } drm_connector_list_iter_end(&conn_iter); unlock: if (state) drm_atomic_state_put(state); if (ret == -EDEADLK) { drm_modeset_backoff(&ctx); goto retry; Loading @@ -2746,7 +2746,7 @@ static int sde_kms_pm_suspend(struct device *dev) drm_modeset_drop_locks(&ctx); drm_modeset_acquire_fini(&ctx); return 0; return ret; } static int sde_kms_pm_resume(struct device *dev) Loading Loading @@ -2792,10 +2792,10 @@ static int sde_kms_pm_resume(struct device *dev) drm_modeset_backoff(&ctx); } if (ret < 0) { if (ret < 0) DRM_ERROR("failed to restore state, %d\n", ret); drm_atomic_state_put(sde_kms->suspend_state); } sde_kms->suspend_state = NULL; } Loading