]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amd/display: Prevent VStartup Overflow
authorRyan Seto <ryanseto@amd.com>
Fri, 28 Feb 2025 20:52:42 +0000 (15:52 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 18 Mar 2025 18:03:46 +0000 (14:03 -0400)
[WHY & HOW]
Fixed Overflow issue by clamping VStartup to max value of register.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Ryan Seto <ryanseto@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c

index 84a2de9a76d4c33202a6d46092f79be112a75f2e..7ae9c0ba0c9e6aa22848591f209a39c147257ee3 100644 (file)
@@ -32,6 +32,7 @@
 
 #define DML2_MAX_FMT_420_BUFFER_WIDTH 4096
 #define TB_BORROWED_MAX 400
+#define DML_MAX_VSTARTUP_START 1023
 
 // ---------------------------
 //  Declaration Begins
@@ -6210,6 +6211,7 @@ static dml_uint_t CalculateMaxVStartup(
        dml_print("DML::%s: vblank_avail = %u\n", __func__, vblank_avail);
        dml_print("DML::%s: max_vstartup_lines = %u\n", __func__, max_vstartup_lines);
 #endif
+       max_vstartup_lines = (dml_uint_t) dml_min(max_vstartup_lines, DML_MAX_VSTARTUP_START);
        return max_vstartup_lines;
 }