From: Mario Limonciello <[email protected]>

Iterators of `NumberOfActiveSurfaces` start at zero but since the loops
have a condition of `<= NumberOfActiveSurfaces - 1`. This will mean that
the last surface isn't checked.

Adjust the condition to go all the way to `NumberOfActiveSurfaces`.

Signed-off-by: Mario Limonciello <[email protected]>
---
 .../dc/dml/dcn32/display_mode_vba_32.c        | 68 +++++++++----------
 1 file changed, 34 insertions(+), 34 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 0782a34689a00..a8f6f82a824d4 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
@@ -1745,7 +1745,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        /*Scale Ratio, taps Support Check*/
 
        mode_lib->vba.ScaleRatioAndTapsSupport = true;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.ScalerEnabled[k] == false
                                && ((mode_lib->vba.SourcePixelFormat[k] != 
dm_444_64
                                                && 
mode_lib->vba.SourcePixelFormat[k] != dm_444_32
@@ -1791,7 +1791,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        /*Source Format, Pixel Format and Scan Support Check*/
        mode_lib->vba.SourceFormatPixelAndScanSupport = true;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.SurfaceTiling[k] == dm_sw_linear
                        && (!(!IsVertical((enum dm_rotation_angle) 
mode_lib->vba.SourceScan[k]))
                                || mode_lib->vba.DCCEnable[k] == true)) {
@@ -1799,7 +1799,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                }
        }
 
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                dml32_CalculateBytePerPixelAndBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
@@ -1820,7 +1820,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        }
 
        /*Bandwidth Support Check*/
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (!IsVertical(mode_lib->vba.SourceRotation[k])) {
                        v->SwathWidthYSingleDPP[k] = 
mode_lib->vba.ViewportWidth[k];
                        v->SwathWidthCSingleDPP[k] = 
mode_lib->vba.ViewportWidthChroma[k];
@@ -1829,14 +1829,14 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                        v->SwathWidthCSingleDPP[k] = 
mode_lib->vba.ViewportHeightChroma[k];
                }
        }
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                v->ReadBandwidthLuma[k] = v->SwathWidthYSingleDPP[k] * 
dml_ceil(v->BytePerPixelInDETY[k], 1.0)
                                / (mode_lib->vba.HTotal[k] / 
mode_lib->vba.PixelClock[k]) * mode_lib->vba.VRatio[k];
                v->ReadBandwidthChroma[k] = v->SwathWidthYSingleDPP[k] / 2 * 
dml_ceil(v->BytePerPixelInDETC[k], 2.0)
                                / (mode_lib->vba.HTotal[k] / 
mode_lib->vba.PixelClock[k]) * mode_lib->vba.VRatio[k]
                                / 2.0;
        }
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.WritebackEnable[k] == true && 
mode_lib->vba.WritebackPixelFormat[k] == dm_444_64) {
                        v->WriteBandwidth[k] = 
mode_lib->vba.WritebackDestinationWidth[k]
                                        * 
mode_lib->vba.WritebackDestinationHeight[k]
@@ -1855,7 +1855,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        /*Writeback Latency support check*/
 
        mode_lib->vba.WritebackLatencySupport = true;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.WritebackEnable[k] == true
                                && (v->WriteBandwidth[k]
                                                > 
mode_lib->vba.WritebackInterfaceBufferSize * 1024
@@ -1867,7 +1867,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        /*Writeback Mode Support Check*/
        mode_lib->vba.EnoughWritebackUnits = true;
        mode_lib->vba.TotalNumberOfActiveWriteback = 0;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.WritebackEnable[k] == true)
                        mode_lib->vba.TotalNumberOfActiveWriteback = 
mode_lib->vba.TotalNumberOfActiveWriteback + 1;
        }
@@ -1877,7 +1877,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        /*Writeback Scale Ratio and Taps Support Check*/
        mode_lib->vba.WritebackScaleRatioAndTapsSupport = true;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.WritebackEnable[k] == true) {
                        if (mode_lib->vba.WritebackHRatio[k] > 
mode_lib->vba.WritebackMaxHSCLRatio
                                        || mode_lib->vba.WritebackVRatio[k] > 
mode_lib->vba.WritebackMaxVSCLRatio
@@ -1898,7 +1898,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                }
        }
 
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                
dml32_CalculateSinglePipeDPPCLKAndSCLThroughput(mode_lib->vba.HRatio[k], 
mode_lib->vba.HRatioChroma[k],
                                mode_lib->vba.VRatio[k], 
mode_lib->vba.VRatioChroma[k],
                                mode_lib->vba.MaxDCHUBToPSCLThroughput, 
mode_lib->vba.MaxPSCLToLBThroughput,
@@ -1910,7 +1910,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                &mode_lib->vba.MinDPPCLKUsingSingleDPP[k]);
        }
 
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
 
                if (mode_lib->vba.SurfaceTiling[k] == dm_sw_linear) {
                        
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportLuma
 = 8192;
@@ -2298,7 +2298,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        /* Display IO and DSC Support Check */
        mode_lib->vba.NonsupportedDSCInputBPC = false;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (!(mode_lib->vba.DSCInputBitPerComponent[k] == 12.0
                                || mode_lib->vba.DSCInputBitPerComponent[k] == 
10.0
                                || mode_lib->vba.DSCInputBitPerComponent[k] == 
8.0)
@@ -2447,7 +2447,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        for (i = start_state; i < v->soc.num_states; i++) {
                mode_lib->vba.DSCCLKRequiredMoreThanSupported[i] = false;
-               for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) 
{
+               for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                        if (mode_lib->vba.BlendingAndTiming[k] == k) {
                                if (mode_lib->vba.Output[k] == dm_dp || 
mode_lib->vba.Output[k] == dm_dp2p0
                                                || mode_lib->vba.Output[k] == 
dm_edp) {
@@ -2529,9 +2529,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                        mode_lib->vba.ip.dsc_delay_factor_wa);
                }
 
-               for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) 
{
-                       for (m = 0; m <= mode_lib->vba.NumberOfActiveSurfaces - 
1; m++) {
-                               for (j = 0; j <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; j++) {
+               for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
+                       for (m = 0; m <= mode_lib->vba.NumberOfActiveSurfaces; 
m++) {
+                               for (j = 0; j <= 
mode_lib->vba.NumberOfActiveSurfaces; j++) {
                                        if (mode_lib->vba.BlendingAndTiming[k] 
== m &&
                                                        
mode_lib->vba.RequiresDSC[i][m] == true) {
                                                
mode_lib->vba.DSCDelayPerState[i][k] =
@@ -2684,7 +2684,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        for (i = start_state; i < v->soc.num_states; i++) {
                for (j = 0; j < 2; j++) {
-                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 
1; k++) {
+                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; 
k++) {
                                mode_lib->vba.swath_width_luma_ub_this_state[k] 
=
                                                
mode_lib->vba.swath_width_luma_ub_all_states[i][j][k];
                                
mode_lib->vba.swath_width_chroma_ub_this_state[k] =
@@ -2911,7 +2911,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        //Calculate Return BW
        for (i = start_state; i < (int) v->soc.num_states; ++i) {
                for (j = 0; j <= 1; ++j) {
-                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 
1; k++) {
+                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; 
k++) {
                                if (mode_lib->vba.BlendingAndTiming[k] == k) {
                                        if (mode_lib->vba.WritebackEnable[k] == 
true) {
                                                
mode_lib->vba.WritebackDelayTime[k] =
@@ -2929,7 +2929,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                        } else {
                                                
mode_lib->vba.WritebackDelayTime[k] = 0.0;
                                        }
-                                       for (m = 0; m <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; m++) {
+                                       for (m = 0; m <= 
mode_lib->vba.NumberOfActiveSurfaces; m++) {
                                                if 
(mode_lib->vba.BlendingAndTiming[m]
                                                                == k && 
mode_lib->vba.WritebackEnable[m] == true) {
                                                        
mode_lib->vba.WritebackDelayTime[k] =
@@ -2949,8 +2949,8 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                        }
                                }
                        }
-                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 
1; k++) {
-                               for (m = 0; m <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; m++) {
+                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; 
k++) {
+                               for (m = 0; m <= 
mode_lib->vba.NumberOfActiveSurfaces; m++) {
                                        if (mode_lib->vba.BlendingAndTiming[k] 
== m) {
                                                
mode_lib->vba.WritebackDelayTime[k] =
                                                                
mode_lib->vba.WritebackDelayTime[m];
@@ -2958,7 +2958,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                }
                        }
                        mode_lib->vba.MaxMaxVStartup[i][j] = 0;
-                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 
1; k++) {
+                       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; 
k++) {
                                mode_lib->vba.MaximumVStartup[i][j][k] = 
((mode_lib->vba.Interlace[k] &&
                                                                
!mode_lib->vba.ProgressiveToInterlaceUnitInOPP) ?
                                                                
dml_floor((mode_lib->vba.VTotal[k] -
@@ -3254,7 +3254,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                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++) {
+                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                        mode_lib->vba.TWait = 
dml32_CalculateTWait(
                                                        
mode_lib->vba.PrefetchModePerState[i][j],
                                                        
mode_lib->vba.UsesMALLForPStateChange[k],
@@ -3343,7 +3343,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.dummy_single[4]);    
    // unsigned int   *VReadyOffsetPix
                                }
 
-                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                        dml32_CalculateUrgentBurstFactor(
                                                        
mode_lib->vba.UsesMALLForPStateChange[k],
                                                        
mode_lib->vba.swath_width_luma_ub_this_state[k],
@@ -3400,7 +3400,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        
&mode_lib->vba.PrefetchSupported[i][j]);
                                }
 
-                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                        if 
(mode_lib->vba.LineTimesForPrefetch[k]
                                                        < 2.0 || 
mode_lib->vba.LinesForMetaPTE[k] >= 32.0
                                                        || 
mode_lib->vba.LinesForMetaAndDPTERow[k] >= 16.0
@@ -3416,7 +3416,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                }
 
                                mode_lib->vba.VRatioInPrefetchSupported[i][j] = 
true;
-                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+                               for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                        if (mode_lib->vba.VRatioPreY[i][j][k] > 
mode_lib->vba.MaxVRatioPre
                                                        || 
mode_lib->vba.VRatioPreC[i][j][k] > mode_lib->vba.MaxVRatioPre
                                                        || 
mode_lib->vba.NoTimeForPrefetch[i][j][k] == true) {
@@ -3452,7 +3452,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                        
mode_lib->vba.UrgentBurstFactorCursorPre);
 
                                        mode_lib->vba.TotImmediateFlipBytes = 
0.0;
-                                       for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+                                       for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                                if 
(!(mode_lib->vba.ImmediateFlipRequirement[k] ==
                                                                
dm_immediate_flip_not_required)) {
                                                        
mode_lib->vba.TotImmediateFlipBytes =
@@ -3472,7 +3472,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                }
                                        }
 
-                                       for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+                                       for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                                
dml32_CalculateFlipSchedule(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor,
                                                        
mode_lib->vba.ExtraLatency,
                                                        
mode_lib->vba.UrgLatency[i],
@@ -3533,7 +3533,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
                                                                
&mode_lib->vba.ImmediateFlipSupportedForState[i][j]); // Boolean 
*ImmediateFlipBandwidthSupport
                                        }
 
-                                       for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+                                       for (k = 0; k <= 
mode_lib->vba.NumberOfActiveSurfaces; k++) {
                                                if 
(!(mode_lib->vba.ImmediateFlipRequirement[k]
                                                                == 
dm_immediate_flip_not_required)
                                                                && 
(mode_lib->vba.ImmediateFlipSupportedForPipe[k]
@@ -3618,7 +3618,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        /*Cursor Support Check*/
        mode_lib->vba.CursorSupport = true;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.CursorWidth[k][0] > 0.0) {
                        if (mode_lib->vba.CursorBPP[k][0] == 64 && 
mode_lib->vba.Cursor64BppSupport == false)
                                mode_lib->vba.CursorSupport = false;
@@ -3627,7 +3627,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
 
        /*Valid Pitch Check*/
        mode_lib->vba.PitchSupport = true;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                mode_lib->vba.AlignedYPitch[k] = dml_ceil(
                                dml_max(mode_lib->vba.PitchY[k], 
mode_lib->vba.SurfaceWidthY[k]),
                                mode_lib->vba.MacroTileWidthY[k]);
@@ -3667,7 +3667,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        }
 
        mode_lib->vba.ViewportExceedsSurface = false;
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.ViewportWidth[k] > 
mode_lib->vba.SurfaceWidthY[k]
                                || mode_lib->vba.ViewportHeight[k] > 
mode_lib->vba.SurfaceHeightY[k]) {
                        mode_lib->vba.ViewportExceedsSurface = true;
@@ -3711,7 +3711,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        mode_lib->vba.CompressedBufferSizeInkByte =
                        
mode_lib->vba.CompressedBufferSizeInkByteAllStates[mode_lib->vba.VoltageLevel][MaximumMPCCombine];
 // Not used, informational
 
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                mode_lib->vba.MPCCombineEnable[k] =
                                
mode_lib->vba.MPCCombine[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
                mode_lib->vba.DPPPerPlane[k] = 
mode_lib->vba.NoOfDPP[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
@@ -3737,7 +3737,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct 
display_mode_lib *mode_l
        mode_lib->vba.DISPCLK = 
mode_lib->vba.RequiredDISPCLK[mode_lib->vba.VoltageLevel][MaximumMPCCombine];
        mode_lib->vba.maxMpcComb = MaximumMPCCombine;
 
-       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
+       for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces; k++) {
                if (mode_lib->vba.BlendingAndTiming[k] == k) {
                        mode_lib->vba.ODMCombineEnabled[k] =
                                        
mode_lib->vba.ODMCombineEnablePerState[mode_lib->vba.VoltageLevel][k];
-- 
2.43.0

Reply via email to