Commit 2dc39051 authored by Victor Lu's avatar Victor Lu Committed by Alex Deucher
Browse files

drm/amd/display: Free atomic state after drm_atomic_commit



[why]
drm_atomic_commit was changed so that the caller must free their
drm_atomic_state reference on successes.

[how]
Add drm_atomic_commit_put after drm_atomic_commit call in
dm_force_atomic_commit.

Signed-off-by: default avatarVictor Lu <victorchengchi.lu@amd.com>
Reviewed-by: default avatarRoman Li <Roman.Li@amd.com>
Acked-by: default avatarAnson Jacob <Anson.Jacob@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent dc33e0aa
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -8446,14 +8446,14 @@ static int dm_force_atomic_commit(struct drm_connector *connector)

	ret = PTR_ERR_OR_ZERO(conn_state);
	if (ret)
		goto err;
		goto out;

	/* Attach crtc to drm_atomic_state*/
	crtc_state = drm_atomic_get_crtc_state(state, &disconnected_acrtc->base);

	ret = PTR_ERR_OR_ZERO(crtc_state);
	if (ret)
		goto err;
		goto out;

	/* force a restore */
	crtc_state->mode_changed = true;
@@ -8463,17 +8463,15 @@ static int dm_force_atomic_commit(struct drm_connector *connector)

	ret = PTR_ERR_OR_ZERO(plane_state);
	if (ret)
		goto err;

		goto out;

	/* Call commit internally with the state we just constructed */
	ret = drm_atomic_commit(state);
	if (!ret)
		return 0;

err:
	DRM_ERROR("Restoring old state failed with %i\n", ret);
out:
	drm_atomic_state_put(state);
	if (ret)
		DRM_ERROR("Restoring old state failed with %i\n", ret);

	return ret;
}