drm/amd/display: Fix cursor issues with ODMs and magnification

[WHY & HOW]
Adjust hot spot positions between ODM slices when cursor
magnification is used.

Reviewed-by: Sridevi Arvindekar <sridevi.arvindekar@amd.com>
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Nevenko Stupar <nevenko.stupar@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Nevenko Stupar
2024-06-13 17:19:42 -04:00
committed by Alex Deucher
parent 4228900a64
commit adcd67e0bb

View File

@@ -1177,6 +1177,15 @@ void dcn401_set_cursor_position(struct pipe_ctx *pipe_ctx)
if (x_pos < 0) {
pos_cpy.x_hotspot -= x_pos;
if ((odm_combine_on) && (hubp->curs_attr.attribute_flags.bits.ENABLE_MAGNIFICATION)) {
if (hubp->curs_attr.width <= 128) {
pos_cpy.x_hotspot /= 2;
pos_cpy.x_hotspot += 1;
} else {
pos_cpy.x_hotspot /= 2;
pos_cpy.x_hotspot += 2;
}
}
x_pos = 0;
}