]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Jan 2017 10:08:29 +0000 (11:08 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Jan 2017 10:08:29 +0000 (11:08 +0100)
added patches:
drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch

queue-4.4/drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch [new file with mode: 0644]
queue-4.4/series

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 (file)
index 0000000..c9942d5
--- /dev/null
@@ -0,0 +1,50 @@
+From 4349bd775cc8fd75cb648e3a2036a690f497de5c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
+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 <michel.daenzer@amd.com>
+
+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 <michel.daenzer@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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)
index ff09a7d625736f7fb36c3e5cd92abb0b6cab61ab..c4de44f2b36a6c7f4ad61ae93c165dc1f43cfb5f 100644 (file)
@@ -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