drm/amd/display: dml: move some variables to heap
[Why&How]
To reduce stack usage, move some variables into heap in the DML function
dml32_ModeSupportAndSystemConfigurationFull()
Fixes: dda4fb85e4 ("drm/amd/display: DML changes for DCN32/321")
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
1f474c8742
commit
d6aa8424bc
@@ -1675,9 +1675,6 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
bool FullFrameMALLPStateMethod;
|
||||
bool SubViewportMALLPStateMethod;
|
||||
bool PhantomPipeMALLPStateMethod;
|
||||
double MaxTotalVActiveRDBandwidth;
|
||||
double DSTYAfterScaler[DC__NUM_DPP__MAX];
|
||||
double DSTXAfterScaler[DC__NUM_DPP__MAX];
|
||||
unsigned int MaximumMPCCombine;
|
||||
|
||||
#ifdef __DML_VBA_DEBUG__
|
||||
@@ -3095,10 +3092,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
}
|
||||
|
||||
//Vertical Active BW support check
|
||||
MaxTotalVActiveRDBandwidth = 0;
|
||||
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaxTotalVActiveRDBandwidth = 0;
|
||||
|
||||
for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
|
||||
MaxTotalVActiveRDBandwidth = MaxTotalVActiveRDBandwidth + mode_lib->vba.ReadBandwidthLuma[k]
|
||||
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaxTotalVActiveRDBandwidth += mode_lib->vba.ReadBandwidthLuma[k]
|
||||
+ mode_lib->vba.ReadBandwidthChroma[k];
|
||||
}
|
||||
|
||||
@@ -3115,7 +3112,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
* mode_lib->vba.DRAMChannelWidth
|
||||
* (i < 2 ? mode_lib->vba.MaxAveragePercentOfIdealDRAMBWDisplayCanUseInNormalSystemOperationSTROBE : mode_lib->vba.MaxAveragePercentOfIdealDRAMBWDisplayCanUseInNormalSystemOperation) / 100);
|
||||
|
||||
if (MaxTotalVActiveRDBandwidth
|
||||
if (v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaxTotalVActiveRDBandwidth
|
||||
<= mode_lib->vba.MaxTotalVerticalActiveAvailableBandwidth[i][j]) {
|
||||
mode_lib->vba.TotalVerticalActiveBandwidthSupport[i][j] = true;
|
||||
} else {
|
||||
@@ -3281,8 +3278,8 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
mode_lib->vba.SwathHeightCThisState[k], mode_lib->vba.TWait,
|
||||
|
||||
/* Output */
|
||||
&DSTXAfterScaler[k],
|
||||
&DSTYAfterScaler[k],
|
||||
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.DSTXAfterScaler[k],
|
||||
&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.DSTYAfterScaler[k],
|
||||
&mode_lib->vba.LineTimesForPrefetch[k],
|
||||
&mode_lib->vba.PrefetchBW[k],
|
||||
&mode_lib->vba.LinesForMetaPTE[k],
|
||||
@@ -3579,8 +3576,8 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
mode_lib->vba.NoOfDPPThisState,
|
||||
mode_lib->vba.BytePerPixelInDETY,
|
||||
mode_lib->vba.BytePerPixelInDETC,
|
||||
DSTXAfterScaler,
|
||||
DSTYAfterScaler,
|
||||
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.DSTXAfterScaler,
|
||||
v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.DSTYAfterScaler,
|
||||
mode_lib->vba.WritebackEnable,
|
||||
mode_lib->vba.WritebackPixelFormat,
|
||||
mode_lib->vba.WritebackDestinationWidth,
|
||||
|
||||
@@ -204,6 +204,9 @@ struct dml32_ModeSupportAndSystemConfigurationFull {
|
||||
SOCParametersList mSOCParameters;
|
||||
unsigned int MaximumSwathWidthSupportLuma;
|
||||
unsigned int MaximumSwathWidthSupportChroma;
|
||||
double DSTYAfterScaler[DC__NUM_DPP__MAX];
|
||||
double DSTXAfterScaler[DC__NUM_DPP__MAX];
|
||||
double MaxTotalVActiveRDBandwidth;
|
||||
};
|
||||
|
||||
struct dummy_vars {
|
||||
|
||||
Reference in New Issue
Block a user