aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1072-drm-amd-display-Fix-disabled-cursor-on-top-screen-ed.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1072-drm-amd-display-Fix-disabled-cursor-on-top-screen-ed.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1072-drm-amd-display-Fix-disabled-cursor-on-top-screen-ed.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1072-drm-amd-display-Fix-disabled-cursor-on-top-screen-ed.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1072-drm-amd-display-Fix-disabled-cursor-on-top-screen-ed.patch
new file mode 100644
index 00000000..a34b58db
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1072-drm-amd-display-Fix-disabled-cursor-on-top-screen-ed.patch
@@ -0,0 +1,57 @@
+From 40477654e9809771faaf05d2fd9eaf2836ba6023 Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Tue, 11 Dec 2018 12:35:56 -0500
+Subject: [PATCH 1072/2940] drm/amd/display: Fix disabled cursor on top screen
+ edge
+
+[Why]
+The cursor vanishes when touching the top of edge of the screen for
+Raven on Linux.
+
+This occurs because the cursor height is not taken into account when
+deciding to disable the cursor.
+
+[How]
+Factor in the cursor height into the cursor calculations - and mimic
+the existing x position calculations.
+
+Fixes: 94a4ffd1d40b ("drm/amd/display: fix PIP bugs on Dal3")
+
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c
+index dcb3c5530236..cd1ebe57ed59 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c
+@@ -463,7 +463,7 @@ void dpp1_set_cursor_position(
+ if (src_y_offset >= (int)param->viewport.height)
+ cur_en = 0; /* not visible beyond bottom edge*/
+
+- if (src_y_offset < 0)
++ if (src_y_offset + (int)height <= 0)
+ cur_en = 0; /* not visible beyond top edge*/
+
+ REG_UPDATE(CURSOR0_CONTROL,
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c
+index e24ea6146a29..fae62474a4d1 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c
+@@ -1140,7 +1140,7 @@ void hubp1_cursor_set_position(
+ if (src_y_offset >= (int)param->viewport.height)
+ cur_en = 0; /* not visible beyond bottom edge*/
+
+- if (src_y_offset < 0) //+ (int)hubp->curs_attr.height
++ if (src_y_offset + (int)hubp->curs_attr.height <= 0)
+ cur_en = 0; /* not visible beyond top edge*/
+
+ if (cur_en && REG_READ(CURSOR_SURFACE_ADDRESS) == 0)
+--
+2.17.1
+