aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0336-drm-amd-display-Fix-hotspot-programming-during-set-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0336-drm-amd-display-Fix-hotspot-programming-during-set-c.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0336-drm-amd-display-Fix-hotspot-programming-during-set-c.patch147
1 files changed, 147 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0336-drm-amd-display-Fix-hotspot-programming-during-set-c.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0336-drm-amd-display-Fix-hotspot-programming-during-set-c.patch
new file mode 100644
index 00000000..052065d2
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0336-drm-amd-display-Fix-hotspot-programming-during-set-c.patch
@@ -0,0 +1,147 @@
+From 42c6d9fda6b67d2a52639a2b87f180245bd238b8 Mon Sep 17 00:00:00 2001
+From: Zeyu Fan <Zeyu.Fan@amd.com>
+Date: Mon, 3 Apr 2017 11:54:11 -0400
+Subject: [PATCH 0336/4131] drm/amd/display: Fix hotspot programming during set
+ cursor position.
+
+- Remove x,y hotspot from dc_cursor_attributes. Only program it
+ through setPosition.
+
+Signed-off-by: Zeyu Fan <Zeyu.Fan@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Reviewed-by: Zeyu Fan <Zeyu.Fan@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 5 -----
+ drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 7 -------
+ drivers/gpu/drm/amd/display/dc/dce110/dce110_ipp_cursor.c | 11 ++++-------
+ drivers/gpu/drm/amd/display/dc/dce120/dce120_ipp_cursor.c | 15 ++++-----------
+ 4 files changed, 8 insertions(+), 30 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
+index fa8769b..4e528aa 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
+@@ -90,8 +90,6 @@ static void dm_set_cursor(
+ attributes.address.low_part = lower_32_bits(gpu_addr);
+ attributes.width = width;
+ attributes.height = height;
+- attributes.x_hot = 0;
+- attributes.y_hot = 0;
+ attributes.color_format = CURSOR_MODE_COLOR_PRE_MULTIPLIED_ALPHA;
+ attributes.rotation_angle = 0;
+ attributes.attribute_flags.value = 0;
+@@ -118,7 +116,6 @@ static void dm_set_cursor(
+ position.x = x;
+ position.y = y;
+
+- position.hot_spot_enable = true;
+ position.x_hotspot = xorigin;
+ position.y_hotspot = yorigin;
+
+@@ -260,7 +257,6 @@ static int dm_crtc_cursor_set(
+ position.enable = false;
+ position.x = 0;
+ position.y = 0;
+- position.hot_spot_enable = false;
+
+ if (amdgpu_crtc->stream) {
+ /*set cursor visible false*/
+@@ -344,7 +340,6 @@ static int dm_crtc_cursor_move(struct drm_crtc *crtc,
+ position.x = x;
+ position.y = y;
+
+- position.hot_spot_enable = true;
+ position.x_hotspot = xorigin;
+ position.y_hotspot = yorigin;
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
+index 568b7f0..b785dd7 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
++++ b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
+@@ -395,11 +395,6 @@ struct dc_cursor_position {
+ */
+ bool enable;
+
+- /*
+- * This parameter indicates whether cursor hot spot should be
+- * programmed
+- */
+- bool hot_spot_enable;
+ };
+
+ struct dc_cursor_mi_param {
+@@ -464,8 +459,6 @@ struct dc_cursor_attributes {
+ /* Width and height should correspond to cursor surface width x heigh */
+ uint32_t width;
+ uint32_t height;
+- uint32_t x_hot;
+- uint32_t y_hot;
+
+ enum dc_cursor_color_format color_format;
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_ipp_cursor.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_ipp_cursor.c
+index 1cab12b..5b230b1 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_ipp_cursor.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_ipp_cursor.c
+@@ -86,11 +86,10 @@ void dce110_ipp_cursor_set_position(
+
+ program_position(ipp110, position->x, position->y);
+
+- if (position->hot_spot_enable)
+- program_hotspot(
+- ipp110,
+- position->x_hotspot,
+- position->y_hotspot);
++ program_hotspot(
++ ipp110,
++ position->x_hotspot,
++ position->y_hotspot);
+
+ /* unlock cursor registers */
+ lock(ipp110, false);
+@@ -111,8 +110,6 @@ bool dce110_ipp_cursor_set_attributes(
+ attributes->attribute_flags.bits.ENABLE_MAGNIFICATION,
+ attributes->attribute_flags.bits.INVERSE_TRANSPARENT_CLAMPING);
+
+- /* Program hot spot coordinates */
+- program_hotspot(ipp110, attributes->x_hot, attributes->y_hot);
+
+ /*
+ * Program cursor size -- NOTE: HW spec specifies that HW register
+diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_ipp_cursor.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_ipp_cursor.c
+index d520b5d..15671fd 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_ipp_cursor.c
++++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_ipp_cursor.c
+@@ -151,11 +151,10 @@ void dce120_ipp_cursor_set_position(
+ CURSOR_X_POSITION, position->x,
+ CURSOR_Y_POSITION, position->y);
+
+- if (position->hot_spot_enable)
+- DCP_REG_SET_2(
+- DCP0_CUR_HOT_SPOT,
+- CURSOR_HOT_SPOT_X, position->x_hotspot,
+- CURSOR_HOT_SPOT_Y, position->y_hotspot);
++ DCP_REG_SET_2(
++ DCP0_CUR_HOT_SPOT,
++ CURSOR_HOT_SPOT_X, position->x_hotspot,
++ CURSOR_HOT_SPOT_Y, position->y_hotspot);
+
+ /* unlock cursor registers */
+ lock(ipp110, false);
+@@ -176,12 +175,6 @@ bool dce120_ipp_cursor_set_attributes(
+ attributes->attribute_flags.bits.ENABLE_MAGNIFICATION,
+ attributes->attribute_flags.bits.INVERSE_TRANSPARENT_CLAMPING);
+
+- /* Program hot spot coordinates */
+- DCP_REG_SET_2(
+- DCP0_CUR_HOT_SPOT,
+- CURSOR_HOT_SPOT_X, attributes->x_hot,
+- CURSOR_HOT_SPOT_Y, attributes->y_hot);
+-
+ /*
+ * Program cursor size -- NOTE: HW spec specifies that HW register
+ * stores size as (height - 1, width - 1)
+--
+2.7.4
+