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

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

drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values



We were storing viewport relative coordinates for AVIVO/DCE display
engines. However, radeon_crtc_cursor_set2 and radeon_cursor_reset pass
radeon_crtc->cursor_x/y as the x/y parameters of
radeon_cursor_move_locked, which would break if the CRTC isn't located
at (0, 0).

Cc: stable@vger.kernel.org
Signed-off-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent dcab0fa6
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -143,6 +143,9 @@ static int radeon_cursor_move_locked(struct drm_crtc *crtc, int x, int y)
	int xorigin = 0, yorigin = 0;
	int xorigin = 0, yorigin = 0;
	int w = radeon_crtc->cursor_width;
	int w = radeon_crtc->cursor_width;


	radeon_crtc->cursor_x = x;
	radeon_crtc->cursor_y = y;

	if (ASIC_IS_AVIVO(rdev)) {
	if (ASIC_IS_AVIVO(rdev)) {
		/* avivo cursor are offset into the total surface */
		/* avivo cursor are offset into the total surface */
		x += crtc->x;
		x += crtc->x;
@@ -229,9 +232,6 @@ static int radeon_cursor_move_locked(struct drm_crtc *crtc, int x, int y)
		       yorigin * 256);
		       yorigin * 256);
	}
	}


	radeon_crtc->cursor_x = x;
	radeon_crtc->cursor_y = y;

	return 0;
	return 0;
}
}