drm/amd/display: Fix prefetch calculations for dcn32
authorDillon Varone <Dillon.Varone@amd.com>
Thu, 3 Nov 2022 22:33:38 +0000 (18:33 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Nov 2022 18:21:30 +0000 (13:21 -0500)
[Description]
Prefetch calculation loop was not exiting until utilizing all of vstartup if it
failed once.  Locals need to be reset on each iteration of the loop.

Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Dillon Varone <Dillon.Varone@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org # 6.0.x
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c

index 244fd15..9afd9ba 100644 (file)
@@ -718,6 +718,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
        do {
                MaxTotalRDBandwidth = 0;
+               DestinationLineTimesForPrefetchLessThan2 = false;
+               VRatioPrefetchMoreThanMax = false;
 #ifdef __DML_VBA_DEBUG__
                dml_print("DML::%s: Start loop: VStartup = %d\n", __func__, mode_lib->vba.VStartupLines);
 #endif