Am 20.07.22 um 18:05 schrieb Alex Deucher:
Move additional dummy structures off the stack and into
the dummy vars structure.

Fixes the following:
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.c: In 
function 
'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation':
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.c:1659:1:
 error: the frame size of 2144 bytes is larger than 2048 bytes 
[-Werror=frame-larger-than=]
  1659 | }
       | ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.c: In 
function 'dml32_ModeSupportAndSystemConfigurationFull':
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.c:3799:1:
 error: the frame size of 2464 bytes is larger than 2048 bytes 
[-Werror=frame-larger-than=]
  3799 | } // ModeSupportAndSystemConfigurationFull
       | ^

v2: more more stuff to dummy structure, fix init order (Alex)

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
Cc: Stephen Rothwell <s...@canb.auug.org.au>

Acked-by: Christian König <christian.koe...@amd.com>

---
  .../dc/dml/dcn32/display_mode_vba_32.c        | 406 ++++++++----------
  .../drm/amd/display/dc/dml/display_mode_vba.h |  35 ++
  2 files changed, 214 insertions(+), 227 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c 
b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
index 349e36ae9333..91450a973920 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
@@ -67,6 +67,12 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
        int iteration;
        double MaxTotalRDBandwidth;
        unsigned int NextPrefetchMode;
+       double MaxTotalRDBandwidthNoUrgentBurst = 0.0;
+       bool DestinationLineTimesForPrefetchLessThan2 = false;
+       bool VRatioPrefetchMoreThanMax = false;
+       double TWait;
+       double TotalWRBandwidth = 0;
+       double WRBandwidth = 0;
#ifdef __DML_VBA_DEBUG__
        dml_print("DML::%s: --- START ---\n", __func__);
@@ -702,11 +708,6 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
        NextPrefetchMode = 
mode_lib->vba.PrefetchModePerState[mode_lib->vba.VoltageLevel][mode_lib->vba.maxMpcComb];
do {
-               double MaxTotalRDBandwidthNoUrgentBurst = 0.0;
-               bool DestinationLineTimesForPrefetchLessThan2 = false;
-               bool VRatioPrefetchMoreThanMax = false;
-               double dummy_unit_vector[DC__NUM_DPP__MAX];
-
                MaxTotalRDBandwidth = 0;
  #ifdef __DML_VBA_DEBUG__
                dml_print("DML::%s: Start loop: VStartup = %d\n", __func__, 
mode_lib->vba.VStartupLines);
@@ -715,41 +716,39 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        /* NOTE PerfetchMode variable is invalid in DAL as per 
the input received.
                         * Hence the direction is to use PrefetchModePerState.
                         */
-                       double TWait = dml32_CalculateTWait(
-                                       
mode_lib->vba.PrefetchModePerState[mode_lib->vba.VoltageLevel][mode_lib->vba.maxMpcComb],
-                                       
mode_lib->vba.UsesMALLForPStateChange[k],
-                                       
mode_lib->vba.SynchronizeDRRDisplaysForUCLKPStateChangeFinal,
-                                       mode_lib->vba.DRRDisplay[k],
-                                       mode_lib->vba.DRAMClockChangeLatency,
-                                       mode_lib->vba.FCLKChangeLatency, 
v->UrgentLatency,
-                                       mode_lib->vba.SREnterPlusExitTime);
-
-                       DmlPipe myPipe;
-
-                       myPipe.Dppclk = mode_lib->vba.DPPCLK[k];
-                       myPipe.Dispclk = mode_lib->vba.DISPCLK;
-                       myPipe.PixelClock = mode_lib->vba.PixelClock[k];
-                       myPipe.DCFClkDeepSleep = v->DCFCLKDeepSleep;
-                       myPipe.DPPPerSurface = mode_lib->vba.DPPPerPlane[k];
-                       myPipe.ScalerEnabled = mode_lib->vba.ScalerEnabled[k];
-                       myPipe.SourceRotation = mode_lib->vba.SourceRotation[k];
-                       myPipe.BlockWidth256BytesY = v->BlockWidth256BytesY[k];
-                       myPipe.BlockHeight256BytesY = 
v->BlockHeight256BytesY[k];
-                       myPipe.BlockWidth256BytesC = v->BlockWidth256BytesC[k];
-                       myPipe.BlockHeight256BytesC = 
v->BlockHeight256BytesC[k];
-                       myPipe.InterlaceEnable = mode_lib->vba.Interlace[k];
-                       myPipe.NumberOfCursors = 
mode_lib->vba.NumberOfCursors[k];
-                       myPipe.VBlank = mode_lib->vba.VTotal[k] - 
mode_lib->vba.VActive[k];
-                       myPipe.HTotal = mode_lib->vba.HTotal[k];
-                       myPipe.HActive = mode_lib->vba.HActive[k];
-                       myPipe.DCCEnable = mode_lib->vba.DCCEnable[k];
-                       myPipe.ODMMode = mode_lib->vba.ODMCombineEnabled[k];
-                       myPipe.SourcePixelFormat = 
mode_lib->vba.SourcePixelFormat[k];
-                       myPipe.BytePerPixelY = v->BytePerPixelY[k];
-                       myPipe.BytePerPixelC = v->BytePerPixelC[k];
-                       myPipe.ProgressiveToInterlaceUnitInOPP = 
mode_lib->vba.ProgressiveToInterlaceUnitInOPP;
+                       TWait = dml32_CalculateTWait(
+                               
mode_lib->vba.PrefetchModePerState[mode_lib->vba.VoltageLevel][mode_lib->vba.maxMpcComb],
+                               mode_lib->vba.UsesMALLForPStateChange[k],
+                               
mode_lib->vba.SynchronizeDRRDisplaysForUCLKPStateChangeFinal,
+                               mode_lib->vba.DRRDisplay[k],
+                               mode_lib->vba.DRAMClockChangeLatency,
+                               mode_lib->vba.FCLKChangeLatency, 
v->UrgentLatency,
+                               mode_lib->vba.SREnterPlusExitTime);
+
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.Dppclk
 = mode_lib->vba.DPPCLK[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.Dispclk
 = mode_lib->vba.DISPCLK;
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.PixelClock
 = mode_lib->vba.PixelClock[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.DCFClkDeepSleep
 = v->DCFCLKDeepSleep;
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.DPPPerSurface
 = mode_lib->vba.DPPPerPlane[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.ScalerEnabled
 = mode_lib->vba.ScalerEnabled[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.SourceRotation
 = mode_lib->vba.SourceRotation[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.BlockWidth256BytesY
 = v->BlockWidth256BytesY[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.BlockHeight256BytesY
 = v->BlockHeight256BytesY[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.BlockWidth256BytesC
 = v->BlockWidth256BytesC[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.BlockHeight256BytesC
 = v->BlockHeight256BytesC[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.InterlaceEnable
 = mode_lib->vba.Interlace[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.NumberOfCursors
 = mode_lib->vba.NumberOfCursors[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.VBlank
 = mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.HTotal
 = mode_lib->vba.HTotal[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.HActive
 = mode_lib->vba.HActive[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.DCCEnable
 = mode_lib->vba.DCCEnable[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.ODMMode
 = mode_lib->vba.ODMCombineEnabled[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.SourcePixelFormat
 = mode_lib->vba.SourcePixelFormat[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.BytePerPixelY
 = v->BytePerPixelY[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.BytePerPixelC
 = v->BytePerPixelC[k];
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe.ProgressiveToInterlaceUnitInOPP
 = mode_lib->vba.ProgressiveToInterlaceUnitInOPP;
                        v->ErrorResult[k] = 
dml32_CalculatePrefetchSchedule(v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.HostVMInefficiencyFactor,
-                                       &myPipe, v->DSCDelay[k],
+                                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe,
 v->DSCDelay[k],
                                        mode_lib->vba.DPPCLKDelaySubtotal + 
mode_lib->vba.DPPCLKDelayCNVCFormater,
                                        mode_lib->vba.DPPCLKDelaySCL,
                                        mode_lib->vba.DPPCLKDelaySCLLBOnly,
@@ -898,8 +897,6 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
  #endif
{
-                       double dummy_single[1];
-
                        dml32_CalculatePrefetchBandwithSupport(
                                        mode_lib->vba.NumberOfActiveSurfaces,
                                        mode_lib->vba.ReturnBW,
@@ -923,16 +920,14 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
/* output */
                                        &MaxTotalRDBandwidth,
-                                       &dummy_single[0],
+                                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_single[0],
                                        &v->PrefetchModeSupported);
                }
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k)
-                       dummy_unit_vector[k] = 1.0;
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector[k]
 = 1.0;
{
-                       double  dummy_single[1];
-                       bool dummy_boolean[1];
                        
dml32_CalculatePrefetchBandwithSupport(mode_lib->vba.NumberOfActiveSurfaces,
                                        mode_lib->vba.ReturnBW,
                                        v->NoUrgentLatencyHidingPre,
@@ -946,17 +941,17 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        v->cursor_bw_pre,
                                        v->prefetch_vmrow_bw,
                                        mode_lib->vba.DPPPerPlane,
-                                       dummy_unit_vector,
-                                       dummy_unit_vector,
-                                       dummy_unit_vector,
-                                       dummy_unit_vector,
-                                       dummy_unit_vector,
-                                       dummy_unit_vector,
+                                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
/* output */
-                                       &dummy_single[0],
+                                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_single[0],
                                        &v->FractionOfUrgentBandwidth,
-                                       &dummy_boolean[0]);
+                                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_boolean);
                }
if (VRatioPrefetchMoreThanMax != false || DestinationLineTimesForPrefetchLessThan2 != false) {
@@ -1039,8 +1034,6 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        }
{
-                               double  dummy_single[2];
-                               bool dummy_boolean[1];
                                
dml32_CalculateImmediateFlipBandwithSupport(mode_lib->vba.NumberOfActiveSurfaces,
                                                mode_lib->vba.ReturnBW,
                                                
mode_lib->vba.ImmediateFlipRequirement,
@@ -1064,7 +1057,7 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
/* output */
                                                
&v->total_dcn_read_bw_with_flip,    // Single  *TotalBandwidth
-                                               &dummy_single[0],               
         // Single  *FractionOfUrgentBandwidth
+                                               
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_single[0],
                        // Single  *FractionOfUrgentBandwidth
                                                &v->ImmediateFlipSupported);    
    // Boolean *ImmediateFlipBandwidthSupport
dml32_CalculateImmediateFlipBandwithSupport(mode_lib->vba.NumberOfActiveSurfaces,
@@ -1081,17 +1074,17 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                v->cursor_bw_pre,
                                                v->prefetch_vmrow_bw,
                                                mode_lib->vba.DPPPerPlane,
-                                               dummy_unit_vector,
-                                               dummy_unit_vector,
-                                               dummy_unit_vector,
-                                               dummy_unit_vector,
-                                               dummy_unit_vector,
-                                               dummy_unit_vector,
+                                               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
+                                               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_unit_vector,
/* output */
-                                               &dummy_single[1],               
                 // Single  *TotalBandwidth
+                                               
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_single[1],
                                // Single  *TotalBandwidth
                                                
&v->FractionOfUrgentBandwidthImmediateFlip, // Single  
*FractionOfUrgentBandwidth
-                                               &dummy_boolean[0]);             
                 // Boolean *ImmediateFlipBandwidthSupport
+                                               
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_boolean);
                              // Boolean *ImmediateFlipBandwidthSupport
                        }
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
@@ -1149,22 +1142,17 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
//Watermarks and NB P-State/DRAM Clock Change Support
        {
-               SOCParametersList mmSOCParameters;
-               enum clock_change_support dummy_dramchange_support;
-               enum dm_fclock_change_support dummy_fclkchange_support;
-               bool dummy_USRRetrainingSupport;
-
-               mmSOCParameters.UrgentLatency = v->UrgentLatency;
-               mmSOCParameters.ExtraLatency = v->UrgentExtraLatency;
-               mmSOCParameters.WritebackLatency = 
mode_lib->vba.WritebackLatency;
-               mmSOCParameters.DRAMClockChangeLatency = 
mode_lib->vba.DRAMClockChangeLatency;
-               mmSOCParameters.FCLKChangeLatency = 
mode_lib->vba.FCLKChangeLatency;
-               mmSOCParameters.SRExitTime = mode_lib->vba.SRExitTime;
-               mmSOCParameters.SREnterPlusExitTime = 
mode_lib->vba.SREnterPlusExitTime;
-               mmSOCParameters.SRExitZ8Time = mode_lib->vba.SRExitZ8Time;
-               mmSOCParameters.SREnterPlusExitZ8Time = 
mode_lib->vba.SREnterPlusExitZ8Time;
-               mmSOCParameters.USRRetrainingLatency = 
mode_lib->vba.USRRetrainingLatency;
-               mmSOCParameters.SMNLatency = mode_lib->vba.SMNLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.UrgentLatency
 = v->UrgentLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.ExtraLatency
 = v->UrgentExtraLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.WritebackLatency
 = mode_lib->vba.WritebackLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.DRAMClockChangeLatency
 = mode_lib->vba.DRAMClockChangeLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.FCLKChangeLatency
 = mode_lib->vba.FCLKChangeLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.SRExitTime
 = mode_lib->vba.SRExitTime;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.SREnterPlusExitTime
 = mode_lib->vba.SREnterPlusExitTime;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.SRExitZ8Time
 = mode_lib->vba.SRExitZ8Time;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.SREnterPlusExitZ8Time
 = mode_lib->vba.SREnterPlusExitZ8Time;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.USRRetrainingLatency
 = mode_lib->vba.USRRetrainingLatency;
+               
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters.SMNLatency
 = mode_lib->vba.SMNLatency;
dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport(
                        mode_lib->vba.USRRetrainingRequiredFinal,
@@ -1182,7 +1170,7 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        v->dpte_group_bytes,
                        v->meta_row_height,
                        v->meta_row_height_chroma,
-                       mmSOCParameters,
+                       
v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.mmSOCParameters,
                        mode_lib->vba.WritebackChunkSize,
                        mode_lib->vba.SOCCLK,
                        v->DCFCLKDeepSleep,
@@ -1219,12 +1207,12 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
/* Output */
                        &v->Watermark,
-                       &dummy_dramchange_support,
+                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_dramchange_support,
                        v->MaxActiveDRAMClockChangeLatencySupported,
                        v->SubViewportLinesNeededInMALL,
-                       &dummy_fclkchange_support,
+                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_fclkchange_support,
                        &v->MinActiveFCLKChangeLatencySupported,
-                       &dummy_USRRetrainingSupport,
+                       
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_USRRetrainingSupport,
                        mode_lib->vba.ActiveDRAMClockChangeLatencyMargin);
/* DCN32 has a new struct Watermarks (typedef) which is used to store
@@ -1486,9 +1474,6 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
{
                //Maximum Bandwidth Used
-               double TotalWRBandwidth = 0;
-               double WRBandwidth = 0;
-
                for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                        if (mode_lib->vba.WritebackEnable[k] == true
                                        && 
mode_lib->vba.WritebackPixelFormat[k] == dm_444_32) {
@@ -1582,9 +1567,7 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
#ifdef __DML_VBA_ALLOW_DELTA__
        {
-               double dummy_single[2];
                unsigned int dummy_integer[1];
-               bool dummy_boolean[1];
// Calculate z8 stutter eff assuming 0 reserved space
                dml32_CalculateStutterEfficiency(v->CompressedBufferSizeInkByte,
@@ -1637,14 +1620,14 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->meta_row_bw, v->dpte_row_bw,
/* Output */
-                               &dummy_single[0],
-                               &dummy_single[1],
+                               
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_single[0],
+                               
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_single[1],
                                &dummy_integer[0],
                                
&v->Z8StutterEfficiencyNotIncludingVBlankBestCase,
                                &v->Z8StutterEfficiencyBestCase,
                                &v->Z8NumberOfStutterBurstsPerFrameBestCase,
                                &v->StutterPeriodBestCase,
-                               &dummy_boolean[0]);
+                               
&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_boolean);
        }
  #else
        v->Z8StutterEfficiencyNotIncludingVBlankBestCase = 
v->Z8StutterEfficiencyNotIncludingVBlank;
@@ -1660,29 +1643,16 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
  {
-       unsigned int dummy_integer[4];
-       bool MPCCombineMethodAsNeededForPStateChangeAndVoltage;
-       bool MPCCombineMethodAsPossible;
-       enum odm_combine_mode dummy_odm_mode[DC__NUM_DPP__MAX];
-       unsigned int TotalNumberOfActiveOTG;
-       unsigned int TotalNumberOfActiveHDMIFRL;
-       unsigned int TotalNumberOfActiveDP2p0;
-       unsigned int TotalNumberOfActiveDP2p0Outputs;
-       unsigned int TotalDSCUnitsRequired;
-       unsigned int m;
-       unsigned int ReorderingBytes;
-       bool FullFrameMALLPStateMethod;
-       bool SubViewportMALLPStateMethod;
-       bool PhantomPipeMALLPStateMethod;
+       struct vba_vars_st *v = &mode_lib->vba;
+       int i, j;
+       unsigned int k, m;
        unsigned int MaximumMPCCombine;
+       unsigned int NumberOfNonCombinedSurfaceOfMaximumBandwidth;
+       unsigned int TotalSlots;
#ifdef __DML_VBA_DEBUG__
        dml_print("DML::%s: called\n", __func__);
  #endif
-       struct vba_vars_st *v = &mode_lib->vba;
-
-       int i, j;
-       unsigned int k;
/*MODE SUPPORT, VOLTAGE STATE AND SOC CONFIGURATION*/ @@ -1951,7 +1921,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                        mode_lib->vba.Read256BlockHeightC,
                        mode_lib->vba.Read256BlockWidthY,
                        mode_lib->vba.Read256BlockWidthC,
-                       dummy_odm_mode,
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_odm_mode,
                        mode_lib->vba.BlendingAndTiming,
                        mode_lib->vba.BytePerPixelY,
                        mode_lib->vba.BytePerPixelC,
@@ -1977,35 +1947,26 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                        mode_lib->vba.SingleDPPViewportSizeSupportPerSurface,/* 
bool ViewportSizeSupportPerSurface[] */
                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_boolean_array[1][0]);
 /* bool           *ViewportSizeSupport */
- MPCCombineMethodAsNeededForPStateChangeAndVoltage = false;
-       MPCCombineMethodAsPossible = false;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MPCCombineMethodAsNeededForPStateChangeAndVoltage
 = false;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MPCCombineMethodAsPossible
 = false;
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                if (mode_lib->vba.MPCCombineUse[k] == 
dm_mpc_reduce_voltage_and_clocks)
-                       MPCCombineMethodAsNeededForPStateChangeAndVoltage = 
true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MPCCombineMethodAsNeededForPStateChangeAndVoltage
 = true;
                if (mode_lib->vba.MPCCombineUse[k] == 
dm_mpc_always_when_possible)
-                       MPCCombineMethodAsPossible = true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MPCCombineMethodAsPossible
 = true;
        }
-       mode_lib->vba.MPCCombineMethodIncompatible = 
MPCCombineMethodAsNeededForPStateChangeAndVoltage
-                       && MPCCombineMethodAsPossible;
+       mode_lib->vba.MPCCombineMethodIncompatible = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MPCCombineMethodAsNeededForPStateChangeAndVoltage
+                       && 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MPCCombineMethodAsPossible;
for (i = 0; i < v->soc.num_states; i++) {
                for (j = 0; j < 2; j++) {
-                       bool NoChroma;
                        mode_lib->vba.TotalNumberOfActiveDPP[i][j] = 0;
                        mode_lib->vba.TotalAvailablePipesSupport[i][j] = true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeNoDSC = 
dm_odm_combine_mode_disabled;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeDSC = 
dm_odm_combine_mode_disabled;
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
-
-                               bool TotalAvailablePipesSupportNoDSC;
-                               unsigned int NumberOfDPPNoDSC;
-                               enum odm_combine_mode ODMModeNoDSC = 
dm_odm_combine_mode_disabled;
-                               double RequiredDISPCLKPerSurfaceNoDSC;
-                               bool TotalAvailablePipesSupportDSC;
-                               unsigned int NumberOfDPPDSC;
-                               enum odm_combine_mode ODMModeDSC = 
dm_odm_combine_mode_disabled;
-                               double RequiredDISPCLKPerSurfaceDSC;
-
                                dml32_CalculateODMMode(
                                                
mode_lib->vba.MaximumPixelsPerLinePerDSCUnit,
                                                mode_lib->vba.HActive[k],
@@ -2022,10 +1983,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                
mode_lib->vba.DISPCLKDPPCLKVCOSpeed,
/* Output */
-                                               
&TotalAvailablePipesSupportNoDSC,
-                                               &NumberOfDPPNoDSC,
-                                               &ODMModeNoDSC,
-                                               
&RequiredDISPCLKPerSurfaceNoDSC);
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalAvailablePipesSupportNoDSC,
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NumberOfDPPNoDSC,
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeNoDSC,
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.RequiredDISPCLKPerSurfaceNoDSC);
dml32_CalculateODMMode(
                                                
mode_lib->vba.MaximumPixelsPerLinePerDSCUnit,
@@ -2043,10 +2004,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                
mode_lib->vba.DISPCLKDPPCLKVCOSpeed,
/* Output */
-                                               &TotalAvailablePipesSupportDSC,
-                                               &NumberOfDPPDSC,
-                                               &ODMModeDSC,
-                                               &RequiredDISPCLKPerSurfaceDSC);
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalAvailablePipesSupportDSC,
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NumberOfDPPDSC,
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeDSC,
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.RequiredDISPCLKPerSurfaceDSC);
dml32_CalculateOutputLink(
                                                mode_lib->vba.PHYCLKPerState[i],
@@ -2064,8 +2025,8 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                
mode_lib->vba.NumberOfDSCSlices[k],
                                                
mode_lib->vba.AudioSampleRate[k],
                                                
mode_lib->vba.AudioSampleLayout[k],
-                                               ODMModeNoDSC,
-                                               ODMModeDSC,
+                                               
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeNoDSC,
+                                               
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeDSC,
                                                mode_lib->vba.DSCEnable[k],
                                                
mode_lib->vba.OutputLinkDPLanes[k],
                                                
mode_lib->vba.OutputLinkDPRate[k],
@@ -2079,21 +2040,21 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                
&mode_lib->vba.RequiredSlots[i][k]);
if (mode_lib->vba.RequiresDSC[i][k] == false) {
-                                       
mode_lib->vba.ODMCombineEnablePerState[i][k] = ODMModeNoDSC;
+                                       
mode_lib->vba.ODMCombineEnablePerState[i][k] = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeNoDSC;
                                        
mode_lib->vba.RequiredDISPCLKPerSurface[i][j][k] =
-                                                       
RequiredDISPCLKPerSurfaceNoDSC;
-                                       if (!TotalAvailablePipesSupportNoDSC)
+                                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.RequiredDISPCLKPerSurfaceNoDSC;
+                                       if 
(!v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalAvailablePipesSupportNoDSC)
                                                
mode_lib->vba.TotalAvailablePipesSupport[i][j] = false;
                                        
mode_lib->vba.TotalNumberOfActiveDPP[i][j] =
-                                                       
mode_lib->vba.TotalNumberOfActiveDPP[i][j] + NumberOfDPPNoDSC;
+                                                       
mode_lib->vba.TotalNumberOfActiveDPP[i][j] + 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NumberOfDPPNoDSC;
                                } else {
-                                       
mode_lib->vba.ODMCombineEnablePerState[i][k] = ODMModeDSC;
+                                       
mode_lib->vba.ODMCombineEnablePerState[i][k] = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeDSC;
                                        
mode_lib->vba.RequiredDISPCLKPerSurface[i][j][k] =
-                                                       
RequiredDISPCLKPerSurfaceDSC;
-                                       if (!TotalAvailablePipesSupportDSC)
+                                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.RequiredDISPCLKPerSurfaceDSC;
+                                       if 
(!v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalAvailablePipesSupportDSC)
                                                
mode_lib->vba.TotalAvailablePipesSupport[i][j] = false;
                                        
mode_lib->vba.TotalNumberOfActiveDPP[i][j] =
-                                                       
mode_lib->vba.TotalNumberOfActiveDPP[i][j] + NumberOfDPPDSC;
+                                                       
mode_lib->vba.TotalNumberOfActiveDPP[i][j] + 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NumberOfDPPDSC;
                                }
                        }
@@ -2128,7 +2089,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                        }
mode_lib->vba.TotalNumberOfSingleDPPSurfaces[i][j] = 0;
-                       NoChroma = true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NoChroma = true;
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                                if (mode_lib->vba.NoOfDPP[i][j][k] == 1)
@@ -2138,17 +2099,17 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                || 
mode_lib->vba.SourcePixelFormat[k] == dm_420_10
                                                || 
mode_lib->vba.SourcePixelFormat[k] == dm_420_12
                                                || 
mode_lib->vba.SourcePixelFormat[k] == dm_rgbe_alpha) {
-                                       NoChroma = false;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NoChroma = false;
                                }
                        }
if (j == 1 && !dml32_UnboundedRequest(mode_lib->vba.UseUnboundedRequesting,
-                                                       
mode_lib->vba.TotalNumberOfActiveDPP[i][j], NoChroma,
+                                                       
mode_lib->vba.TotalNumberOfActiveDPP[i][j], 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NoChroma,
                                                        
mode_lib->vba.Output[0])) {
                                while (!(mode_lib->vba.TotalNumberOfActiveDPP[i][j] 
>= mode_lib->vba.MaxNumDPP
                                                || 
mode_lib->vba.TotalNumberOfSingleDPPSurfaces[i][j] == 0)) {
-                                       double 
BWOfNonCombinedSurfaceOfMaximumBandwidth = 0;
-                                       unsigned int 
NumberOfNonCombinedSurfaceOfMaximumBandwidth = 0;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.BWOfNonCombinedSurfaceOfMaximumBandwidth
 = 0;
+                                       
NumberOfNonCombinedSurfaceOfMaximumBandwidth = 0;
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                                                if 
(mode_lib->vba.MPCCombineUse[k]
@@ -2156,13 +2117,13 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        mode_lib->vba.MPCCombineUse[k] 
!= dm_mpc_reduce_voltage &&
                                                        
mode_lib->vba.ReadBandwidthLuma[k] +
                                                        
mode_lib->vba.ReadBandwidthChroma[k] >
-                                                       
BWOfNonCombinedSurfaceOfMaximumBandwidth &&
+                                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.BWOfNonCombinedSurfaceOfMaximumBandwidth
 &&
                                                        
(mode_lib->vba.ODMCombineEnablePerState[i][k] !=
                                                        dm_odm_combine_mode_2to1 
&&
                                                        
mode_lib->vba.ODMCombineEnablePerState[i][k] !=
                                                        dm_odm_combine_mode_4to1) 
&&
                                                                
mode_lib->vba.MPCCombine[i][j][k] == false) {
-                                                       
BWOfNonCombinedSurfaceOfMaximumBandwidth =
+                                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.BWOfNonCombinedSurfaceOfMaximumBandwidth
 =
                                                                
mode_lib->vba.ReadBandwidthLuma[k]
                                                                + 
mode_lib->vba.ReadBandwidthChroma[k];
                                                        
NumberOfNonCombinedSurfaceOfMaximumBandwidth = k;
@@ -2228,28 +2189,28 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        } // i (VOLTAGE_STATE)
/* Total Available OTG, HDMIFRL, DP Support Check */
-       TotalNumberOfActiveOTG = 0;
-       TotalNumberOfActiveHDMIFRL = 0;
-       TotalNumberOfActiveDP2p0 = 0;
-       TotalNumberOfActiveDP2p0Outputs = 0;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveOTG
 = 0;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveHDMIFRL
 = 0;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0
 = 0;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0Outputs
 = 0;
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                if (mode_lib->vba.BlendingAndTiming[k] == k) {
-                       TotalNumberOfActiveOTG = TotalNumberOfActiveOTG + 1;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveOTG = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveOTG + 
1;
                        if (mode_lib->vba.Output[k] == dm_dp2p0) {
-                               TotalNumberOfActiveDP2p0 = 
TotalNumberOfActiveDP2p0 + 1;
+                               
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0 
= 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0 
+ 1;
                                if (mode_lib->vba.OutputMultistreamId[k]
                                                == k || 
mode_lib->vba.OutputMultistreamEn[k] == false) {
-                                       TotalNumberOfActiveDP2p0Outputs = 
TotalNumberOfActiveDP2p0Outputs + 1;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0Outputs
 = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0Outputs
 + 1;
                                }
                        }
                }
        }
- mode_lib->vba.NumberOfOTGSupport = (TotalNumberOfActiveOTG <= mode_lib->vba.MaxNumOTG);
-       mode_lib->vba.NumberOfHDMIFRLSupport = (TotalNumberOfActiveHDMIFRL <= 
mode_lib->vba.MaxNumHDMIFRLOutputs);
-       mode_lib->vba.NumberOfDP2p0Support = (TotalNumberOfActiveDP2p0 <= 
mode_lib->vba.MaxNumDP2p0Streams
-                       && TotalNumberOfActiveDP2p0Outputs <= 
mode_lib->vba.MaxNumDP2p0Outputs);
+       mode_lib->vba.NumberOfOTGSupport = 
(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveOTG <= 
mode_lib->vba.MaxNumOTG);
+       mode_lib->vba.NumberOfHDMIFRLSupport = 
(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveHDMIFRL 
<= mode_lib->vba.MaxNumHDMIFRLOutputs);
+       mode_lib->vba.NumberOfDP2p0Support = 
(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0 
<= mode_lib->vba.MaxNumDP2p0Streams
+                       && 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalNumberOfActiveDP2p0Outputs 
<= mode_lib->vba.MaxNumDP2p0Outputs);
/* Display IO and DSC Support Check */
        mode_lib->vba.NonsupportedDSCInputBPC = false;
@@ -2264,8 +2225,6 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        }
for (i = 0; i < v->soc.num_states; ++i) {
-               unsigned int TotalSlots;
-
                mode_lib->vba.ExceededMultistreamSlots[i] = false;
                for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                        if (mode_lib->vba.OutputMultistreamEn[k] == true && 
mode_lib->vba.OutputMultistreamId[k] == k) {
@@ -2436,12 +2395,12 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        }
/* Check DSC Unit and Slices Support */
-       TotalDSCUnitsRequired = 0;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired 
= 0;
for (i = 0; i < v->soc.num_states; ++i) {
                mode_lib->vba.NotEnoughDSCUnits[i] = false;
                mode_lib->vba.NotEnoughDSCSlices[i] = false;
-               TotalDSCUnitsRequired = 0;
+               
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired 
= 0;
                mode_lib->vba.PixelsPerLinePerDSCUnitSupport[i] = true;
                for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                        if (mode_lib->vba.RequiresDSC[i][k] == true) {
@@ -2449,33 +2408,31 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                        if (mode_lib->vba.HActive[k]
                                                        > 4 * 
mode_lib->vba.MaximumPixelsPerLinePerDSCUnit)
                                                
mode_lib->vba.PixelsPerLinePerDSCUnitSupport[i] = false;
-                                       TotalDSCUnitsRequired = 
TotalDSCUnitsRequired + 4;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired + 
4;
                                        if (mode_lib->vba.NumberOfDSCSlices[k] 
> 16)
                                                
mode_lib->vba.NotEnoughDSCSlices[i] = true;
                                } else if 
(mode_lib->vba.ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1) {
                                        if (mode_lib->vba.HActive[k]
                                                        > 2 * 
mode_lib->vba.MaximumPixelsPerLinePerDSCUnit)
                                                
mode_lib->vba.PixelsPerLinePerDSCUnitSupport[i] = false;
-                                       TotalDSCUnitsRequired = 
TotalDSCUnitsRequired + 2;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired + 
2;
                                        if (mode_lib->vba.NumberOfDSCSlices[k] 
> 8)
                                                
mode_lib->vba.NotEnoughDSCSlices[i] = true;
                                } else {
                                        if (mode_lib->vba.HActive[k] > 
mode_lib->vba.MaximumPixelsPerLinePerDSCUnit)
                                                
mode_lib->vba.PixelsPerLinePerDSCUnitSupport[i] = false;
-                                       TotalDSCUnitsRequired = 
TotalDSCUnitsRequired + 1;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired + 
1;
                                        if (mode_lib->vba.NumberOfDSCSlices[k] 
> 4)
                                                
mode_lib->vba.NotEnoughDSCSlices[i] = true;
                                }
                        }
                }
-               if (TotalDSCUnitsRequired > mode_lib->vba.NumberOfDSC)
+               if 
(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.TotalDSCUnitsRequired > 
mode_lib->vba.NumberOfDSC)
                        mode_lib->vba.NotEnoughDSCUnits[i] = true;
        }
/*DSC Delay per state*/
        for (i = 0; i < v->soc.num_states; ++i) {
-               unsigned int m;
-
                for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                        mode_lib->vba.DSCDelayPerState[i][k] = 
dml32_DSCDelayRequirement(
                                        mode_lib->vba.RequiresDSC[i][k], 
mode_lib->vba.ODMCombineEnablePerState[i][k],
@@ -2932,7 +2889,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                }
        }
- ReorderingBytes = mode_lib->vba.NumberOfChannels
+       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes 
= mode_lib->vba.NumberOfChannels
                        * 
dml_max3(mode_lib->vba.UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        
mode_lib->vba.UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
                                        
mode_lib->vba.UrgentOutOfOrderReturnPerChannelVMDataOnly);
@@ -2988,20 +2945,20 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                        && (mode_lib->vba.UsesMALLForPStateChange[k] == 
dm_use_mall_pstate_change_full_frame));
        }
- FullFrameMALLPStateMethod = false;
-       SubViewportMALLPStateMethod = false;
-       PhantomPipeMALLPStateMethod = false;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.FullFrameMALLPStateMethod
 = false;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.SubViewportMALLPStateMethod
 = false;
+       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.PhantomPipeMALLPStateMethod
 = false;
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                if (mode_lib->vba.UsesMALLForPStateChange[k] == 
dm_use_mall_pstate_change_full_frame)
-                       FullFrameMALLPStateMethod = true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.FullFrameMALLPStateMethod
 = true;
                if (mode_lib->vba.UsesMALLForPStateChange[k] == 
dm_use_mall_pstate_change_sub_viewport)
-                       SubViewportMALLPStateMethod = true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.SubViewportMALLPStateMethod
 = true;
                if (mode_lib->vba.UsesMALLForPStateChange[k] == 
dm_use_mall_pstate_change_phantom_pipe)
-                       PhantomPipeMALLPStateMethod = true;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.PhantomPipeMALLPStateMethod
 = true;
        }
-       mode_lib->vba.InvalidCombinationOfMALLUseForPState = 
(SubViewportMALLPStateMethod
-                       != PhantomPipeMALLPStateMethod) || (SubViewportMALLPStateMethod 
&& FullFrameMALLPStateMethod);
+       mode_lib->vba.InvalidCombinationOfMALLUseForPState = 
(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.SubViewportMALLPStateMethod
+                       != 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.PhantomPipeMALLPStateMethod) || 
(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.SubViewportMALLPStateMethod 
&& 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.FullFrameMALLPStateMethod);
if (mode_lib->vba.UseMinimumRequiredDCFCLK == true) {
                dml32_UseMinimumDCFCLK(
@@ -3015,7 +2972,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                mode_lib->vba.SREnterPlusExitTime,
                                mode_lib->vba.ReturnBusWidth,
                                mode_lib->vba.RoundTripPingLatencyCycles,
-                               ReorderingBytes,
+                               
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes,
                                mode_lib->vba.PixelChunkSizeInKByte,
                                mode_lib->vba.MetaChunkSize,
                                mode_lib->vba.GPUVMEnable,
@@ -3078,7 +3035,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                        / mode_lib->vba.ReturnBWPerState[i][j]
                                        > 
(mode_lib->vba.RoundTripPingLatencyCycles + 32)
                                                        / 
mode_lib->vba.DCFCLKState[i][j]
-                                                       + ReorderingBytes / 
mode_lib->vba.ReturnBWPerState[i][j]) {
+                                                       + 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes / 
mode_lib->vba.ReturnBWPerState[i][j]) {
                                mode_lib->vba.ROBSupport[i][j] = true;
                        } else {
                                mode_lib->vba.ROBSupport[i][j] = false;
@@ -3120,9 +3077,6 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
for (i = 0; i < (int) v->soc.num_states; ++i) {
                for (j = 0; j <= 1; ++j) {
-                       double VMDataOnlyReturnBWPerState;
-                       double HostVMInefficiencyFactor;
-                       unsigned int NextPrefetchModeState;
mode_lib->vba.TimeCalc = 24 / mode_lib->vba.ProjectedDCFCLKDeepSleep[i][j]; @@ -3162,37 +3116,35 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        mode_lib->vba.UrgentBurstFactorChroma,
                                        mode_lib->vba.UrgentBurstFactorCursor);
- VMDataOnlyReturnBWPerState = dml32_get_return_bw_mbps_vm_only(&mode_lib->vba.soc, i,
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.VMDataOnlyReturnBWPerState = 
dml32_get_return_bw_mbps_vm_only(&mode_lib->vba.soc, i,
                                        mode_lib->vba.DCFCLKState[i][j], 
mode_lib->vba.FabricClockPerState[i],
                                        mode_lib->vba.DRAMSpeedPerState[i]);
-                       HostVMInefficiencyFactor = 1;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor
 = 1;
if (mode_lib->vba.GPUVMEnable && mode_lib->vba.HostVMEnable)
-                               HostVMInefficiencyFactor = 
mode_lib->vba.ReturnBWPerState[i][j]
-                                               / VMDataOnlyReturnBWPerState;
+                               
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor 
= mode_lib->vba.ReturnBWPerState[i][j]
+                                               / 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.VMDataOnlyReturnBWPerState;
mode_lib->vba.ExtraLatency = dml32_CalculateExtraLatency(
-                                       
mode_lib->vba.RoundTripPingLatencyCycles, ReorderingBytes,
+                                       mode_lib->vba.RoundTripPingLatencyCycles, 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes,
                                        mode_lib->vba.DCFCLKState[i][j], 
mode_lib->vba.TotalNumberOfActiveDPP[i][j],
                                        mode_lib->vba.PixelChunkSizeInKByte,
                                        
mode_lib->vba.TotalNumberOfDCCActiveDPP[i][j], mode_lib->vba.MetaChunkSize,
                                        mode_lib->vba.ReturnBWPerState[i][j], 
mode_lib->vba.GPUVMEnable,
                                        mode_lib->vba.HostVMEnable, 
mode_lib->vba.NumberOfActiveSurfaces,
                                        mode_lib->vba.NoOfDPPThisState, 
mode_lib->vba.dpte_group_bytes,
-                                       HostVMInefficiencyFactor, 
mode_lib->vba.HostVMMinPageSize,
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor,
 mode_lib->vba.HostVMMinPageSize,
                                        
mode_lib->vba.HostVMMaxNonCachedPageTableLevels);
- NextPrefetchModeState = mode_lib->vba.MinPrefetchMode;
+                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NextPrefetchModeState = 
mode_lib->vba.MinPrefetchMode;
mode_lib->vba.NextMaxVStartup = mode_lib->vba.MaxMaxVStartup[i][j]; do {
-                               mode_lib->vba.PrefetchModePerState[i][j] = 
NextPrefetchModeState;
+                               mode_lib->vba.PrefetchModePerState[i][j] = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NextPrefetchModeState;
                                mode_lib->vba.MaxVStartup = 
mode_lib->vba.NextMaxVStartup;
for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
-                                       DmlPipe myPipe;
-
                                        mode_lib->vba.TWait = 
dml32_CalculateTWait(
                                                        
mode_lib->vba.PrefetchModePerState[i][j],
                                                        
mode_lib->vba.UsesMALLForPStateChange[k],
@@ -3202,34 +3154,34 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        
mode_lib->vba.FCLKChangeLatency, mode_lib->vba.UrgLatency[i],
                                                        
mode_lib->vba.SREnterPlusExitTime);
- myPipe.Dppclk = mode_lib->vba.RequiredDPPCLK[i][j][k];
-                                       myPipe.Dispclk = 
mode_lib->vba.RequiredDISPCLK[i][j];
-                                       myPipe.PixelClock = 
mode_lib->vba.PixelClock[k];
-                                       myPipe.DCFClkDeepSleep = 
mode_lib->vba.ProjectedDCFCLKDeepSleep[i][j];
-                                       myPipe.DPPPerSurface = 
mode_lib->vba.NoOfDPP[i][j][k];
-                                       myPipe.ScalerEnabled = 
mode_lib->vba.ScalerEnabled[k];
-                                       myPipe.SourceRotation = 
mode_lib->vba.SourceRotation[k];
-                                       myPipe.BlockWidth256BytesY = 
mode_lib->vba.Read256BlockWidthY[k];
-                                       myPipe.BlockHeight256BytesY = 
mode_lib->vba.Read256BlockHeightY[k];
-                                       myPipe.BlockWidth256BytesC = 
mode_lib->vba.Read256BlockWidthC[k];
-                                       myPipe.BlockHeight256BytesC = 
mode_lib->vba.Read256BlockHeightC[k];
-                                       myPipe.InterlaceEnable = 
mode_lib->vba.Interlace[k];
-                                       myPipe.NumberOfCursors = 
mode_lib->vba.NumberOfCursors[k];
-                                       myPipe.VBlank = mode_lib->vba.VTotal[k] - 
mode_lib->vba.VActive[k];
-                                       myPipe.HTotal = mode_lib->vba.HTotal[k];
-                                       myPipe.HActive = 
mode_lib->vba.HActive[k];
-                                       myPipe.DCCEnable = 
mode_lib->vba.DCCEnable[k];
-                                       myPipe.ODMMode = 
mode_lib->vba.ODMCombineEnablePerState[i][k];
-                                       myPipe.SourcePixelFormat = 
mode_lib->vba.SourcePixelFormat[k];
-                                       myPipe.BytePerPixelY = 
mode_lib->vba.BytePerPixelY[k];
-                                       myPipe.BytePerPixelC = 
mode_lib->vba.BytePerPixelC[k];
-                                       myPipe.ProgressiveToInterlaceUnitInOPP =
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.Dppclk = 
mode_lib->vba.RequiredDPPCLK[i][j][k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.Dispclk = 
mode_lib->vba.RequiredDISPCLK[i][j];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.PixelClock = 
mode_lib->vba.PixelClock[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.DCFClkDeepSleep = 
mode_lib->vba.ProjectedDCFCLKDeepSleep[i][j];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.DPPPerSurface = 
mode_lib->vba.NoOfDPP[i][j][k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.ScalerEnabled = 
mode_lib->vba.ScalerEnabled[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.SourceRotation = 
mode_lib->vba.SourceRotation[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.BlockWidth256BytesY
 = mode_lib->vba.Read256BlockWidthY[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.BlockHeight256BytesY
 = mode_lib->vba.Read256BlockHeightY[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.BlockWidth256BytesC
 = mode_lib->vba.Read256BlockWidthC[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.BlockHeight256BytesC
 = mode_lib->vba.Read256BlockHeightC[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.InterlaceEnable = 
mode_lib->vba.Interlace[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.NumberOfCursors = 
mode_lib->vba.NumberOfCursors[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.VBlank = 
mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.HTotal = 
mode_lib->vba.HTotal[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.HActive = 
mode_lib->vba.HActive[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.DCCEnable = 
mode_lib->vba.DCCEnable[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.ODMMode = 
mode_lib->vba.ODMCombineEnablePerState[i][k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.SourcePixelFormat 
= mode_lib->vba.SourcePixelFormat[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.BytePerPixelY = 
mode_lib->vba.BytePerPixelY[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.BytePerPixelC = 
mode_lib->vba.BytePerPixelC[k];
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe.ProgressiveToInterlaceUnitInOPP
 =
                                                        
mode_lib->vba.ProgressiveToInterlaceUnitInOPP;
mode_lib->vba.NoTimeForPrefetch[i][j][k] =
                                                dml32_CalculatePrefetchSchedule(
-                                                       
HostVMInefficiencyFactor,
-                                                       &myPipe,
+                                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor,
+                                                       
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe,
                                                        
mode_lib->vba.DSCDelayPerState[i][k],
                                                        
mode_lib->vba.DPPCLKDelaySubtotal +
                                                                
mode_lib->vba.DPPCLKDelayCNVCFormater,
@@ -3288,7 +3240,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single[0],     
    // double *Tdmdl_vm
                                                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single[1],     
    // double *Tdmdl
                                                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single[2],     
    // double *TSetup
-                                                       &dummy_integer[0],      
                                                        // unsigned int   
*VUpdateOffsetPix
+                                                       
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_integer[0],    
                                                             // unsigned int   
*VUpdateOffsetPix
                                                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single[3],     
    // unsigned int   *VUpdateWidthPix
                                                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single[4]);    
    // unsigned int   *VReadyOffsetPix
                                }
@@ -3417,7 +3369,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                        }
for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
-                                               
dml32_CalculateFlipSchedule(HostVMInefficiencyFactor,
+                                               
dml32_CalculateFlipSchedule(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor,
                                                        
mode_lib->vba.ExtraLatency,
                                                        
mode_lib->vba.UrgLatency[i],
                                                        
mode_lib->vba.GPUVMMaxPageTableLevels,
@@ -3491,7 +3443,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                if (mode_lib->vba.MaxVStartup <= 
__DML_VBA_MIN_VSTARTUP__
                                                || 
mode_lib->vba.AnyLinesForVMOrRowTooLarge == false) {
                                        mode_lib->vba.NextMaxVStartup = 
mode_lib->vba.MaxMaxVStartup[i][j];
-                                       NextPrefetchModeState = 
NextPrefetchModeState + 1;
+                                       
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NextPrefetchModeState = 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NextPrefetchModeState + 
1;
                                } else {
                                        mode_lib->vba.NextMaxVStartup = 
mode_lib->vba.NextMaxVStartup - 1;
                                }
@@ -3505,7 +3457,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        && 
!mode_lib->vba.ImmediateFlipRequiredFinal)
                                                        || 
mode_lib->vba.ImmediateFlipSupportedForState[i][j] == true))
                                        || (mode_lib->vba.NextMaxVStartup == 
mode_lib->vba.MaxMaxVStartup[i][j]
-                                                       && NextPrefetchModeState > 
mode_lib->vba.MaxPrefetchMode)));
+                                                       && 
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NextPrefetchModeState > 
mode_lib->vba.MaxPrefetchMode)));
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                                
mode_lib->vba.use_one_row_for_frame_this_state[k] =
@@ -3581,7 +3533,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                &mode_lib->vba.Watermark, // 
Store the values in vba
                                                
&mode_lib->vba.DRAMClockChangeSupport[i][j],
                                                
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single2[0], // 
double *MaxActiveDRAMClockChangeLatencySupported
-                                               &dummy_integer[0], // Long 
SubViewportLinesNeededInMALL[]
+                                               
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_integer[0], // 
Long SubViewportLinesNeededInMALL[]
                                                
&mode_lib->vba.FCLKChangeSupport[i][j],
                                                
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single2[1], // 
double *MinActiveFCLKChangeLatencySupported
                                                
&mode_lib->vba.USRRetrainingSupport[i][j],
diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h 
b/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h
index 47b149d4bfcf..d4b6fa0a9ee3 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h
+++ b/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h
@@ -197,6 +197,13 @@ struct 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCal
        unsigned int ReorderBytes;
        unsigned int VMDataOnlyReturnBW;
        double HostVMInefficiencyFactor;
+       DmlPipe myPipe;
+       SOCParametersList mmSOCParameters;
+       double dummy_unit_vector[DC__NUM_DPP__MAX];
+       double dummy_single[2];
+       enum clock_change_support dummy_dramchange_support;
+       enum dm_fclock_change_support dummy_fclkchange_support;
+       bool dummy_USRRetrainingSupport;
  };
struct dml32_ModeSupportAndSystemConfigurationFull {
@@ -212,6 +219,34 @@ struct dml32_ModeSupportAndSystemConfigurationFull {
        double DSTXAfterScaler[DC__NUM_DPP__MAX];
        double MaxTotalVActiveRDBandwidth;
        bool dummy_boolean_array[2][DC__NUM_DPP__MAX];
+       enum odm_combine_mode dummy_odm_mode[DC__NUM_DPP__MAX];
+       DmlPipe myPipe;
+       unsigned int dummy_integer[4];
+       unsigned int TotalNumberOfActiveOTG;
+       unsigned int TotalNumberOfActiveHDMIFRL;
+       unsigned int TotalNumberOfActiveDP2p0;
+       unsigned int TotalNumberOfActiveDP2p0Outputs;
+       unsigned int TotalDSCUnitsRequired;
+       unsigned int ReorderingBytes;
+       unsigned int TotalSlots;
+       unsigned int NumberOfDPPDSC;
+       unsigned int NumberOfDPPNoDSC;
+       unsigned int NextPrefetchModeState;
+       bool MPCCombineMethodAsNeededForPStateChangeAndVoltage;
+       bool MPCCombineMethodAsPossible;
+       bool FullFrameMALLPStateMethod;
+       bool SubViewportMALLPStateMethod;
+       bool PhantomPipeMALLPStateMethod;
+       bool NoChroma;
+       bool TotalAvailablePipesSupportNoDSC;
+       bool TotalAvailablePipesSupportDSC;
+       enum odm_combine_mode ODMModeNoDSC;
+       enum odm_combine_mode ODMModeDSC;
+       double RequiredDISPCLKPerSurfaceNoDSC;
+       double RequiredDISPCLKPerSurfaceDSC;
+       double BWOfNonCombinedSurfaceOfMaximumBandwidth;
+       double VMDataOnlyReturnBWPerState;
+       double HostVMInefficiencyFactor;
  };
struct dummy_vars {

Reply via email to