From fc945ca0a0d51d06740c77f0ad2e30b0f187cc6d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 10 Jan 2017 11:08:29 +0100 Subject: [PATCH] 4.4-stable patches added patches: drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch --- ...lative-radeon_crtc-cursor_x-y-values.patch | 50 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 51 insertions(+) create mode 100644 queue-4.4/drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch diff --git a/queue-4.4/drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch b/queue-4.4/drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch new file mode 100644 index 00000000000..c9942d5e845 --- /dev/null +++ b/queue-4.4/drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch @@ -0,0 +1,50 @@ +From 4349bd775cc8fd75cb648e3a2036a690f497de5c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= +Date: Thu, 27 Oct 2016 15:37:44 +0900 +Subject: drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Michel Dänzer + +commit 4349bd775cc8fd75cb648e3a2036a690f497de5c upstream. + +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: Michel Dänzer +Reviewed-by: Alex Deucher +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/radeon_cursor.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/radeon/radeon_cursor.c ++++ b/drivers/gpu/drm/radeon/radeon_cursor.c +@@ -146,6 +146,9 @@ static int radeon_cursor_move_locked(str + int xorigin = 0, yorigin = 0; + int w = radeon_crtc->cursor_width; + ++ radeon_crtc->cursor_x = x; ++ radeon_crtc->cursor_y = y; ++ + if (ASIC_IS_AVIVO(rdev)) { + /* avivo cursor are offset into the total surface */ + x += crtc->x; +@@ -240,9 +243,6 @@ static int radeon_cursor_move_locked(str + yorigin * 256); + } + +- radeon_crtc->cursor_x = x; +- radeon_crtc->cursor_y = y; +- + if (radeon_crtc->cursor_out_of_bounds) { + radeon_crtc->cursor_out_of_bounds = false; + if (radeon_crtc->cursor_bo) diff --git a/queue-4.4/series b/queue-4.4/series index ff09a7d6257..c4de44f2b36 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -97,3 +97,4 @@ cred-userns-define-current_user_ns-as-a-function.patch net-ti-cpmac-fix-compiler-warning-due-to-type-confusion.patch net-vxge-avoid-unused-function-warnings.patch cx23885-dvb-move-initialization-of-a8293_pdata.patch +drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch -- 2.47.3