[PATCH 02/24] drm/amd/display: Fix hotspot programming during set cursor position.
Harry Wentland
harry.wentland at amd.com
Tue Apr 25 18:38:51 UTC 2017
From: Zeyu Fan <Zeyu.Fan at amd.com>
- Remove x,y hotspot from dc_cursor_attributes. Only program it
through setPosition.
Change-Id: I0b47eee65618494406fe65b17847ff5c32bb5b39
Signed-off-by: Zeyu Fan <Zeyu.Fan at amd.com>
Acked-by: Harry Wentland <Harry.Wentland at amd.com>
Reviewed-by: Zeyu Fan <Zeyu.Fan at 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 93a96f0fcee4..36540e1e9281 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
@@ -91,8 +91,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;
@@ -119,7 +117,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;
@@ -261,7 +258,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*/
@@ -345,7 +341,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 568b7f0569f8..b785dd7b3a97 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 1cab12ba8447..5b230b17fc5c 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 d520b5d7aa81..15671fd2cb9c 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.11.0
More information about the amd-gfx
mailing list