diff options
author | 2019-11-28 15:55:01 -0500 | |
---|---|---|
committer | 2019-12-18 16:09:10 -0500 | |
commit | 89d07b662f5e2d74c439f9a7cbefa41b3e76d745 (patch) | |
tree | c38d3322092ca6e419e8abb47fc1c998b46db55d /drivers/gpu/drm/amd/amdgpu | |
parent | drm/amd/display: Get cache window sizes from DMCUB firmware (diff) | |
download | wireguard-linux-89d07b662f5e2d74c439f9a7cbefa41b3e76d745.tar.xz wireguard-linux-89d07b662f5e2d74c439f9a7cbefa41b3e76d745.zip |
drm/amd/display: fix 270 degree rotation for mixed-SLS mode
[Why]
When we rotate 270 in mixed SLS mode, the recouts occupy the
right side of the display. So all the recout_skip_v values
are relative to the left side of the display. This causes
adjust_vp_and_init_for_seamless_clip() to incorrectly increase
the data->viewport.height for that recout. The rotation looks
like the bottom half is duplicated twice.
[How]
recout.x values are being adjusted based on
stream->timing.h_border_left. Instead of using h_border_left,
use dst.x to represent the border. Shift dst.x by the amount of
stream->timing.h_border_left and set
stream->timing.h_border_left to 0. Do all the calculations
and then revert stream->timing.h_border_left and
stream->dst.x back to their original values.
When calculating pipe_ctx->plane_res.scl_data.h_active,
make sure to use the original stream->timing.h_border_left
value.
Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
0 files changed, 0 insertions, 0 deletions