mirror_ubuntu-kernels/drivers/gpu/drm/amd
Nicholas Kazlauskas e99acf7d1a drm/amd/display: Translate cursor position by source rect
[Why]
Cursor is drawn as part of the framebuffer for a plane on AMD hardware.
The cursor position on the framebuffer does not change even if the
source rect viewport for the cursor does. This causes the cursor to be
clipped.

The following IGT tests fail as a result of this issue:

- kms_plane_cursor@pipe-*-viewport-size-*

[How]
Offset cursor position by plane source rect viewport. If the viewport
is unscaled then the cursor is now correctly positioned on any
plane - primary or overlay.

There is still a hardware limitation for dealing with the cursor size
being incorrectly scaled but that's not something we can address.

Add some documentation explaining some of this in the code while we're
at it.

Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Zhan Liu <Zhan.Liu@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2020-04-07 14:20:45 -04:00
..
acp drm: amd/acp: fix broken menu structure 2020-03-13 11:52:35 -04:00
amdgpu drm/amdgpu/psp: dont warn on missing optional TA's 2020-04-07 14:07:41 -04:00
amdkfd drm/amdkfd: kfree the wrong pointer 2020-04-01 14:44:22 -04:00
display drm/amd/display: Translate cursor position by source rect 2020-04-07 14:20:45 -04:00
include drm/amdkfd: Consolidate duplicated bo alloc flags 2020-03-10 15:54:34 -04:00
powerplay drm/amd/powerplay: avoid using pm_en before it is initialized 2020-04-03 17:22:44 -04:00