From: Robin Chen <robin.c...@amd.com>

[Why]
In current design, the vstartup position is adjusted to
vblank start position when AS-SDP is enabled.
However when the vblank length is too big, it may over
vstartup boundary.

[How]
To adjust vstartup position to 1 line before vsync position.

Reviewed-by: Anthony Koo <anthony....@amd.com>
Signed-off-by: Robin Chen <robin.c...@amd.com>
Signed-off-by: Tom Chung <chiahsuan.ch...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c 
b/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
index efe337ebf7c8..e9fea9c2162e 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
@@ -1132,7 +1132,8 @@ static void dcn20_adjust_freesync_v_startup(
                                        patched_crtc_timing.v_addressable -
                                        patched_crtc_timing.v_border_top;
 
-       newVstartup = asic_blank_end + (patched_crtc_timing.v_total - 
asic_blank_start);
+       /* The newVStartUp is 1 line before vsync point */
+       newVstartup = asic_blank_end + 1;
 
        *vstartup_start = ((newVstartup > *vstartup_start) ? newVstartup : 
*vstartup_start);
 }
-- 
2.34.1

Reply via email to