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
      | ^

Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
Cc: Stephen Rothwell <s...@canb.auug.org.au>
---
 .../dc/dml/dcn32/display_mode_vba_32.c        | 214 ++++++++----------
 .../drm/amd/display/dc/dml/display_mode_vba.h |   3 +
 2 files changed, 100 insertions(+), 117 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..441311cb9a86 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,18 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
        int iteration;
        double MaxTotalRDBandwidth;
        unsigned int NextPrefetchMode;
+       double MaxTotalRDBandwidthNoUrgentBurst = 0.0;
+       bool DestinationLineTimesForPrefetchLessThan2 = false;
+       bool VRatioPrefetchMoreThanMax = false;
+       double dummy_unit_vector[DC__NUM_DPP__MAX];
+       double TWait;
+       double dummy_single[2];
+       bool dummy_boolean[1];
+       enum clock_change_support dummy_dramchange_support;
+       enum dm_fclock_change_support dummy_fclkchange_support;
+       bool dummy_USRRetrainingSupport;
+       double TotalWRBandwidth = 0;
+       double WRBandwidth = 0;
 
 #ifdef __DML_VBA_DEBUG__
        dml_print("DML::%s: --- START ---\n", __func__);
@@ -702,11 +714,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 +722,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 +903,6 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 #endif
 
                {
-                       double dummy_single[1];
-
                        dml32_CalculatePrefetchBandwithSupport(
                                        mode_lib->vba.NumberOfActiveSurfaces,
                                        mode_lib->vba.ReturnBW,
@@ -931,8 +934,6 @@ static void 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        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,
@@ -1039,8 +1040,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,
@@ -1149,22 +1148,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 +1176,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,
@@ -1486,9 +1480,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 +1573,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,
@@ -1669,20 +1658,33 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        unsigned int TotalNumberOfActiveDP2p0;
        unsigned int TotalNumberOfActiveDP2p0Outputs;
        unsigned int TotalDSCUnitsRequired;
-       unsigned int m;
        unsigned int ReorderingBytes;
        bool FullFrameMALLPStateMethod;
        bool SubViewportMALLPStateMethod;
        bool PhantomPipeMALLPStateMethod;
        unsigned int MaximumMPCCombine;
+       bool NoChroma;
+       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;
+       double BWOfNonCombinedSurfaceOfMaximumBandwidth = 0;
+       unsigned int NumberOfNonCombinedSurfaceOfMaximumBandwidth = 0;
+       unsigned int TotalSlots;
+       double VMDataOnlyReturnBWPerState;
+       double HostVMInefficiencyFactor;
+       unsigned int NextPrefetchModeState;
+       struct vba_vars_st *v = &mode_lib->vba;
+       int i, j;
+       unsigned int k, m;
 
 #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*/
 
@@ -1991,21 +1993,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        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;
 
                        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],
@@ -2147,8 +2138,6 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        
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;
 
                                        for (k = 0; k < 
mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                                                if 
(mode_lib->vba.MPCCombineUse[k]
@@ -2264,8 +2253,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) {
@@ -2474,8 +2461,6 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        /*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],
@@ -3120,9 +3105,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];
 
@@ -3191,8 +3173,6 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                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 +3182,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.myPipe,
                                                        
mode_lib->vba.DSCDelayPerState[i][k],
                                                        
mode_lib->vba.DPPCLKDelaySubtotal +
                                                                
mode_lib->vba.DPPCLKDelayCNVCFormater,
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..b3905a55772b 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,8 @@ struct 
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCal
        unsigned int ReorderBytes;
        unsigned int VMDataOnlyReturnBW;
        double HostVMInefficiencyFactor;
+       DmlPipe myPipe;
+       SOCParametersList mmSOCParameters;
 };
 
 struct dml32_ModeSupportAndSystemConfigurationFull {
@@ -212,6 +214,7 @@ struct dml32_ModeSupportAndSystemConfigurationFull {
        double DSTXAfterScaler[DC__NUM_DPP__MAX];
        double MaxTotalVActiveRDBandwidth;
        bool dummy_boolean_array[2][DC__NUM_DPP__MAX];
+       DmlPipe myPipe;
 };
 
 struct dummy_vars {
-- 
2.35.3

Reply via email to