Commit 632550d7 authored by Zeyu Fan's avatar Zeyu Fan Committed by Alex Deucher

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: default avatarZeyu Fan <Zeyu.Fan@amd.com>
Acked-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Reviewed-by: default avatarZeyu Fan <Zeyu.Fan@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 035e0fe5
...@@ -90,8 +90,6 @@ static void dm_set_cursor( ...@@ -90,8 +90,6 @@ static void dm_set_cursor(
attributes.address.low_part = lower_32_bits(gpu_addr); attributes.address.low_part = lower_32_bits(gpu_addr);
attributes.width = width; attributes.width = width;
attributes.height = height; attributes.height = height;
attributes.x_hot = 0;
attributes.y_hot = 0;
attributes.color_format = CURSOR_MODE_COLOR_PRE_MULTIPLIED_ALPHA; attributes.color_format = CURSOR_MODE_COLOR_PRE_MULTIPLIED_ALPHA;
attributes.rotation_angle = 0; attributes.rotation_angle = 0;
attributes.attribute_flags.value = 0; attributes.attribute_flags.value = 0;
...@@ -118,7 +116,6 @@ static void dm_set_cursor( ...@@ -118,7 +116,6 @@ static void dm_set_cursor(
position.x = x; position.x = x;
position.y = y; position.y = y;
position.hot_spot_enable = true;
position.x_hotspot = xorigin; position.x_hotspot = xorigin;
position.y_hotspot = yorigin; position.y_hotspot = yorigin;
...@@ -260,7 +257,6 @@ static int dm_crtc_cursor_set( ...@@ -260,7 +257,6 @@ static int dm_crtc_cursor_set(
position.enable = false; position.enable = false;
position.x = 0; position.x = 0;
position.y = 0; position.y = 0;
position.hot_spot_enable = false;
if (amdgpu_crtc->stream) { if (amdgpu_crtc->stream) {
/*set cursor visible false*/ /*set cursor visible false*/
...@@ -344,7 +340,6 @@ static int dm_crtc_cursor_move(struct drm_crtc *crtc, ...@@ -344,7 +340,6 @@ static int dm_crtc_cursor_move(struct drm_crtc *crtc,
position.x = x; position.x = x;
position.y = y; position.y = y;
position.hot_spot_enable = true;
position.x_hotspot = xorigin; position.x_hotspot = xorigin;
position.y_hotspot = yorigin; position.y_hotspot = yorigin;
......
...@@ -395,11 +395,6 @@ struct dc_cursor_position { ...@@ -395,11 +395,6 @@ struct dc_cursor_position {
*/ */
bool enable; bool enable;
/*
* This parameter indicates whether cursor hot spot should be
* programmed
*/
bool hot_spot_enable;
}; };
struct dc_cursor_mi_param { struct dc_cursor_mi_param {
...@@ -464,8 +459,6 @@ struct dc_cursor_attributes { ...@@ -464,8 +459,6 @@ struct dc_cursor_attributes {
/* Width and height should correspond to cursor surface width x heigh */ /* Width and height should correspond to cursor surface width x heigh */
uint32_t width; uint32_t width;
uint32_t height; uint32_t height;
uint32_t x_hot;
uint32_t y_hot;
enum dc_cursor_color_format color_format; enum dc_cursor_color_format color_format;
......
...@@ -86,7 +86,6 @@ void dce110_ipp_cursor_set_position( ...@@ -86,7 +86,6 @@ void dce110_ipp_cursor_set_position(
program_position(ipp110, position->x, position->y); program_position(ipp110, position->x, position->y);
if (position->hot_spot_enable)
program_hotspot( program_hotspot(
ipp110, ipp110,
position->x_hotspot, position->x_hotspot,
...@@ -111,8 +110,6 @@ bool dce110_ipp_cursor_set_attributes( ...@@ -111,8 +110,6 @@ bool dce110_ipp_cursor_set_attributes(
attributes->attribute_flags.bits.ENABLE_MAGNIFICATION, attributes->attribute_flags.bits.ENABLE_MAGNIFICATION,
attributes->attribute_flags.bits.INVERSE_TRANSPARENT_CLAMPING); 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 * Program cursor size -- NOTE: HW spec specifies that HW register
......
...@@ -151,7 +151,6 @@ void dce120_ipp_cursor_set_position( ...@@ -151,7 +151,6 @@ void dce120_ipp_cursor_set_position(
CURSOR_X_POSITION, position->x, CURSOR_X_POSITION, position->x,
CURSOR_Y_POSITION, position->y); CURSOR_Y_POSITION, position->y);
if (position->hot_spot_enable)
DCP_REG_SET_2( DCP_REG_SET_2(
DCP0_CUR_HOT_SPOT, DCP0_CUR_HOT_SPOT,
CURSOR_HOT_SPOT_X, position->x_hotspot, CURSOR_HOT_SPOT_X, position->x_hotspot,
...@@ -176,12 +175,6 @@ bool dce120_ipp_cursor_set_attributes( ...@@ -176,12 +175,6 @@ bool dce120_ipp_cursor_set_attributes(
attributes->attribute_flags.bits.ENABLE_MAGNIFICATION, attributes->attribute_flags.bits.ENABLE_MAGNIFICATION,
attributes->attribute_flags.bits.INVERSE_TRANSPARENT_CLAMPING); 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 * Program cursor size -- NOTE: HW spec specifies that HW register
* stores size as (height - 1, width - 1) * stores size as (height - 1, width - 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment