Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e88ad0a authored by Shirish S's avatar Shirish S Committed by Alex Deucher
Browse files

drm/amd/display: remove usage of legacy_cursor_update



Currently the atomic check code uses legacy_cursor_update
to differnetiate if the cursor plane is being requested by
the user, which is not required as we shall be updating
plane only if modeset is requested/required.

Have tested cursor plane and underlay get updated seamlessly,
without any lag or frame drops.

Signed-off-by: default avatarShirish S <shirish.s@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Reviewed-by: default avatarAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b1ebd7c0
Loading
Loading
Loading
Loading
+13 −30
Original line number Diff line number Diff line
@@ -4739,8 +4739,6 @@ static int dm_update_planes_state(struct dc *dc,
static int amdgpu_dm_atomic_check(struct drm_device *dev,
				  struct drm_atomic_state *state)
{
	int i;
	int ret;
	struct amdgpu_device *adev = dev->dev_private;
	struct dc *dc = adev->dm.dc;
	struct dm_atomic_state *dm_state = to_dm_atomic_state(state);
@@ -4748,6 +4746,7 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
	struct drm_connector_state *old_con_state, *new_con_state;
	struct drm_crtc *crtc;
	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
	int ret, i;

	/*
	 * This bool will be set for true for any modeset/reset
@@ -4759,21 +4758,6 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
	if (ret)
		goto fail;

	/*
	 * legacy_cursor_update should be made false for SoC's having
	 * a dedicated hardware plane for cursor in amdgpu_dm_atomic_commit(),
	 * otherwise for software cursor plane,
	 * we should not add it to list of affected planes.
	 */
	if (state->legacy_cursor_update) {
		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
			if (new_crtc_state->color_mgmt_changed) {
				ret = drm_atomic_add_affected_planes(state, crtc);
				if (ret)
					goto fail;
			}
		}
	} else {
	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
		if (!drm_atomic_crtc_needs_modeset(new_crtc_state) &&
		    !new_crtc_state->color_mgmt_changed)
@@ -4790,7 +4774,6 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
		if (ret)
			goto fail;
	}
	}

	dm_state->context = dc_create_state();
	ASSERT(dm_state->context);