]> git.baikalelectronics.ru Git - kernel.git/commit
drm/amd/display: Fix max vstartup calculation for modes with borders
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Wed, 7 Jul 2021 17:19:14 +0000 (13:19 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 21 Jul 2021 18:22:47 +0000 (14:22 -0400)
commit8258e93d652d152e527f9a268a9ea2b3e62baa7c
treee152e731e24b86429c56abf52fdca6309bcf0cad
parent3208cbbfcca5329eec8ab1c285b7ab64537665ba
drm/amd/display: Fix max vstartup calculation for modes with borders

[Why]
Vertical and horizontal borders in timings are treated as increasing the
active area - vblank and hblank actually shrink.

Our input into DML does not include these borders so it incorrectly
assumes it has more time than available for vstartup and tmdl
calculations for some modes with borders.

An example of such a timing would be 640x480@72Hz:

h_total: 832
h_border_left: 8
h_addressable: 640
h_border_right: 8
h_front_porch: 16
h_sync_width: 40
v_total: 520
v_border_top: 8
v_addressable: 480
v_border_bottom: 8
v_front_porch: 1
v_sync_width: 3
pix_clk_100hz: 315000

[How]
Include borders as part of destination vactive/hactive.

This change DCN20+ so it has wide impact, but the destination vactive
and hactive are only really used for vstartup calculation anyway.

Most modes do not have vertical or horizontal borders.

Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c