Commit bac4b41d authored by Alex Deucher's avatar Alex Deucher

drm/amd/display: reduce stack for dml32_CalculateSwathAndDETConfiguration

Move stack variables to dummy structure.
Reviewed-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
parent 7acc487a
...@@ -221,6 +221,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman ...@@ -221,6 +221,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
// VBA_DELTA // VBA_DELTA
// Calculate DET size, swath height // Calculate DET size, swath height
dml32_CalculateSwathAndDETConfiguration( dml32_CalculateSwathAndDETConfiguration(
&v->dummy_vars.dml32_CalculateSwathAndDETConfiguration,
mode_lib->vba.DETSizeOverride, mode_lib->vba.DETSizeOverride,
mode_lib->vba.UsesMALLForPStateChange, mode_lib->vba.UsesMALLForPStateChange,
mode_lib->vba.ConfigReturnBufferSizeInKByte, mode_lib->vba.ConfigReturnBufferSizeInKByte,
...@@ -1878,6 +1879,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l ...@@ -1878,6 +1879,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
} }
dml32_CalculateSwathAndDETConfiguration( dml32_CalculateSwathAndDETConfiguration(
&v->dummy_vars.dml32_CalculateSwathAndDETConfiguration,
mode_lib->vba.DETSizeOverride, mode_lib->vba.DETSizeOverride,
mode_lib->vba.UsesMALLForPStateChange, mode_lib->vba.UsesMALLForPStateChange,
mode_lib->vba.ConfigReturnBufferSizeInKByte, mode_lib->vba.ConfigReturnBufferSizeInKByte,
...@@ -2474,6 +2476,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l ...@@ -2474,6 +2476,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
} }
dml32_CalculateSwathAndDETConfiguration( dml32_CalculateSwathAndDETConfiguration(
&v->dummy_vars.dml32_CalculateSwathAndDETConfiguration,
mode_lib->vba.DETSizeOverride, mode_lib->vba.DETSizeOverride,
mode_lib->vba.UsesMALLForPStateChange, mode_lib->vba.UsesMALLForPStateChange,
mode_lib->vba.ConfigReturnBufferSizeInKByte, mode_lib->vba.ConfigReturnBufferSizeInKByte,
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "os_types.h" #include "os_types.h"
#include "../dc_features.h" #include "../dc_features.h"
#include "../display_mode_structs.h" #include "../display_mode_structs.h"
#include "dml/display_mode_vba.h"
unsigned int dml32_dscceComputeDelay( unsigned int dml32_dscceComputeDelay(
unsigned int bpc, unsigned int bpc,
...@@ -81,6 +82,7 @@ void dml32_CalculateSinglePipeDPPCLKAndSCLThroughput( ...@@ -81,6 +82,7 @@ void dml32_CalculateSinglePipeDPPCLKAndSCLThroughput(
double *DPPCLKUsingSingleDPP); double *DPPCLKUsingSingleDPP);
void dml32_CalculateSwathAndDETConfiguration( void dml32_CalculateSwathAndDETConfiguration(
struct dml32_CalculateSwathAndDETConfiguration *st_vars,
unsigned int DETSizeOverride[], unsigned int DETSizeOverride[],
enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[], enum dm_use_mall_for_pstate_change_mode UseMALLForPStateChange[],
unsigned int ConfigReturnBufferSizeInKByte, unsigned int ConfigReturnBufferSizeInKByte,
......
...@@ -182,6 +182,20 @@ void Calculate256BBlockSizes( ...@@ -182,6 +182,20 @@ void Calculate256BBlockSizes(
unsigned int *BlockWidth256BytesY, unsigned int *BlockWidth256BytesY,
unsigned int *BlockWidth256BytesC); unsigned int *BlockWidth256BytesC);
struct dml32_CalculateSwathAndDETConfiguration {
unsigned int MaximumSwathHeightY[DC__NUM_DPP__MAX];
unsigned int MaximumSwathHeightC[DC__NUM_DPP__MAX];
unsigned int RoundedUpMaxSwathSizeBytesY[DC__NUM_DPP__MAX];
unsigned int RoundedUpMaxSwathSizeBytesC[DC__NUM_DPP__MAX];
unsigned int RoundedUpSwathSizeBytesY;
unsigned int RoundedUpSwathSizeBytesC;
double SwathWidthdoubleDPP[DC__NUM_DPP__MAX];
double SwathWidthdoubleDPPChroma[DC__NUM_DPP__MAX];
unsigned int TotalActiveDPP;
bool NoChromaSurfaces;
unsigned int DETBufferSizeInKByteForSwathCalculation;
};
struct DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation { struct DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation {
unsigned int dummy_integer_array[2][DC__NUM_DPP__MAX]; unsigned int dummy_integer_array[2][DC__NUM_DPP__MAX];
double dummy_single_array[2][DC__NUM_DPP__MAX]; double dummy_single_array[2][DC__NUM_DPP__MAX];
...@@ -253,6 +267,7 @@ struct dummy_vars { ...@@ -253,6 +267,7 @@ struct dummy_vars {
struct DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation struct DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation
DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation; DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation;
struct dml32_ModeSupportAndSystemConfigurationFull dml32_ModeSupportAndSystemConfigurationFull; struct dml32_ModeSupportAndSystemConfigurationFull dml32_ModeSupportAndSystemConfigurationFull;
struct dml32_CalculateSwathAndDETConfiguration dml32_CalculateSwathAndDETConfiguration;
}; };
struct vba_vars_st { struct vba_vars_st {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment