Commit 86e4863e authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amd/display: reduce stack for dml32_CalculatePrefetchSchedule



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 3c3abac6
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -757,7 +757,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
			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,
			v->ErrorResult[k] = dml32_CalculatePrefetchSchedule(
					&v->dummy_vars.dml32_CalculatePrefetchSchedule,
					v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.HostVMInefficiencyFactor,
					&v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe, v->DSCDelay[k],
					mode_lib->vba.DPPCLKDelaySubtotal + mode_lib->vba.DPPCLKDelayCNVCFormater,
					mode_lib->vba.DPPCLKDelaySCL,
@@ -3195,6 +3197,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l

					mode_lib->vba.NoTimeForPrefetch[i][j][k] =
						dml32_CalculatePrefetchSchedule(
							&v->dummy_vars.dml32_CalculatePrefetchSchedule,
							v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor,
							&v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe,
							mode_lib->vba.DSCDelayPerState[i][k],
+184 −210

File changed.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Diff line number Diff line
@@ -715,6 +715,7 @@ double dml32_CalculateExtraLatency(
		unsigned int HostVMMaxNonCachedPageTableLevels);

bool dml32_CalculatePrefetchSchedule(
		struct dml32_CalculatePrefetchSchedule *st_vars,
		double HostVMInefficiencyFactor,
		DmlPipe *myPipe,
		unsigned int DSCDelay,
+38 −0
Original line number Diff line number Diff line
@@ -247,6 +247,43 @@ struct dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport {
	unsigned int LBLatencyHidingSourceLinesC[DC__NUM_DPP__MAX];
};

struct dml32_CalculatePrefetchSchedule {
	unsigned int DPPCycles, DISPCLKCycles;
	double DSTTotalPixelsAfterScaler;
	double LineTime;
	double dst_y_prefetch_equ;
	double prefetch_bw_oto;
	double Tvm_oto;
	double Tr0_oto;
	double Tvm_oto_lines;
	double Tr0_oto_lines;
	double dst_y_prefetch_oto;
	double TimeForFetchingMetaPTE;
	double TimeForFetchingRowInVBlank;
	double LinesToRequestPrefetchPixelData;
	unsigned int HostVMDynamicLevelsTrips;
	double trip_to_mem;
	double Tvm_trips;
	double Tr0_trips;
	double Tvm_trips_rounded;
	double Tr0_trips_rounded;
	double Lsw_oto;
	double Tpre_rounded;
	double prefetch_bw_equ;
	double Tvm_equ;
	double Tr0_equ;
	double Tdmbf;
	double Tdmec;
	double Tdmsks;
	double prefetch_sw_bytes;
	double bytes_pp;
	double dep_bytes;
	unsigned int max_vratio_pre;
	double min_Lsw;
	double Tsw_est1;
	double Tsw_est3;
};

struct DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation {
	unsigned int dummy_integer_array[2][DC__NUM_DPP__MAX];
	double dummy_single_array[2][DC__NUM_DPP__MAX];
@@ -321,6 +358,7 @@ struct dummy_vars {
	struct dml32_CalculateSwathAndDETConfiguration dml32_CalculateSwathAndDETConfiguration;
	struct dml32_CalculateVMRowAndSwath dml32_CalculateVMRowAndSwath;
	struct dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport;
	struct dml32_CalculatePrefetchSchedule dml32_CalculatePrefetchSchedule;
};

struct vba_vars_st {