Commit ec4d770b authored by Michel Dänzer's avatar Michel Dänzer Committed by Alex Deucher
Browse files

drm/amd/display: Refactor dm_get_plane_scale helper



Cleanup, no functional change intended.

Signed-off-by: default avatarMichel Dänzer <mdaenzer@redhat.com>
Signed-off-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent f4bff6e0
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -10269,6 +10269,17 @@ static void dm_get_oriented_plane_size(struct drm_plane_state *plane_state,
	}
}

static void
dm_get_plane_scale(struct drm_plane_state *plane_state,
		   int *out_plane_scale_w, int *out_plane_scale_h)
{
	int plane_src_w, plane_src_h;

	dm_get_oriented_plane_size(plane_state, &plane_src_w, &plane_src_h);
	*out_plane_scale_w = plane_state->crtc_w * 1000 / plane_src_w;
	*out_plane_scale_h = plane_state->crtc_h * 1000 / plane_src_h;
}

static int dm_check_crtc_cursor(struct drm_atomic_state *state,
				struct drm_crtc *crtc,
				struct drm_crtc_state *new_crtc_state)
@@ -10277,8 +10288,6 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
	struct drm_plane_state *new_cursor_state, *new_underlying_state;
	int i;
	int cursor_scale_w, cursor_scale_h, underlying_scale_w, underlying_scale_h;
	int cursor_src_w, cursor_src_h;
	int underlying_src_w, underlying_src_h;

	/* On DCE and DCN there is no dedicated hardware cursor plane. We get a
	 * cursor per pipe but it's going to inherit the scaling and
@@ -10293,9 +10302,7 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
	if (!new_cursor_state->fb)
		return 0;

	dm_get_oriented_plane_size(new_cursor_state, &cursor_src_w, &cursor_src_h);
	cursor_scale_w = new_cursor_state->crtc_w * 1000 / cursor_src_w;
	cursor_scale_h = new_cursor_state->crtc_h * 1000 / cursor_src_h;
	dm_get_plane_scale(new_cursor_state, &cursor_scale_w, &cursor_scale_h);

	/* Need to check all enabled planes, even if this commit doesn't change
	 * their state
@@ -10313,10 +10320,8 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
		if (!new_underlying_state->fb)
			continue;

		dm_get_oriented_plane_size(new_underlying_state,
					   &underlying_src_w, &underlying_src_h);
		underlying_scale_w = new_underlying_state->crtc_w * 1000 / underlying_src_w;
		underlying_scale_h = new_underlying_state->crtc_h * 1000 / underlying_src_h;
		dm_get_plane_scale(new_underlying_state,
				   &underlying_scale_w, &underlying_scale_h);

		if (cursor_scale_w != underlying_scale_w ||
		    cursor_scale_h != underlying_scale_h) {