All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Walter Wu <walter-zh.wu@mediatek.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org,
	Nathan Chancellor <natechancellor@gmail.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:1917:13: warning: stack frame size (2296) exceeds limit (2048) in 'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation'
Date: Mon, 27 Dec 2021 22:51:36 +0800	[thread overview]
Message-ID: <202112272211.3wi11WNb-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fc74e0a40e4f9fd0468e34045b0c45bba11dcbb2
commit: 02c587733c8161355a43e6e110c2e29bd0acff72 kasan: remove redundant config option
date:   9 months ago
config: x86_64-randconfig-a004-20211227 (https://download.01.org/0day-ci/archive/20211227/202112272211.3wi11WNb-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 511726c64d3b6cca66f7c54d457d586aa3129f67)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02c587733c8161355a43e6e110c2e29bd0acff72
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 02c587733c8161355a43e6e110c2e29bd0acff72
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3052:10: warning: variable 'MaxUsedBW' set but not used [-Wunused-but-set-variable]
                   double MaxUsedBW = 0;
                          ^
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:1917:13: warning: stack frame size (2296) exceeds limit (2048) in 'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation' [-Wframe-larger-than]
   static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation(
               ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3641:6: warning: stack frame size (2840) exceeds limit (2048) in 'dml30_ModeSupportAndSystemConfigurationFull' [-Wframe-larger-than]
   void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
        ^
   3 warnings generated.


vim +/DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation +1917 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c

6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1916  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21 @1917  static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1918  		struct display_mode_lib *mode_lib)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1919  {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1920  	struct vba_vars_st *v = &mode_lib->vba;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1921  	unsigned int j, k;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1922  	long ReorderBytes = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1923  	unsigned int PrefetchMode = v->PrefetchModePerState[v->VoltageLevel][v->maxMpcComb];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1924  	double MaxTotalRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1925  	double MaxTotalRDBandwidthNoUrgentBurst = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1926  	bool DestinationLineTimesForPrefetchLessThan2 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1927  	bool VRatioPrefetchMoreThan4 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1928  	double TWait;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1929  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1930  	v->WritebackDISPCLK = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1931  	v->DISPCLKWithRamping = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1932  	v->DISPCLKWithoutRamping = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1933  	v->GlobalDPPCLK = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1934  	/* DAL custom code: need to update ReturnBW in case min dcfclk is overriden */
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1935  	v->IdealSDPPortBandwidthPerState[v->VoltageLevel][v->maxMpcComb] = dml_min3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1936  			v->ReturnBusWidth * v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1937  			v->DRAMSpeedPerState[v->VoltageLevel] * v->NumberOfChannels * v->DRAMChannelWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1938  			v->FabricClockPerState[v->VoltageLevel] * v->FabricDatapathToDCNDataReturn);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1939  	if (v->HostVMEnable != true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1940  		v->ReturnBW = v->IdealSDPPortBandwidthPerState[v->VoltageLevel][v->maxMpcComb] * v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelDataOnly / 100;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1941  	} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1942  		v->ReturnBW = v->IdealSDPPortBandwidthPerState[v->VoltageLevel][v->maxMpcComb] * v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData / 100;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1943  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1944  	/* End DAL custom code */
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1945  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1946  	// DISPCLK and DPPCLK Calculation
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1947  	//
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1948  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1949  		if (v->WritebackEnable[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1950  			v->WritebackDISPCLK = dml_max(v->WritebackDISPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1951  				dml30_CalculateWriteBackDISPCLK(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1952  						v->WritebackPixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1953  						v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1954  						v->WritebackHRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1955  						v->WritebackVRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1956  						v->WritebackHTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1957  						v->WritebackVTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1958  						v->WritebackSourceWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1959  						v->WritebackDestinationWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1960  						v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1961  						v->WritebackLineBufferSize));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1962  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1963  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1964  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1965  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1966  		if (v->HRatio[k] > 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1967  			v->PSCL_THROUGHPUT_LUMA[k] = dml_min(v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1968  				v->MaxPSCLToLBThroughput * v->HRatio[k] / dml_ceil(v->htaps[k] / 6.0, 1));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1969  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1970  			v->PSCL_THROUGHPUT_LUMA[k] = dml_min(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1971  					v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1972  					v->MaxPSCLToLBThroughput);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1973  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1974  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1975  		v->DPPCLKUsingSingleDPPLuma = v->PixelClock[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1976  			* dml_max(v->vtaps[k] / 6.0 * dml_min(1.0, v->HRatio[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1977  				dml_max(v->HRatio[k] * v->VRatio[k] / v->PSCL_THROUGHPUT_LUMA[k], 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1978  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1979  		if ((v->htaps[k] > 6 || v->vtaps[k] > 6)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1980  				&& v->DPPCLKUsingSingleDPPLuma < 2 * v->PixelClock[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1981  			v->DPPCLKUsingSingleDPPLuma = 2 * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1982  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1983  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1984  		if ((v->SourcePixelFormat[k] != dm_420_8
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1985  				&& v->SourcePixelFormat[k] != dm_420_10
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1986  				&& v->SourcePixelFormat[k] != dm_420_12
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1987  				&& v->SourcePixelFormat[k] != dm_rgbe_alpha)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1988  			v->PSCL_THROUGHPUT_CHROMA[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1989  			v->DPPCLKUsingSingleDPP[k] = v->DPPCLKUsingSingleDPPLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1990  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1991  			if (v->HRatioChroma[k] > 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1992  				v->PSCL_THROUGHPUT_CHROMA[k] = dml_min(v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1993  					v->MaxPSCLToLBThroughput * v->HRatioChroma[k] / dml_ceil(v->HTAPsChroma[k] / 6.0, 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1994  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1995  				v->PSCL_THROUGHPUT_CHROMA[k] = dml_min(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1996  						v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1997  						v->MaxPSCLToLBThroughput);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1998  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1999  			v->DPPCLKUsingSingleDPPChroma = v->PixelClock[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2000  				* dml_max3(v->VTAPsChroma[k] / 6.0 * dml_min(1.0, v->HRatioChroma[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2001  					v->HRatioChroma[k] * v->VRatioChroma[k] / v->PSCL_THROUGHPUT_CHROMA[k], 1.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2002  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2003  			if ((v->HTAPsChroma[k] > 6 || v->VTAPsChroma[k] > 6)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2004  					&& v->DPPCLKUsingSingleDPPChroma
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2005  							< 2 * v->PixelClock[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2006  				v->DPPCLKUsingSingleDPPChroma = 2
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2007  						* v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2008  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2009  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2010  			v->DPPCLKUsingSingleDPP[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2011  					v->DPPCLKUsingSingleDPPLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2012  					v->DPPCLKUsingSingleDPPChroma);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2013  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2014  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2015  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2016  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2017  		if (v->BlendingAndTiming[k] != k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2018  			continue;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2019  		if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_4to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2020  			v->DISPCLKWithRamping = dml_max(v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2021  				v->PixelClock[k] / 4 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2022  					* (1 + v->DISPCLKRampingMargin / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2023  			v->DISPCLKWithoutRamping = dml_max(v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2024  				v->PixelClock[k] / 4 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2025  		} else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2026  			v->DISPCLKWithRamping = dml_max(v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2027  				v->PixelClock[k] / 2 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2028  					* (1 + v->DISPCLKRampingMargin / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2029  			v->DISPCLKWithoutRamping = dml_max(v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2030  				v->PixelClock[k] / 2 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2031  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2032  			v->DISPCLKWithRamping = dml_max(v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2033  				v->PixelClock[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2034  									* (1 + v->DISPCLKRampingMargin / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2035  			v->DISPCLKWithoutRamping = dml_max(v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2036  				v->PixelClock[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2037  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2038  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2039  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2040  	v->DISPCLKWithRamping = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2041  			v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2042  			v->WritebackDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2043  	v->DISPCLKWithoutRamping = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2044  			v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2045  			v->WritebackDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2046  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2047  	ASSERT(v->DISPCLKDPPCLKVCOSpeed != 0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2048  	v->DISPCLKWithRampingRoundedToDFSGranularity = RoundToDFSGranularityUp(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2049  			v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2050  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2051  	v->DISPCLKWithoutRampingRoundedToDFSGranularity = RoundToDFSGranularityUp(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2052  			v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2053  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2054  	v->MaxDispclkRoundedToDFSGranularity = RoundToDFSGranularityDown(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2055  			v->soc.clock_limits[mode_lib->soc.num_states].dispclk_mhz,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2056  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2057  	if (v->DISPCLKWithoutRampingRoundedToDFSGranularity
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2058  			> v->MaxDispclkRoundedToDFSGranularity) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2059  		v->DISPCLK_calculated =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2060  				v->DISPCLKWithoutRampingRoundedToDFSGranularity;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2061  	} else if (v->DISPCLKWithRampingRoundedToDFSGranularity
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2062  			> v->MaxDispclkRoundedToDFSGranularity) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2063  		v->DISPCLK_calculated = v->MaxDispclkRoundedToDFSGranularity;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2064  	} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2065  		v->DISPCLK_calculated =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2066  				v->DISPCLKWithRampingRoundedToDFSGranularity;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2067  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2068  	v->DISPCLK = v->DISPCLK_calculated;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2069  	DTRACE("   dispclk_mhz (calculated) = %f", v->DISPCLK_calculated);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2070  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2071  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2072  		v->DPPCLK_calculated[k] = v->DPPCLKUsingSingleDPP[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2073  				/ v->DPPPerPlane[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2074  				* (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2075  		v->GlobalDPPCLK = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2076  				v->GlobalDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2077  				v->DPPCLK_calculated[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2078  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2079  	v->GlobalDPPCLK = RoundToDFSGranularityUp(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2080  			v->GlobalDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2081  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2082  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2083  		v->DPPCLK_calculated[k] = v->GlobalDPPCLK / 255
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2084  				* dml_ceil(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2085  						v->DPPCLK_calculated[k] * 255.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2086  								/ v->GlobalDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2087  						1);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2088  		DTRACE("   dppclk_mhz[%i] (calculated) = %f", k, v->DPPCLK_calculated[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2089  		v->DPPCLK[k] = v->DPPCLK_calculated[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2090  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2091  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2092  	// Urgent and B P-State/DRAM Clock Change Watermark
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2093  	DTRACE("   dcfclk_mhz         = %f", v->DCFCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2094  	DTRACE("   return_bus_bw      = %f", v->ReturnBW);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2095  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2096  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2097  		CalculateBytePerPixelAnd256BBlockSizes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2098  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2099  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2100  				&v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2101  				&v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2102  				&v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2103  				&v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2104  				&v->BlockHeight256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2105  				&v->BlockHeight256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2106  				&v->BlockWidth256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2107  				&v->BlockWidth256BytesC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2108  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2109  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2110  	CalculateSwathWidth(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2111  			false,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2112  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2113  			v->SourcePixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2114  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2115  			v->ViewportWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2116  			v->ViewportHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2117  			v->SurfaceWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2118  			v->SurfaceWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2119  			v->SurfaceHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2120  			v->SurfaceHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2121  			v->ODMCombineEnabled,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2122  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2123  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2124  			v->BlockHeight256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2125  			v->BlockHeight256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2126  			v->BlockWidth256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2127  			v->BlockWidth256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2128  			v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2129  			v->HActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2130  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2131  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2132  			v->SwathWidthSingleDPPY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2133  			v->SwathWidthSingleDPPC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2134  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2135  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2136  			v->dummyinteger3,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2137  			v->dummyinteger4,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2138  			v->swath_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2139  			v->swath_width_chroma_ub);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2140  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2141  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2142  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2143  		v->ReadBandwidthPlaneLuma[k] = v->SwathWidthSingleDPPY[k] * v->BytePerPixelY[k] / (v->HTotal[k] / v->PixelClock[k]) * v->VRatio[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2144  		v->ReadBandwidthPlaneChroma[k] = v->SwathWidthSingleDPPC[k] * v->BytePerPixelC[k] / (v->HTotal[k] / v->PixelClock[k]) * v->VRatioChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2145  		DTRACE("read_bw[%i] = %fBps", k, v->ReadBandwidthPlaneLuma[k] + v->ReadBandwidthPlaneChroma[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2146  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2147  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2148  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2149  	// DCFCLK Deep Sleep
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2150  	CalculateDCFCLKDeepSleep(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2151  			mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2152  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2153  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2154  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2155  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2156  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2157  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2158  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2159  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2160  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2161  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2162  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2163  			v->PSCL_THROUGHPUT_LUMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2164  			v->PSCL_THROUGHPUT_CHROMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2165  			v->DPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2166  			v->ReadBandwidthPlaneLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2167  			v->ReadBandwidthPlaneChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2168  			v->ReturnBusWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2169  			&v->DCFCLKDeepSleep);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2170  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2171  	// DSCCLK
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2172  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2173  		if ((v->BlendingAndTiming[k] != k) || !v->DSCEnabled[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2174  			v->DSCCLK_calculated[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2175  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2176  			if (v->OutputFormat[k] == dm_420)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2177  				v->DSCFormatFactor = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2178  			else if (v->OutputFormat[k] == dm_444)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2179  				v->DSCFormatFactor = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2180  			else if (v->OutputFormat[k] == dm_n422)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2181  				v->DSCFormatFactor = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2182  			else
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2183  				v->DSCFormatFactor = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2184  			if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_4to1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2185  				v->DSCCLK_calculated[k] = v->PixelClockBackEnd[k] / 12
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2186  					/ v->DSCFormatFactor / (1 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2187  			else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2188  				v->DSCCLK_calculated[k] = v->PixelClockBackEnd[k] / 6
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2189  					/ v->DSCFormatFactor / (1 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2190  			else
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2191  				v->DSCCLK_calculated[k] = v->PixelClockBackEnd[k] / 3
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2192  					/ v->DSCFormatFactor / (1 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2193  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2194  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2195  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2196  	// DSC Delay
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2197  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2198  		double BPP = v->OutputBppPerState[k][v->VoltageLevel];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2199  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2200  		if (v->DSCEnabled[k] && BPP != 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2201  			if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_disabled) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2202  				v->DSCDelay[k] = dscceComputeDelay(v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2203  						BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2204  						dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2205  						v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2206  						v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2207  						v->Output[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2208  					+ dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2209  			} else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2210  				v->DSCDelay[k] = 2 * dscceComputeDelay(v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2211  						BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2212  						dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2213  						v->NumberOfDSCSlices[k] / 2.0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2214  						v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2215  						v->Output[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2216  					+ dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2217  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2218  				v->DSCDelay[k] = 4 * dscceComputeDelay(v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2219  						BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2220  						dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2221  						v->NumberOfDSCSlices[k] / 4.0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2222  						v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2223  						v->Output[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2224  					+ dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2225  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2226  			v->DSCDelay[k] = v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2227  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2228  			v->DSCDelay[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2229  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2230  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2231  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2232  	for (k = 0; k < v->NumberOfActivePlanes; ++k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2233  		for (j = 0; j < v->NumberOfActivePlanes; ++j) // NumberOfPlanes
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2234  			if (j != k && v->BlendingAndTiming[k] == j
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2235  					&& v->DSCEnabled[j])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2236  				v->DSCDelay[k] = v->DSCDelay[j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2237  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2238  	// Prefetch
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2239  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2240  		unsigned int PDEAndMetaPTEBytesFrameY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2241  		unsigned int PixelPTEBytesPerRowY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2242  		unsigned int MetaRowByteY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2243  		unsigned int MetaRowByteC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2244  		unsigned int PDEAndMetaPTEBytesFrameC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2245  		unsigned int PixelPTEBytesPerRowC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2246  		bool         PTEBufferSizeNotExceededY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2247  		bool         PTEBufferSizeNotExceededC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2248  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2249  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2250  		if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12 || v->SourcePixelFormat[k] == dm_rgbe_alpha) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2251  			if ((v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) && v->SourceScan[k] != dm_vert) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2252  				v->PTEBufferSizeInRequestsForLuma = (v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma) / 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2253  				v->PTEBufferSizeInRequestsForChroma = v->PTEBufferSizeInRequestsForLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2254  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2255  				v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2256  				v->PTEBufferSizeInRequestsForChroma = v->PTEBufferSizeInRequestsChroma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2257  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2258  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2259  			PDEAndMetaPTEBytesFrameC = CalculateVMAndRowBytes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2260  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2261  					v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2262  					v->BlockHeight256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2263  					v->BlockWidth256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2264  					v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2265  					v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2266  					v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2267  					v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2268  					v->SwathWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2269  					v->ViewportHeightChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2270  					v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2271  					v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2272  					v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2273  					v->GPUVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2274  					v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2275  					v->PTEBufferSizeInRequestsForChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2276  					v->PitchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2277  					v->DCCMetaPitchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2278  					&v->MacroTileWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2279  					&MetaRowByteC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2280  					&PixelPTEBytesPerRowC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2281  					&PTEBufferSizeNotExceededC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2282  					&v->dpte_row_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2283  					&v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2284  					&v->meta_req_width_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2285  					&v->meta_req_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2286  					&v->meta_row_width_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2287  					&v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2288  					&v->dummyinteger1,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2289  					&v->dummyinteger2,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2290  					&v->PixelPTEReqWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2291  					&v->PixelPTEReqHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2292  					&v->PTERequestSizeC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2293  					&v->dpde0_bytes_per_frame_ub_c[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2294  					&v->meta_pte_bytes_per_frame_ub_c[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2295  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2296  			v->PrefetchSourceLinesC[k] = CalculatePrefetchSourceLines(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2297  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2298  					v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2299  					v->VTAPsChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2300  					v->Interlace[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2301  					v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2302  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2303  					v->ViewportYStartC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2304  					&v->VInitPreFillC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2305  					&v->MaxNumSwathC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2306  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2307  			v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2308  			v->PTEBufferSizeInRequestsForChroma = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2309  			PixelPTEBytesPerRowC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2310  			PDEAndMetaPTEBytesFrameC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2311  			MetaRowByteC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2312  			v->MaxNumSwathC[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2313  			v->PrefetchSourceLinesC[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2314  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2315  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2316  		PDEAndMetaPTEBytesFrameY = CalculateVMAndRowBytes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2317  				mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2318  				v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2319  				v->BlockHeight256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2320  				v->BlockWidth256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2321  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2322  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2323  				v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2324  				v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2325  				v->SwathWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2326  				v->ViewportHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2327  				v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2328  				v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2329  				v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2330  				v->GPUVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2331  				v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2332  				v->PTEBufferSizeInRequestsForLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2333  				v->PitchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2334  				v->DCCMetaPitchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2335  				&v->MacroTileWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2336  				&MetaRowByteY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2337  				&PixelPTEBytesPerRowY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2338  				&PTEBufferSizeNotExceededY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2339  				&v->dpte_row_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2340  				&v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2341  				&v->meta_req_width[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2342  				&v->meta_req_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2343  				&v->meta_row_width[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2344  				&v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2345  				&v->vm_group_bytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2346  				&v->dpte_group_bytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2347  				&v->PixelPTEReqWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2348  				&v->PixelPTEReqHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2349  				&v->PTERequestSizeY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2350  				&v->dpde0_bytes_per_frame_ub_l[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2351  				&v->meta_pte_bytes_per_frame_ub_l[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2352  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2353  		v->PrefetchSourceLinesY[k] = CalculatePrefetchSourceLines(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2354  				mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2355  				v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2356  				v->vtaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2357  				v->Interlace[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2358  				v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2359  				v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2360  				v->ViewportYStartY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2361  				&v->VInitPreFillY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2362  				&v->MaxNumSwathY[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2363  		v->PixelPTEBytesPerRow[k] = PixelPTEBytesPerRowY + PixelPTEBytesPerRowC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2364  		v->PDEAndMetaPTEBytesFrame[k] = PDEAndMetaPTEBytesFrameY
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2365  				+ PDEAndMetaPTEBytesFrameC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2366  		v->MetaRowByte[k] = MetaRowByteY + MetaRowByteC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2367  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2368  		CalculateRowBandwidth(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2369  				v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2370  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2371  				v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2372  				v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2373  				v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2374  				v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2375  				MetaRowByteY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2376  				MetaRowByteC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2377  				v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2378  				v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2379  				PixelPTEBytesPerRowY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2380  				PixelPTEBytesPerRowC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2381  				v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2382  				v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2383  				&v->meta_row_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2384  				&v->dpte_row_bw[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2385  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2386  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2387  	v->TotalDCCActiveDPP = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2388  	v->TotalActiveDPP = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2389  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2390  		v->TotalActiveDPP = v->TotalActiveDPP
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2391  				+ v->DPPPerPlane[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2392  		if (v->DCCEnable[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2393  			v->TotalDCCActiveDPP = v->TotalDCCActiveDPP
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2394  					+ v->DPPPerPlane[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2395  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2396  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2397  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2398  	ReorderBytes = v->NumberOfChannels * dml_max3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2399  		v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2400  		v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2401  		v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2402  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2403  	v->UrgentExtraLatency = CalculateExtraLatency(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2404  		v->RoundTripPingLatencyCycles,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2405  		ReorderBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2406  		v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2407  		v->TotalActiveDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2408  		v->PixelChunkSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2409  		v->TotalDCCActiveDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2410  		v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2411  		v->ReturnBW,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2412  		v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2413  		v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2414  		v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2415  		v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2416  		v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2417  		v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2418  		v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2419  		v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2420  		v->HostVMMaxNonCachedPageTableLevels);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2421  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2422  	v->TCalc = 24.0 / v->DCFCLKDeepSleep;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2423  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2424  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2425  		if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2426  			if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2427  				v->WritebackDelay[v->VoltageLevel][k] = v->WritebackLatency +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2428  						CalculateWriteBackDelay(v->WritebackPixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2429  									v->WritebackHRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2430  									v->WritebackVRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2431  									v->WritebackVTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2432  									v->WritebackDestinationWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2433  									v->WritebackDestinationHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2434  									v->WritebackSourceHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2435  									v->HTotal[k]) / v->DISPCLK;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2436  			} else
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2437  				v->WritebackDelay[v->VoltageLevel][k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2438  			for (j = 0; j < v->NumberOfActivePlanes; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2439  				if (v->BlendingAndTiming[j] == k
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2440  						&& v->WritebackEnable[j] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2441  					v->WritebackDelay[v->VoltageLevel][k] = dml_max(v->WritebackDelay[v->VoltageLevel][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2442  							v->WritebackLatency + CalculateWriteBackDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2443  											v->WritebackPixelFormat[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2444  											v->WritebackHRatio[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2445  											v->WritebackVRatio[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2446  											v->WritebackVTaps[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2447  											v->WritebackDestinationWidth[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2448  											v->WritebackDestinationHeight[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2449  											v->WritebackSourceHeight[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2450  											v->HTotal[k]) / v->DISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2451  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2452  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2453  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2454  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2455  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2456  	for (k = 0; k < v->NumberOfActivePlanes; ++k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2457  		for (j = 0; j < v->NumberOfActivePlanes; ++j)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2458  			if (v->BlendingAndTiming[k] == j)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2459  				v->WritebackDelay[v->VoltageLevel][k] = v->WritebackDelay[v->VoltageLevel][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2460  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2461  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2462  		v->MaxVStartupLines[k] = v->VTotal[k] - v->VActive[k] - dml_max(1.0, dml_ceil((double) v->WritebackDelay[v->VoltageLevel][k] / (v->HTotal[k] / v->PixelClock[k]), 1));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2463  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2464  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2465  	v->MaximumMaxVStartupLines = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2466  	for (k = 0; k < v->NumberOfActivePlanes; ++k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2467  		v->MaximumMaxVStartupLines = dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2468  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2469  	if (v->DRAMClockChangeLatencyOverride > 0.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2470  		v->FinalDRAMClockChangeLatency = v->DRAMClockChangeLatencyOverride;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2471  	} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2472  		v->FinalDRAMClockChangeLatency = v->DRAMClockChangeLatency;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2473  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2474  	v->UrgentLatency = CalculateUrgentLatency(v->UrgentLatencyPixelDataOnly, v->UrgentLatencyPixelMixedWithVMData, v->UrgentLatencyVMDataOnly, v->DoUrgentLatencyAdjustment, v->UrgentLatencyAdjustmentFabricClockComponent, v->UrgentLatencyAdjustmentFabricClockReference, v->FabricClock);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2475  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2476  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2477  	v->FractionOfUrgentBandwidth = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2478  	v->FractionOfUrgentBandwidthImmediateFlip = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2479  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2480  	v->VStartupLines = 13;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2481  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2482  	do {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2483  		MaxTotalRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2484  		MaxTotalRDBandwidthNoUrgentBurst = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2485  		DestinationLineTimesForPrefetchLessThan2 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2486  		VRatioPrefetchMoreThan4 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2487  		TWait = CalculateTWait(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2488  				PrefetchMode,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2489  				v->FinalDRAMClockChangeLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2490  				v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2491  				v->SREnterPlusExitTime);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2492  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2493  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2494  			Pipe myPipe = { 0 };
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2495  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2496  			myPipe.DPPCLK = v->DPPCLK[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2497  			myPipe.DISPCLK = v->DISPCLK;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2498  			myPipe.PixelClock = v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2499  			myPipe.DCFCLKDeepSleep = v->DCFCLKDeepSleep;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2500  			myPipe.DPPPerPlane = v->DPPPerPlane[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2501  			myPipe.ScalerEnabled = v->ScalerEnabled[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2502  			myPipe.SourceScan = v->SourceScan[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2503  			myPipe.BlockWidth256BytesY = v->BlockWidth256BytesY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2504  			myPipe.BlockHeight256BytesY = v->BlockHeight256BytesY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2505  			myPipe.BlockWidth256BytesC = v->BlockWidth256BytesC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2506  			myPipe.BlockHeight256BytesC = v->BlockHeight256BytesC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2507  			myPipe.InterlaceEnable = v->Interlace[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2508  			myPipe.NumberOfCursors = v->NumberOfCursors[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2509  			myPipe.VBlank = v->VTotal[k] - v->VActive[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2510  			myPipe.HTotal = v->HTotal[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2511  			myPipe.DCCEnable = v->DCCEnable[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2512  			myPipe.ODMCombineEnabled = !!v->ODMCombineEnabled[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2513  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2514  			v->ErrorResult[k] = CalculatePrefetchSchedule(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2515  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2516  					v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2517  					v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2518  					&myPipe,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2519  					v->DSCDelay[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2520  					v->DPPCLKDelaySubtotal
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2521  							+ v->DPPCLKDelayCNVCFormater,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2522  					v->DPPCLKDelaySCL,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2523  					v->DPPCLKDelaySCLLBOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2524  					v->DPPCLKDelayCNVCCursor,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2525  					v->DISPCLKDelaySubtotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2526  					(unsigned int) (v->SwathWidthY[k] / v->HRatio[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2527  					v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2528  					v->MaxInterDCNTileRepeaters,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2529  					dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2530  					v->MaxVStartupLines[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2531  					v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2532  					v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2533  					v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2534  					v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2535  					v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2536  					v->DynamicMetadataEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2537  					v->DynamicMetadataVMEnabled,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2538  					v->DynamicMetadataLinesBeforeActiveRequired[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2539  					v->DynamicMetadataTransmittedBytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2540  					v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2541  					v->UrgentExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2542  					v->TCalc,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2543  					v->PDEAndMetaPTEBytesFrame[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2544  					v->MetaRowByte[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2545  					v->PixelPTEBytesPerRow[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2546  					v->PrefetchSourceLinesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2547  					v->SwathWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2548  					v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2549  					v->VInitPreFillY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2550  					v->MaxNumSwathY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2551  					v->PrefetchSourceLinesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2552  					v->SwathWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2553  					v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2554  					v->VInitPreFillC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2555  					v->MaxNumSwathC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2556  					v->swath_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2557  					v->swath_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2558  					v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2559  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2560  					TWait,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2561  					v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2562  					&v->DSTXAfterScaler[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2563  					&v->DSTYAfterScaler[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2564  					&v->DestinationLinesForPrefetch[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2565  					&v->PrefetchBandwidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2566  					&v->DestinationLinesToRequestVMInVBlank[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2567  					&v->DestinationLinesToRequestRowInVBlank[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2568  					&v->VRatioPrefetchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2569  					&v->VRatioPrefetchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2570  					&v->RequiredPrefetchPixDataBWLuma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2571  					&v->RequiredPrefetchPixDataBWChroma[k],
eaa483642f63cf Dmytro Laktyushkin 2020-06-15  2572  					&v->NotEnoughTimeForDynamicMetadata[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2573  					&v->Tno_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2574  					&v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2575  					&v->Tdmdl_vm[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2576  					&v->Tdmdl[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2577  					&v->VUpdateOffsetPix[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2578  					&v->VUpdateWidthPix[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2579  					&v->VReadyOffsetPix[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2580  			if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2581  				double TotalRepeaterDelayTime = v->MaxInterDCNTileRepeaters * (2 / v->DPPCLK[k] + 3 / v->DISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2582  				v->VUpdateWidthPix[k] = (14 / v->DCFCLKDeepSleep + 12 / v->DPPCLK[k] + TotalRepeaterDelayTime) * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2583  				v->VReadyOffsetPix[k] = dml_max(150.0 / v->DPPCLK[k], TotalRepeaterDelayTime + 20 / v->DCFCLKDeepSleep + 10 / v->DPPCLK[k]) * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2584  				v->VUpdateOffsetPix[k] = dml_ceil(v->HTotal[k] / 4.0, 1);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2585  				v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2586  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2587  				int x = v->BlendingAndTiming[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2588  				double TotalRepeaterDelayTime = v->MaxInterDCNTileRepeaters * (2 / v->DPPCLK[k] + 3 / v->DISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2589  				v->VUpdateWidthPix[k] = (14 / v->DCFCLKDeepSleep + 12 / v->DPPCLK[k] + TotalRepeaterDelayTime) * v->PixelClock[x];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2590  				v->VReadyOffsetPix[k] = dml_max(150.0 / v->DPPCLK[k], TotalRepeaterDelayTime + 20 / v->DCFCLKDeepSleep + 10 / v->DPPCLK[k]) * v->PixelClock[x];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2591  				v->VUpdateOffsetPix[k] = dml_ceil(v->HTotal[x] / 4.0, 1);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2592  				if (!v->MaxVStartupLines[x])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2593  					v->MaxVStartupLines[x] = v->MaxVStartupLines[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2594  				v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[x]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2595  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2596  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2597  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2598  		v->NotEnoughUrgentLatencyHiding = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2599  		v->NotEnoughUrgentLatencyHidingPre = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2600  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2601  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2602  			v->cursor_bw[k] = v->NumberOfCursors[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2603  					* v->CursorWidth[k][0] * v->CursorBPP[k][0]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2604  					/ 8.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2605  					/ (v->HTotal[k] / v->PixelClock[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2606  					* v->VRatio[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2607  			v->cursor_bw_pre[k] = v->NumberOfCursors[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2608  					* v->CursorWidth[k][0] * v->CursorBPP[k][0]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2609  					/ 8.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2610  					/ (v->HTotal[k] / v->PixelClock[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2611  					* v->VRatioPrefetchY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2612  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2613  			CalculateUrgentBurstFactor(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2614  					v->swath_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2615  					v->swath_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2616  					v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2617  					v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2618  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2619  					v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2620  					v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2621  					v->CursorBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2622  					v->CursorWidth[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2623  					v->CursorBPP[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2624  					v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2625  					v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2626  					v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2627  					v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2628  					v->DETBufferSizeY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2629  					v->DETBufferSizeC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2630  					&v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2631  					&v->UrgentBurstFactorLuma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2632  					&v->UrgentBurstFactorChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2633  					&v->NoUrgentLatencyHiding[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2634  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2635  			CalculateUrgentBurstFactor(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2636  					v->swath_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2637  					v->swath_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2638  					v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2639  					v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2640  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2641  					v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2642  					v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2643  					v->CursorBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2644  					v->CursorWidth[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2645  					v->CursorBPP[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2646  					v->VRatioPrefetchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2647  					v->VRatioPrefetchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2648  					v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2649  					v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2650  					v->DETBufferSizeY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2651  					v->DETBufferSizeC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2652  					&v->UrgentBurstFactorCursorPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2653  					&v->UrgentBurstFactorLumaPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2654  					&v->UrgentBurstFactorChromaPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2655  					&v->NoUrgentLatencyHidingPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2656  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2657  			MaxTotalRDBandwidth = MaxTotalRDBandwidth +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2658  				dml_max3(v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2659  					v->ReadBandwidthPlaneLuma[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2660  					v->UrgentBurstFactorLuma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2661  					v->ReadBandwidthPlaneChroma[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2662  					v->UrgentBurstFactorChroma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2663  					v->cursor_bw[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2664  					v->UrgentBurstFactorCursor[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2665  					v->DPPPerPlane[k] * (v->meta_row_bw[k] + v->dpte_row_bw[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2666  					v->DPPPerPlane[k] * (v->RequiredPrefetchPixDataBWLuma[k] * v->UrgentBurstFactorLumaPre[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2667  						v->RequiredPrefetchPixDataBWChroma[k] * v->UrgentBurstFactorChromaPre[k]) + v->cursor_bw_pre[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2668  					v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2669  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2670  			MaxTotalRDBandwidthNoUrgentBurst = MaxTotalRDBandwidthNoUrgentBurst +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2671  				dml_max3(v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2672  					v->ReadBandwidthPlaneLuma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2673  					v->ReadBandwidthPlaneChroma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2674  					v->cursor_bw[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2675  					v->DPPPerPlane[k] * (v->meta_row_bw[k] + v->dpte_row_bw[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2676  					v->DPPPerPlane[k] * (v->RequiredPrefetchPixDataBWLuma[k] + v->RequiredPrefetchPixDataBWChroma[k]) + v->cursor_bw_pre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2677  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2678  			if (v->DestinationLinesForPrefetch[k] < 2)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2679  				DestinationLineTimesForPrefetchLessThan2 = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2680  			if (v->VRatioPrefetchY[k] > 4 || v->VRatioPrefetchC[k] > 4)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2681  				VRatioPrefetchMoreThan4 = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2682  			if (v->NoUrgentLatencyHiding[k] == true)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2683  				v->NotEnoughUrgentLatencyHiding = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2684  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2685  			if (v->NoUrgentLatencyHidingPre[k] == true)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2686  				v->NotEnoughUrgentLatencyHidingPre = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2687  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2688  		v->FractionOfUrgentBandwidth = MaxTotalRDBandwidthNoUrgentBurst / v->ReturnBW;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2689  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2690  
eaa483642f63cf Dmytro Laktyushkin 2020-06-15  2691  		if (MaxTotalRDBandwidth <= v->ReturnBW && v->NotEnoughUrgentLatencyHiding == 0 && v->NotEnoughUrgentLatencyHidingPre == 0 && !VRatioPrefetchMoreThan4
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2692  				&& !DestinationLineTimesForPrefetchLessThan2)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2693  			v->PrefetchModeSupported = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2694  		else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2695  			v->PrefetchModeSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2696  			dml_print("DML: CalculatePrefetchSchedule ***failed***. Bandwidth violation. Results are NOT valid\n");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2697  			dml_print("DML: MaxTotalRDBandwidth:%f AvailReturnBandwidth:%f\n", MaxTotalRDBandwidth, v->ReturnBW);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2698  			dml_print("DML: VRatioPrefetch %s more than 4\n", (VRatioPrefetchMoreThan4) ? "is" : "is not");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2699  			dml_print("DML: DestinationLines for Prefetch %s less than 2\n", (DestinationLineTimesForPrefetchLessThan2) ? "is" : "is not");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2700  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2701  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2702  		if (v->PrefetchModeSupported == true && v->ImmediateFlipSupport == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2703  			v->BandwidthAvailableForImmediateFlip = v->ReturnBW;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2704  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2705  				v->BandwidthAvailableForImmediateFlip =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2706  						v->BandwidthAvailableForImmediateFlip
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2707  								- dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2708  										v->ReadBandwidthPlaneLuma[k] * v->UrgentBurstFactorLuma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2709  												+ v->ReadBandwidthPlaneChroma[k] * v->UrgentBurstFactorChroma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2710  												+ v->cursor_bw[k] * v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2711  										v->DPPPerPlane[k] * (v->RequiredPrefetchPixDataBWLuma[k] * v->UrgentBurstFactorLumaPre[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2712  										v->RequiredPrefetchPixDataBWChroma[k] * v->UrgentBurstFactorChromaPre[k]) +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2713  										v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2714  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2715  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2716  			v->TotImmediateFlipBytes = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2717  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2718  				v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2719  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2720  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2721  				CalculateFlipSchedule(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2722  						mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2723  						v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2724  						v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2725  						v->UrgentExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2726  						v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2727  						v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2728  						v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2729  						v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2730  						v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2731  						v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2732  						v->PDEAndMetaPTEBytesFrame[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2733  						v->MetaRowByte[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2734  						v->PixelPTEBytesPerRow[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2735  						v->BandwidthAvailableForImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2736  						v->TotImmediateFlipBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2737  						v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2738  						v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2739  						v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2740  						v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2741  						v->Tno_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2742  						v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2743  						v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2744  						v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2745  						v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2746  						v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2747  						&v->DestinationLinesToRequestVMInImmediateFlip[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2748  						&v->DestinationLinesToRequestRowInImmediateFlip[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2749  						&v->final_flip_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2750  						&v->ImmediateFlipSupportedForPipe[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2751  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2752  			v->total_dcn_read_bw_with_flip = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2753  			v->total_dcn_read_bw_with_flip_no_urgent_burst = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2754  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2755  				v->total_dcn_read_bw_with_flip = v->total_dcn_read_bw_with_flip + dml_max3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2756  					v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2757  					v->DPPPerPlane[k] * v->final_flip_bw[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2758  					v->ReadBandwidthLuma[k] * v->UrgentBurstFactorLuma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2759  					v->ReadBandwidthChroma[k] * v->UrgentBurstFactorChroma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2760  					v->cursor_bw[k] * v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2761  					v->DPPPerPlane[k] * (v->final_flip_bw[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2762  					v->RequiredPrefetchPixDataBWLuma[k] * v->UrgentBurstFactorLumaPre[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2763  					v->RequiredPrefetchPixDataBWChroma[k] * v->UrgentBurstFactorChromaPre[k]) +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2764  					v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2765  				v->total_dcn_read_bw_with_flip_no_urgent_burst =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2766  					v->total_dcn_read_bw_with_flip_no_urgent_burst +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2767  						dml_max3(v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2768  							v->DPPPerPlane[k] * v->final_flip_bw[k] + v->ReadBandwidthPlaneLuma[k] + v->ReadBandwidthPlaneChroma[k] + v->cursor_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2769  							v->DPPPerPlane[k] * (v->final_flip_bw[k] + v->RequiredPrefetchPixDataBWLuma[k] + v->RequiredPrefetchPixDataBWChroma[k]) + v->cursor_bw_pre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2770  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2771  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2772  			v->FractionOfUrgentBandwidthImmediateFlip = v->total_dcn_read_bw_with_flip_no_urgent_burst / v->ReturnBW;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2773  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2774  			v->ImmediateFlipSupported = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2775  			if (v->total_dcn_read_bw_with_flip > v->ReturnBW) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2776  				v->ImmediateFlipSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2777  				v->total_dcn_read_bw_with_flip = MaxTotalRDBandwidth;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2778  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2779  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2780  				if (v->ImmediateFlipSupportedForPipe[k] == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2781  					v->ImmediateFlipSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2782  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2783  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2784  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2785  			v->ImmediateFlipSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2786  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2787  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2788  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
eaa483642f63cf Dmytro Laktyushkin 2020-06-15  2789  			if (v->ErrorResult[k] || v->NotEnoughTimeForDynamicMetadata[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2790  				v->PrefetchModeSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2791  				dml_print("DML: CalculatePrefetchSchedule ***failed***. Prefetch schedule violation. Results are NOT valid\n");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2792  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2793  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2794  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2795  		v->VStartupLines = v->VStartupLines + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2796  		v->PrefetchAndImmediateFlipSupported = (v->PrefetchModeSupported == true && ((!v->ImmediateFlipSupport && !v->HostVMEnable && v->ImmediateFlipRequirement != dm_immediate_flip_required) || v->ImmediateFlipSupported)) ? true : false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2797  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2798  	} while (!v->PrefetchModeSupported && v->VStartupLines <= v->MaximumMaxVStartupLines);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2799  	ASSERT(v->PrefetchModeSupported);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2800  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2801  	//Watermarks and NB P-State/DRAM Clock Change Support
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2802  	{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2803  		enum clock_change_support   DRAMClockChangeSupport = 0; // dummy
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2804  		CalculateWatermarksAndDRAMSpeedChangeSupport(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2805  			mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2806  			PrefetchMode,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2807  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2808  			v->MaxLineBufferLines,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2809  			v->LineBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2810  			v->DPPOutputBufferPixels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2811  			v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2812  			v->WritebackInterfaceBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2813  			v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2814  			v->ReturnBW,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2815  			v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2816  			v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2817  			v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2818  			v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2819  			v->UrgentExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2820  			v->WritebackLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2821  			v->WritebackChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2822  			v->SOCCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2823  			v->FinalDRAMClockChangeLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2824  			v->SRExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2825  			v->SREnterPlusExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2826  			v->DCFCLKDeepSleep,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2827  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2828  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2829  			v->DPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2830  			v->DETBufferSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2831  			v->DETBufferSizeC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2832  			v->SwathHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2833  			v->SwathHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2834  			v->LBBitPerPixel,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2835  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2836  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2837  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2838  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2839  			v->vtaps,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2840  			v->VTAPsChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2841  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2842  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2843  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2844  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2845  			v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2846  			v->BytePerPixelDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2847  			v->BytePerPixelDETC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2848  			v->DSTXAfterScaler,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2849  			v->DSTYAfterScaler,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2850  			v->WritebackEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2851  			v->WritebackPixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2852  			v->WritebackDestinationWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2853  			v->WritebackDestinationHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2854  			v->WritebackSourceHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2855  			&DRAMClockChangeSupport,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2856  			&v->UrgentWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2857  			&v->WritebackUrgentWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2858  			&v->DRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2859  			&v->WritebackDRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2860  			&v->StutterExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2861  			&v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2862  			&v->MinActiveDRAMClockChangeLatencySupported);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2863  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2864  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2865  			if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2866  				if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2867  					v->ThisVStartup = v->VStartup[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2868  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2869  					for (j = 0; j < v->NumberOfActivePlanes; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2870  						if (v->BlendingAndTiming[k] == j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2871  							v->ThisVStartup = v->VStartup[j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2872  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2873  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2874  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2875  				v->WritebackAllowDRAMClockChangeEndPosition[k] = dml_max(0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2876  					v->ThisVStartup * v->HTotal[k] / v->PixelClock[k] - v->WritebackDRAMClockChangeWatermark);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2877  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2878  				v->WritebackAllowDRAMClockChangeEndPosition[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2879  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2880  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2881  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2882  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2883  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2884  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2885  	//Display Pipeline Delivery Time in Prefetch, Groups
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2886  	CalculatePixelDeliveryTimes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2887  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2888  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2889  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2890  			v->VRatioPrefetchY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2891  			v->VRatioPrefetchC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2892  			v->swath_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2893  			v->swath_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2894  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2895  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2896  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2897  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2898  			v->PSCL_THROUGHPUT_LUMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2899  			v->PSCL_THROUGHPUT_CHROMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2900  			v->DPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2901  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2902  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2903  			v->NumberOfCursors,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2904  			v->CursorWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2905  			v->CursorBPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2906  			v->BlockWidth256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2907  			v->BlockHeight256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2908  			v->BlockWidth256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2909  			v->BlockHeight256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2910  			v->DisplayPipeLineDeliveryTimeLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2911  			v->DisplayPipeLineDeliveryTimeChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2912  			v->DisplayPipeLineDeliveryTimeLumaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2913  			v->DisplayPipeLineDeliveryTimeChromaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2914  			v->DisplayPipeRequestDeliveryTimeLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2915  			v->DisplayPipeRequestDeliveryTimeChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2916  			v->DisplayPipeRequestDeliveryTimeLumaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2917  			v->DisplayPipeRequestDeliveryTimeChromaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2918  			v->CursorRequestDeliveryTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2919  			v->CursorRequestDeliveryTimePrefetch);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2920  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2921  	CalculateMetaAndPTETimes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2922  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2923  			v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2924  			v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2925  			v->MinMetaChunkSizeBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2926  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2927  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2928  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2929  			v->DestinationLinesToRequestRowInVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2930  			v->DestinationLinesToRequestRowInImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2931  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2932  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2933  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2934  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2935  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2936  			v->dpte_row_height,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2937  			v->dpte_row_height_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2938  			v->meta_row_width,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2939  			v->meta_row_width_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2940  			v->meta_row_height,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2941  			v->meta_row_height_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2942  			v->meta_req_width,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2943  			v->meta_req_width_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2944  			v->meta_req_height,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2945  			v->meta_req_height_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2946  			v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2947  			v->PTERequestSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2948  			v->PTERequestSizeC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2949  			v->PixelPTEReqWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2950  			v->PixelPTEReqHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2951  			v->PixelPTEReqWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2952  			v->PixelPTEReqHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2953  			v->dpte_row_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2954  			v->dpte_row_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2955  			v->DST_Y_PER_PTE_ROW_NOM_L,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2956  			v->DST_Y_PER_PTE_ROW_NOM_C,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2957  			v->DST_Y_PER_META_ROW_NOM_L,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2958  			v->DST_Y_PER_META_ROW_NOM_C,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2959  			v->TimePerMetaChunkNominal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2960  			v->TimePerChromaMetaChunkNominal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2961  			v->TimePerMetaChunkVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2962  			v->TimePerChromaMetaChunkVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2963  			v->TimePerMetaChunkFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2964  			v->TimePerChromaMetaChunkFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2965  			v->time_per_pte_group_nom_luma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2966  			v->time_per_pte_group_vblank_luma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2967  			v->time_per_pte_group_flip_luma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2968  			v->time_per_pte_group_nom_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2969  			v->time_per_pte_group_vblank_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2970  			v->time_per_pte_group_flip_chroma);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2971  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2972  	CalculateVMGroupAndRequestTimes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2973  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2974  			v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2975  			v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2976  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2977  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2978  			v->DestinationLinesToRequestVMInVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2979  			v->DestinationLinesToRequestVMInImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2980  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2981  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2982  			v->dpte_row_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2983  			v->dpte_row_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2984  			v->vm_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2985  			v->dpde0_bytes_per_frame_ub_l,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2986  			v->dpde0_bytes_per_frame_ub_c,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2987  			v->meta_pte_bytes_per_frame_ub_l,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2988  			v->meta_pte_bytes_per_frame_ub_c,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2989  			v->TimePerVMGroupVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2990  			v->TimePerVMGroupFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2991  			v->TimePerVMRequestVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2992  			v->TimePerVMRequestFlip);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2993  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2994  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2995  	// Min TTUVBlank
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2996  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2997  		if (PrefetchMode == 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2998  			v->AllowDRAMClockChangeDuringVBlank[k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2999  			v->AllowDRAMSelfRefreshDuringVBlank[k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3000  			v->MinTTUVBlank[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3001  					v->DRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3002  					dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3003  							v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3004  							v->UrgentWatermark));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3005  		} else if (PrefetchMode == 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3006  			v->AllowDRAMClockChangeDuringVBlank[k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3007  			v->AllowDRAMSelfRefreshDuringVBlank[k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3008  			v->MinTTUVBlank[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3009  					v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3010  					v->UrgentWatermark);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3011  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3012  			v->AllowDRAMClockChangeDuringVBlank[k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3013  			v->AllowDRAMSelfRefreshDuringVBlank[k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3014  			v->MinTTUVBlank[k] = v->UrgentWatermark;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3015  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3016  		if (!v->DynamicMetadataEnable[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3017  			v->MinTTUVBlank[k] = v->TCalc
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3018  					+ v->MinTTUVBlank[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3019  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3020  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3021  	// DCC Configuration
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3022  	v->ActiveDPPs = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3023  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3024  		CalculateDCCConfiguration(v->DCCEnable[k], false, // We should always know the direction DCCProgrammingAssumesScanDirectionUnknown,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3025  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3026  				v->SurfaceWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3027  				v->SurfaceWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3028  				v->SurfaceHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3029  				v->SurfaceHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3030  				v->DETBufferSizeInKByte * 1024,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3031  				v->BlockHeight256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3032  				v->BlockHeight256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3033  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3034  				v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3035  				v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3036  				v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3037  				v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3038  				v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3039  				&v->DCCYMaxUncompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3040  				&v->DCCCMaxUncompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3041  				&v->DCCYMaxCompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3042  				&v->DCCCMaxCompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3043  				&v->DCCYIndependentBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3044  				&v->DCCCIndependentBlock[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3045  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3046  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3047  	{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3048  		//Maximum Bandwidth Used
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3049  		double TotalWRBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3050  		double MaxPerPlaneVActiveWRBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3051  		double WRBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3052  		double MaxUsedBW = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3053  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3054  			if (v->WritebackEnable[k] == true
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3055  					&& v->WritebackPixelFormat[k] == dm_444_32) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3056  				WRBandwidth = v->WritebackDestinationWidth[k] * v->WritebackDestinationHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3057  						/ (v->HTotal[k] * v->WritebackSourceHeight[k] / v->PixelClock[k]) * 4;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3058  			} else if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3059  				WRBandwidth = v->WritebackDestinationWidth[k] * v->WritebackDestinationHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3060  						/ (v->HTotal[k] * v->WritebackSourceHeight[k] / v->PixelClock[k]) * 8;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3061  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3062  			TotalWRBandwidth = TotalWRBandwidth + WRBandwidth;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3063  			MaxPerPlaneVActiveWRBandwidth = dml_max(MaxPerPlaneVActiveWRBandwidth, WRBandwidth);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3064  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3065  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3066  		v->TotalDataReadBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3067  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3068  			v->TotalDataReadBandwidth = v->TotalDataReadBandwidth
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3069  					+ v->ReadBandwidthPlaneLuma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3070  					+ v->ReadBandwidthPlaneChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3071  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3072  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3073  		{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3074  			double MaxPerPlaneVActiveRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3075  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3076  				MaxPerPlaneVActiveRDBandwidth = dml_max(MaxPerPlaneVActiveRDBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3077  						v->ReadBandwidthPlaneLuma[k] + v->ReadBandwidthPlaneChroma[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3078  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3079  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3080  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3081  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3082  		MaxUsedBW = MaxTotalRDBandwidth + TotalWRBandwidth;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3083  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3084  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3085  	// VStartup Margin
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3086  	v->VStartupMargin = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3087  	v->FirstMainPlane = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3088  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3089  		if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3090  			double margin = (v->MaxVStartupLines[k] - v->VStartup[k]) * v->HTotal[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3091  					/ v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3092  			if (v->FirstMainPlane == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3093  				v->VStartupMargin = margin;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3094  				v->FirstMainPlane = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3095  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3096  				v->VStartupMargin = dml_min(v->VStartupMargin, margin);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3097  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3098  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3099  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3100  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3101  	// Stutter Efficiency
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3102  	CalculateStutterEfficiency(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3103  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3104  			v->ROBBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3105  			v->TotalDataReadBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3106  			v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3107  			v->ReturnBW,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3108  			v->SRExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3109  			v->SynchronizedVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3110  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3111  			v->DETBufferSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3112  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3113  			v->BytePerPixelDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3114  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3115  			v->SwathHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3116  			v->SwathHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3117  			v->DCCRateLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3118  			v->DCCRateChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3119  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3120  			v->VTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3121  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3122  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3123  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3124  			v->BlockHeight256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3125  			v->BlockWidth256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3126  			v->BlockHeight256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3127  			v->BlockWidth256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3128  			v->DCCYMaxUncompressedBlock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3129  			v->DCCCMaxUncompressedBlock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3130  			v->VActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3131  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3132  			v->WritebackEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3133  			v->ReadBandwidthPlaneLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3134  			v->ReadBandwidthPlaneChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3135  			v->meta_row_bw,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3136  			v->dpte_row_bw,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3137  			&v->StutterEfficiencyNotIncludingVBlank,
6b85151f6bcdb7 Martin Leung       2020-08-28  3138  			&v->StutterEfficiency,
6b85151f6bcdb7 Martin Leung       2020-08-28  3139  			&v->StutterPeriod);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3140  }
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3141  

:::::: The code at line 1917 was first introduced by commit
:::::: 6725a88f88a7e922e91c45bf83d320487810c192 drm/amd/display: Add DCN3 DML

:::::: TO: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
:::::: CC: Alex Deucher <alexander.deucher@amd.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:1917:13: warning: stack frame size (2296) exceeds limit (2048) in 'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation'
Date: Mon, 27 Dec 2021 22:51:36 +0800	[thread overview]
Message-ID: <202112272211.3wi11WNb-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 109930 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fc74e0a40e4f9fd0468e34045b0c45bba11dcbb2
commit: 02c587733c8161355a43e6e110c2e29bd0acff72 kasan: remove redundant config option
date:   9 months ago
config: x86_64-randconfig-a004-20211227 (https://download.01.org/0day-ci/archive/20211227/202112272211.3wi11WNb-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 511726c64d3b6cca66f7c54d457d586aa3129f67)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02c587733c8161355a43e6e110c2e29bd0acff72
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 02c587733c8161355a43e6e110c2e29bd0acff72
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3052:10: warning: variable 'MaxUsedBW' set but not used [-Wunused-but-set-variable]
                   double MaxUsedBW = 0;
                          ^
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:1917:13: warning: stack frame size (2296) exceeds limit (2048) in 'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation' [-Wframe-larger-than]
   static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation(
               ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3641:6: warning: stack frame size (2840) exceeds limit (2048) in 'dml30_ModeSupportAndSystemConfigurationFull' [-Wframe-larger-than]
   void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
        ^
   3 warnings generated.


vim +/DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation +1917 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c

6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1916  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21 @1917  static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1918  		struct display_mode_lib *mode_lib)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1919  {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1920  	struct vba_vars_st *v = &mode_lib->vba;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1921  	unsigned int j, k;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1922  	long ReorderBytes = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1923  	unsigned int PrefetchMode = v->PrefetchModePerState[v->VoltageLevel][v->maxMpcComb];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1924  	double MaxTotalRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1925  	double MaxTotalRDBandwidthNoUrgentBurst = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1926  	bool DestinationLineTimesForPrefetchLessThan2 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1927  	bool VRatioPrefetchMoreThan4 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1928  	double TWait;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1929  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1930  	v->WritebackDISPCLK = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1931  	v->DISPCLKWithRamping = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1932  	v->DISPCLKWithoutRamping = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1933  	v->GlobalDPPCLK = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1934  	/* DAL custom code: need to update ReturnBW in case min dcfclk is overriden */
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1935  	v->IdealSDPPortBandwidthPerState[v->VoltageLevel][v->maxMpcComb] = dml_min3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1936  			v->ReturnBusWidth * v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1937  			v->DRAMSpeedPerState[v->VoltageLevel] * v->NumberOfChannels * v->DRAMChannelWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1938  			v->FabricClockPerState[v->VoltageLevel] * v->FabricDatapathToDCNDataReturn);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1939  	if (v->HostVMEnable != true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1940  		v->ReturnBW = v->IdealSDPPortBandwidthPerState[v->VoltageLevel][v->maxMpcComb] * v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelDataOnly / 100;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1941  	} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1942  		v->ReturnBW = v->IdealSDPPortBandwidthPerState[v->VoltageLevel][v->maxMpcComb] * v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData / 100;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1943  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1944  	/* End DAL custom code */
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1945  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1946  	// DISPCLK and DPPCLK Calculation
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1947  	//
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1948  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1949  		if (v->WritebackEnable[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1950  			v->WritebackDISPCLK = dml_max(v->WritebackDISPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1951  				dml30_CalculateWriteBackDISPCLK(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1952  						v->WritebackPixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1953  						v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1954  						v->WritebackHRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1955  						v->WritebackVRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1956  						v->WritebackHTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1957  						v->WritebackVTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1958  						v->WritebackSourceWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1959  						v->WritebackDestinationWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1960  						v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1961  						v->WritebackLineBufferSize));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1962  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1963  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1964  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1965  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1966  		if (v->HRatio[k] > 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1967  			v->PSCL_THROUGHPUT_LUMA[k] = dml_min(v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1968  				v->MaxPSCLToLBThroughput * v->HRatio[k] / dml_ceil(v->htaps[k] / 6.0, 1));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1969  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1970  			v->PSCL_THROUGHPUT_LUMA[k] = dml_min(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1971  					v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1972  					v->MaxPSCLToLBThroughput);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1973  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1974  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1975  		v->DPPCLKUsingSingleDPPLuma = v->PixelClock[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1976  			* dml_max(v->vtaps[k] / 6.0 * dml_min(1.0, v->HRatio[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1977  				dml_max(v->HRatio[k] * v->VRatio[k] / v->PSCL_THROUGHPUT_LUMA[k], 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1978  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1979  		if ((v->htaps[k] > 6 || v->vtaps[k] > 6)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1980  				&& v->DPPCLKUsingSingleDPPLuma < 2 * v->PixelClock[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1981  			v->DPPCLKUsingSingleDPPLuma = 2 * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1982  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1983  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1984  		if ((v->SourcePixelFormat[k] != dm_420_8
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1985  				&& v->SourcePixelFormat[k] != dm_420_10
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1986  				&& v->SourcePixelFormat[k] != dm_420_12
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1987  				&& v->SourcePixelFormat[k] != dm_rgbe_alpha)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1988  			v->PSCL_THROUGHPUT_CHROMA[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1989  			v->DPPCLKUsingSingleDPP[k] = v->DPPCLKUsingSingleDPPLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1990  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1991  			if (v->HRatioChroma[k] > 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1992  				v->PSCL_THROUGHPUT_CHROMA[k] = dml_min(v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1993  					v->MaxPSCLToLBThroughput * v->HRatioChroma[k] / dml_ceil(v->HTAPsChroma[k] / 6.0, 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1994  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1995  				v->PSCL_THROUGHPUT_CHROMA[k] = dml_min(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1996  						v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1997  						v->MaxPSCLToLBThroughput);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1998  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  1999  			v->DPPCLKUsingSingleDPPChroma = v->PixelClock[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2000  				* dml_max3(v->VTAPsChroma[k] / 6.0 * dml_min(1.0, v->HRatioChroma[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2001  					v->HRatioChroma[k] * v->VRatioChroma[k] / v->PSCL_THROUGHPUT_CHROMA[k], 1.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2002  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2003  			if ((v->HTAPsChroma[k] > 6 || v->VTAPsChroma[k] > 6)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2004  					&& v->DPPCLKUsingSingleDPPChroma
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2005  							< 2 * v->PixelClock[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2006  				v->DPPCLKUsingSingleDPPChroma = 2
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2007  						* v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2008  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2009  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2010  			v->DPPCLKUsingSingleDPP[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2011  					v->DPPCLKUsingSingleDPPLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2012  					v->DPPCLKUsingSingleDPPChroma);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2013  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2014  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2015  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2016  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2017  		if (v->BlendingAndTiming[k] != k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2018  			continue;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2019  		if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_4to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2020  			v->DISPCLKWithRamping = dml_max(v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2021  				v->PixelClock[k] / 4 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2022  					* (1 + v->DISPCLKRampingMargin / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2023  			v->DISPCLKWithoutRamping = dml_max(v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2024  				v->PixelClock[k] / 4 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2025  		} else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2026  			v->DISPCLKWithRamping = dml_max(v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2027  				v->PixelClock[k] / 2 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2028  					* (1 + v->DISPCLKRampingMargin / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2029  			v->DISPCLKWithoutRamping = dml_max(v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2030  				v->PixelClock[k] / 2 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2031  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2032  			v->DISPCLKWithRamping = dml_max(v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2033  				v->PixelClock[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2034  									* (1 + v->DISPCLKRampingMargin / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2035  			v->DISPCLKWithoutRamping = dml_max(v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2036  				v->PixelClock[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2037  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2038  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2039  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2040  	v->DISPCLKWithRamping = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2041  			v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2042  			v->WritebackDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2043  	v->DISPCLKWithoutRamping = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2044  			v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2045  			v->WritebackDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2046  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2047  	ASSERT(v->DISPCLKDPPCLKVCOSpeed != 0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2048  	v->DISPCLKWithRampingRoundedToDFSGranularity = RoundToDFSGranularityUp(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2049  			v->DISPCLKWithRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2050  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2051  	v->DISPCLKWithoutRampingRoundedToDFSGranularity = RoundToDFSGranularityUp(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2052  			v->DISPCLKWithoutRamping,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2053  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2054  	v->MaxDispclkRoundedToDFSGranularity = RoundToDFSGranularityDown(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2055  			v->soc.clock_limits[mode_lib->soc.num_states].dispclk_mhz,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2056  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2057  	if (v->DISPCLKWithoutRampingRoundedToDFSGranularity
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2058  			> v->MaxDispclkRoundedToDFSGranularity) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2059  		v->DISPCLK_calculated =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2060  				v->DISPCLKWithoutRampingRoundedToDFSGranularity;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2061  	} else if (v->DISPCLKWithRampingRoundedToDFSGranularity
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2062  			> v->MaxDispclkRoundedToDFSGranularity) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2063  		v->DISPCLK_calculated = v->MaxDispclkRoundedToDFSGranularity;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2064  	} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2065  		v->DISPCLK_calculated =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2066  				v->DISPCLKWithRampingRoundedToDFSGranularity;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2067  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2068  	v->DISPCLK = v->DISPCLK_calculated;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2069  	DTRACE("   dispclk_mhz (calculated) = %f", v->DISPCLK_calculated);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2070  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2071  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2072  		v->DPPCLK_calculated[k] = v->DPPCLKUsingSingleDPP[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2073  				/ v->DPPPerPlane[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2074  				* (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2075  		v->GlobalDPPCLK = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2076  				v->GlobalDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2077  				v->DPPCLK_calculated[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2078  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2079  	v->GlobalDPPCLK = RoundToDFSGranularityUp(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2080  			v->GlobalDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2081  			v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2082  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2083  		v->DPPCLK_calculated[k] = v->GlobalDPPCLK / 255
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2084  				* dml_ceil(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2085  						v->DPPCLK_calculated[k] * 255.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2086  								/ v->GlobalDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2087  						1);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2088  		DTRACE("   dppclk_mhz[%i] (calculated) = %f", k, v->DPPCLK_calculated[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2089  		v->DPPCLK[k] = v->DPPCLK_calculated[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2090  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2091  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2092  	// Urgent and B P-State/DRAM Clock Change Watermark
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2093  	DTRACE("   dcfclk_mhz         = %f", v->DCFCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2094  	DTRACE("   return_bus_bw      = %f", v->ReturnBW);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2095  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2096  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2097  		CalculateBytePerPixelAnd256BBlockSizes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2098  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2099  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2100  				&v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2101  				&v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2102  				&v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2103  				&v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2104  				&v->BlockHeight256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2105  				&v->BlockHeight256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2106  				&v->BlockWidth256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2107  				&v->BlockWidth256BytesC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2108  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2109  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2110  	CalculateSwathWidth(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2111  			false,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2112  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2113  			v->SourcePixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2114  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2115  			v->ViewportWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2116  			v->ViewportHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2117  			v->SurfaceWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2118  			v->SurfaceWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2119  			v->SurfaceHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2120  			v->SurfaceHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2121  			v->ODMCombineEnabled,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2122  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2123  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2124  			v->BlockHeight256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2125  			v->BlockHeight256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2126  			v->BlockWidth256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2127  			v->BlockWidth256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2128  			v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2129  			v->HActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2130  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2131  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2132  			v->SwathWidthSingleDPPY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2133  			v->SwathWidthSingleDPPC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2134  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2135  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2136  			v->dummyinteger3,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2137  			v->dummyinteger4,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2138  			v->swath_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2139  			v->swath_width_chroma_ub);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2140  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2141  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2142  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2143  		v->ReadBandwidthPlaneLuma[k] = v->SwathWidthSingleDPPY[k] * v->BytePerPixelY[k] / (v->HTotal[k] / v->PixelClock[k]) * v->VRatio[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2144  		v->ReadBandwidthPlaneChroma[k] = v->SwathWidthSingleDPPC[k] * v->BytePerPixelC[k] / (v->HTotal[k] / v->PixelClock[k]) * v->VRatioChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2145  		DTRACE("read_bw[%i] = %fBps", k, v->ReadBandwidthPlaneLuma[k] + v->ReadBandwidthPlaneChroma[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2146  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2147  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2148  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2149  	// DCFCLK Deep Sleep
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2150  	CalculateDCFCLKDeepSleep(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2151  			mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2152  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2153  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2154  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2155  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2156  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2157  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2158  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2159  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2160  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2161  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2162  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2163  			v->PSCL_THROUGHPUT_LUMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2164  			v->PSCL_THROUGHPUT_CHROMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2165  			v->DPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2166  			v->ReadBandwidthPlaneLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2167  			v->ReadBandwidthPlaneChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2168  			v->ReturnBusWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2169  			&v->DCFCLKDeepSleep);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2170  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2171  	// DSCCLK
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2172  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2173  		if ((v->BlendingAndTiming[k] != k) || !v->DSCEnabled[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2174  			v->DSCCLK_calculated[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2175  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2176  			if (v->OutputFormat[k] == dm_420)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2177  				v->DSCFormatFactor = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2178  			else if (v->OutputFormat[k] == dm_444)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2179  				v->DSCFormatFactor = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2180  			else if (v->OutputFormat[k] == dm_n422)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2181  				v->DSCFormatFactor = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2182  			else
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2183  				v->DSCFormatFactor = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2184  			if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_4to1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2185  				v->DSCCLK_calculated[k] = v->PixelClockBackEnd[k] / 12
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2186  					/ v->DSCFormatFactor / (1 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2187  			else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2188  				v->DSCCLK_calculated[k] = v->PixelClockBackEnd[k] / 6
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2189  					/ v->DSCFormatFactor / (1 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2190  			else
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2191  				v->DSCCLK_calculated[k] = v->PixelClockBackEnd[k] / 3
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2192  					/ v->DSCFormatFactor / (1 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2193  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2194  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2195  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2196  	// DSC Delay
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2197  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2198  		double BPP = v->OutputBppPerState[k][v->VoltageLevel];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2199  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2200  		if (v->DSCEnabled[k] && BPP != 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2201  			if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_disabled) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2202  				v->DSCDelay[k] = dscceComputeDelay(v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2203  						BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2204  						dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2205  						v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2206  						v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2207  						v->Output[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2208  					+ dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2209  			} else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2210  				v->DSCDelay[k] = 2 * dscceComputeDelay(v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2211  						BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2212  						dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2213  						v->NumberOfDSCSlices[k] / 2.0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2214  						v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2215  						v->Output[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2216  					+ dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2217  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2218  				v->DSCDelay[k] = 4 * dscceComputeDelay(v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2219  						BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2220  						dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2221  						v->NumberOfDSCSlices[k] / 4.0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2222  						v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2223  						v->Output[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2224  					+ dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2225  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2226  			v->DSCDelay[k] = v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2227  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2228  			v->DSCDelay[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2229  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2230  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2231  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2232  	for (k = 0; k < v->NumberOfActivePlanes; ++k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2233  		for (j = 0; j < v->NumberOfActivePlanes; ++j) // NumberOfPlanes
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2234  			if (j != k && v->BlendingAndTiming[k] == j
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2235  					&& v->DSCEnabled[j])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2236  				v->DSCDelay[k] = v->DSCDelay[j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2237  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2238  	// Prefetch
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2239  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2240  		unsigned int PDEAndMetaPTEBytesFrameY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2241  		unsigned int PixelPTEBytesPerRowY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2242  		unsigned int MetaRowByteY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2243  		unsigned int MetaRowByteC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2244  		unsigned int PDEAndMetaPTEBytesFrameC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2245  		unsigned int PixelPTEBytesPerRowC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2246  		bool         PTEBufferSizeNotExceededY = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2247  		bool         PTEBufferSizeNotExceededC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2248  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2249  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2250  		if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12 || v->SourcePixelFormat[k] == dm_rgbe_alpha) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2251  			if ((v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) && v->SourceScan[k] != dm_vert) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2252  				v->PTEBufferSizeInRequestsForLuma = (v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma) / 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2253  				v->PTEBufferSizeInRequestsForChroma = v->PTEBufferSizeInRequestsForLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2254  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2255  				v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2256  				v->PTEBufferSizeInRequestsForChroma = v->PTEBufferSizeInRequestsChroma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2257  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2258  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2259  			PDEAndMetaPTEBytesFrameC = CalculateVMAndRowBytes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2260  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2261  					v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2262  					v->BlockHeight256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2263  					v->BlockWidth256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2264  					v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2265  					v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2266  					v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2267  					v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2268  					v->SwathWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2269  					v->ViewportHeightChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2270  					v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2271  					v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2272  					v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2273  					v->GPUVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2274  					v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2275  					v->PTEBufferSizeInRequestsForChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2276  					v->PitchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2277  					v->DCCMetaPitchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2278  					&v->MacroTileWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2279  					&MetaRowByteC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2280  					&PixelPTEBytesPerRowC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2281  					&PTEBufferSizeNotExceededC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2282  					&v->dpte_row_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2283  					&v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2284  					&v->meta_req_width_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2285  					&v->meta_req_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2286  					&v->meta_row_width_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2287  					&v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2288  					&v->dummyinteger1,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2289  					&v->dummyinteger2,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2290  					&v->PixelPTEReqWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2291  					&v->PixelPTEReqHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2292  					&v->PTERequestSizeC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2293  					&v->dpde0_bytes_per_frame_ub_c[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2294  					&v->meta_pte_bytes_per_frame_ub_c[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2295  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2296  			v->PrefetchSourceLinesC[k] = CalculatePrefetchSourceLines(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2297  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2298  					v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2299  					v->VTAPsChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2300  					v->Interlace[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2301  					v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2302  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2303  					v->ViewportYStartC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2304  					&v->VInitPreFillC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2305  					&v->MaxNumSwathC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2306  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2307  			v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2308  			v->PTEBufferSizeInRequestsForChroma = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2309  			PixelPTEBytesPerRowC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2310  			PDEAndMetaPTEBytesFrameC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2311  			MetaRowByteC = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2312  			v->MaxNumSwathC[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2313  			v->PrefetchSourceLinesC[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2314  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2315  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2316  		PDEAndMetaPTEBytesFrameY = CalculateVMAndRowBytes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2317  				mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2318  				v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2319  				v->BlockHeight256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2320  				v->BlockWidth256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2321  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2322  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2323  				v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2324  				v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2325  				v->SwathWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2326  				v->ViewportHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2327  				v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2328  				v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2329  				v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2330  				v->GPUVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2331  				v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2332  				v->PTEBufferSizeInRequestsForLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2333  				v->PitchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2334  				v->DCCMetaPitchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2335  				&v->MacroTileWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2336  				&MetaRowByteY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2337  				&PixelPTEBytesPerRowY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2338  				&PTEBufferSizeNotExceededY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2339  				&v->dpte_row_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2340  				&v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2341  				&v->meta_req_width[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2342  				&v->meta_req_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2343  				&v->meta_row_width[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2344  				&v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2345  				&v->vm_group_bytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2346  				&v->dpte_group_bytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2347  				&v->PixelPTEReqWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2348  				&v->PixelPTEReqHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2349  				&v->PTERequestSizeY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2350  				&v->dpde0_bytes_per_frame_ub_l[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2351  				&v->meta_pte_bytes_per_frame_ub_l[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2352  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2353  		v->PrefetchSourceLinesY[k] = CalculatePrefetchSourceLines(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2354  				mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2355  				v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2356  				v->vtaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2357  				v->Interlace[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2358  				v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2359  				v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2360  				v->ViewportYStartY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2361  				&v->VInitPreFillY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2362  				&v->MaxNumSwathY[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2363  		v->PixelPTEBytesPerRow[k] = PixelPTEBytesPerRowY + PixelPTEBytesPerRowC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2364  		v->PDEAndMetaPTEBytesFrame[k] = PDEAndMetaPTEBytesFrameY
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2365  				+ PDEAndMetaPTEBytesFrameC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2366  		v->MetaRowByte[k] = MetaRowByteY + MetaRowByteC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2367  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2368  		CalculateRowBandwidth(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2369  				v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2370  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2371  				v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2372  				v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2373  				v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2374  				v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2375  				MetaRowByteY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2376  				MetaRowByteC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2377  				v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2378  				v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2379  				PixelPTEBytesPerRowY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2380  				PixelPTEBytesPerRowC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2381  				v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2382  				v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2383  				&v->meta_row_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2384  				&v->dpte_row_bw[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2385  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2386  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2387  	v->TotalDCCActiveDPP = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2388  	v->TotalActiveDPP = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2389  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2390  		v->TotalActiveDPP = v->TotalActiveDPP
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2391  				+ v->DPPPerPlane[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2392  		if (v->DCCEnable[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2393  			v->TotalDCCActiveDPP = v->TotalDCCActiveDPP
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2394  					+ v->DPPPerPlane[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2395  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2396  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2397  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2398  	ReorderBytes = v->NumberOfChannels * dml_max3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2399  		v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2400  		v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2401  		v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2402  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2403  	v->UrgentExtraLatency = CalculateExtraLatency(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2404  		v->RoundTripPingLatencyCycles,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2405  		ReorderBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2406  		v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2407  		v->TotalActiveDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2408  		v->PixelChunkSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2409  		v->TotalDCCActiveDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2410  		v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2411  		v->ReturnBW,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2412  		v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2413  		v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2414  		v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2415  		v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2416  		v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2417  		v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2418  		v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2419  		v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2420  		v->HostVMMaxNonCachedPageTableLevels);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2421  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2422  	v->TCalc = 24.0 / v->DCFCLKDeepSleep;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2423  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2424  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2425  		if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2426  			if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2427  				v->WritebackDelay[v->VoltageLevel][k] = v->WritebackLatency +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2428  						CalculateWriteBackDelay(v->WritebackPixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2429  									v->WritebackHRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2430  									v->WritebackVRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2431  									v->WritebackVTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2432  									v->WritebackDestinationWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2433  									v->WritebackDestinationHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2434  									v->WritebackSourceHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2435  									v->HTotal[k]) / v->DISPCLK;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2436  			} else
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2437  				v->WritebackDelay[v->VoltageLevel][k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2438  			for (j = 0; j < v->NumberOfActivePlanes; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2439  				if (v->BlendingAndTiming[j] == k
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2440  						&& v->WritebackEnable[j] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2441  					v->WritebackDelay[v->VoltageLevel][k] = dml_max(v->WritebackDelay[v->VoltageLevel][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2442  							v->WritebackLatency + CalculateWriteBackDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2443  											v->WritebackPixelFormat[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2444  											v->WritebackHRatio[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2445  											v->WritebackVRatio[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2446  											v->WritebackVTaps[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2447  											v->WritebackDestinationWidth[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2448  											v->WritebackDestinationHeight[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2449  											v->WritebackSourceHeight[j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2450  											v->HTotal[k]) / v->DISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2451  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2452  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2453  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2454  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2455  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2456  	for (k = 0; k < v->NumberOfActivePlanes; ++k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2457  		for (j = 0; j < v->NumberOfActivePlanes; ++j)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2458  			if (v->BlendingAndTiming[k] == j)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2459  				v->WritebackDelay[v->VoltageLevel][k] = v->WritebackDelay[v->VoltageLevel][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2460  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2461  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2462  		v->MaxVStartupLines[k] = v->VTotal[k] - v->VActive[k] - dml_max(1.0, dml_ceil((double) v->WritebackDelay[v->VoltageLevel][k] / (v->HTotal[k] / v->PixelClock[k]), 1));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2463  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2464  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2465  	v->MaximumMaxVStartupLines = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2466  	for (k = 0; k < v->NumberOfActivePlanes; ++k)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2467  		v->MaximumMaxVStartupLines = dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2468  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2469  	if (v->DRAMClockChangeLatencyOverride > 0.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2470  		v->FinalDRAMClockChangeLatency = v->DRAMClockChangeLatencyOverride;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2471  	} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2472  		v->FinalDRAMClockChangeLatency = v->DRAMClockChangeLatency;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2473  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2474  	v->UrgentLatency = CalculateUrgentLatency(v->UrgentLatencyPixelDataOnly, v->UrgentLatencyPixelMixedWithVMData, v->UrgentLatencyVMDataOnly, v->DoUrgentLatencyAdjustment, v->UrgentLatencyAdjustmentFabricClockComponent, v->UrgentLatencyAdjustmentFabricClockReference, v->FabricClock);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2475  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2476  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2477  	v->FractionOfUrgentBandwidth = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2478  	v->FractionOfUrgentBandwidthImmediateFlip = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2479  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2480  	v->VStartupLines = 13;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2481  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2482  	do {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2483  		MaxTotalRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2484  		MaxTotalRDBandwidthNoUrgentBurst = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2485  		DestinationLineTimesForPrefetchLessThan2 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2486  		VRatioPrefetchMoreThan4 = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2487  		TWait = CalculateTWait(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2488  				PrefetchMode,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2489  				v->FinalDRAMClockChangeLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2490  				v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2491  				v->SREnterPlusExitTime);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2492  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2493  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2494  			Pipe myPipe = { 0 };
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2495  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2496  			myPipe.DPPCLK = v->DPPCLK[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2497  			myPipe.DISPCLK = v->DISPCLK;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2498  			myPipe.PixelClock = v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2499  			myPipe.DCFCLKDeepSleep = v->DCFCLKDeepSleep;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2500  			myPipe.DPPPerPlane = v->DPPPerPlane[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2501  			myPipe.ScalerEnabled = v->ScalerEnabled[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2502  			myPipe.SourceScan = v->SourceScan[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2503  			myPipe.BlockWidth256BytesY = v->BlockWidth256BytesY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2504  			myPipe.BlockHeight256BytesY = v->BlockHeight256BytesY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2505  			myPipe.BlockWidth256BytesC = v->BlockWidth256BytesC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2506  			myPipe.BlockHeight256BytesC = v->BlockHeight256BytesC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2507  			myPipe.InterlaceEnable = v->Interlace[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2508  			myPipe.NumberOfCursors = v->NumberOfCursors[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2509  			myPipe.VBlank = v->VTotal[k] - v->VActive[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2510  			myPipe.HTotal = v->HTotal[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2511  			myPipe.DCCEnable = v->DCCEnable[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2512  			myPipe.ODMCombineEnabled = !!v->ODMCombineEnabled[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2513  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2514  			v->ErrorResult[k] = CalculatePrefetchSchedule(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2515  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2516  					v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2517  					v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2518  					&myPipe,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2519  					v->DSCDelay[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2520  					v->DPPCLKDelaySubtotal
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2521  							+ v->DPPCLKDelayCNVCFormater,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2522  					v->DPPCLKDelaySCL,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2523  					v->DPPCLKDelaySCLLBOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2524  					v->DPPCLKDelayCNVCCursor,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2525  					v->DISPCLKDelaySubtotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2526  					(unsigned int) (v->SwathWidthY[k] / v->HRatio[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2527  					v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2528  					v->MaxInterDCNTileRepeaters,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2529  					dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2530  					v->MaxVStartupLines[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2531  					v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2532  					v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2533  					v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2534  					v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2535  					v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2536  					v->DynamicMetadataEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2537  					v->DynamicMetadataVMEnabled,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2538  					v->DynamicMetadataLinesBeforeActiveRequired[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2539  					v->DynamicMetadataTransmittedBytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2540  					v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2541  					v->UrgentExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2542  					v->TCalc,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2543  					v->PDEAndMetaPTEBytesFrame[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2544  					v->MetaRowByte[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2545  					v->PixelPTEBytesPerRow[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2546  					v->PrefetchSourceLinesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2547  					v->SwathWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2548  					v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2549  					v->VInitPreFillY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2550  					v->MaxNumSwathY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2551  					v->PrefetchSourceLinesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2552  					v->SwathWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2553  					v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2554  					v->VInitPreFillC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2555  					v->MaxNumSwathC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2556  					v->swath_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2557  					v->swath_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2558  					v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2559  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2560  					TWait,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2561  					v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2562  					&v->DSTXAfterScaler[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2563  					&v->DSTYAfterScaler[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2564  					&v->DestinationLinesForPrefetch[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2565  					&v->PrefetchBandwidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2566  					&v->DestinationLinesToRequestVMInVBlank[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2567  					&v->DestinationLinesToRequestRowInVBlank[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2568  					&v->VRatioPrefetchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2569  					&v->VRatioPrefetchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2570  					&v->RequiredPrefetchPixDataBWLuma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2571  					&v->RequiredPrefetchPixDataBWChroma[k],
eaa483642f63cf Dmytro Laktyushkin 2020-06-15  2572  					&v->NotEnoughTimeForDynamicMetadata[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2573  					&v->Tno_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2574  					&v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2575  					&v->Tdmdl_vm[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2576  					&v->Tdmdl[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2577  					&v->VUpdateOffsetPix[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2578  					&v->VUpdateWidthPix[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2579  					&v->VReadyOffsetPix[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2580  			if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2581  				double TotalRepeaterDelayTime = v->MaxInterDCNTileRepeaters * (2 / v->DPPCLK[k] + 3 / v->DISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2582  				v->VUpdateWidthPix[k] = (14 / v->DCFCLKDeepSleep + 12 / v->DPPCLK[k] + TotalRepeaterDelayTime) * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2583  				v->VReadyOffsetPix[k] = dml_max(150.0 / v->DPPCLK[k], TotalRepeaterDelayTime + 20 / v->DCFCLKDeepSleep + 10 / v->DPPCLK[k]) * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2584  				v->VUpdateOffsetPix[k] = dml_ceil(v->HTotal[k] / 4.0, 1);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2585  				v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2586  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2587  				int x = v->BlendingAndTiming[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2588  				double TotalRepeaterDelayTime = v->MaxInterDCNTileRepeaters * (2 / v->DPPCLK[k] + 3 / v->DISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2589  				v->VUpdateWidthPix[k] = (14 / v->DCFCLKDeepSleep + 12 / v->DPPCLK[k] + TotalRepeaterDelayTime) * v->PixelClock[x];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2590  				v->VReadyOffsetPix[k] = dml_max(150.0 / v->DPPCLK[k], TotalRepeaterDelayTime + 20 / v->DCFCLKDeepSleep + 10 / v->DPPCLK[k]) * v->PixelClock[x];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2591  				v->VUpdateOffsetPix[k] = dml_ceil(v->HTotal[x] / 4.0, 1);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2592  				if (!v->MaxVStartupLines[x])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2593  					v->MaxVStartupLines[x] = v->MaxVStartupLines[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2594  				v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[x]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2595  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2596  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2597  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2598  		v->NotEnoughUrgentLatencyHiding = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2599  		v->NotEnoughUrgentLatencyHidingPre = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2600  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2601  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2602  			v->cursor_bw[k] = v->NumberOfCursors[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2603  					* v->CursorWidth[k][0] * v->CursorBPP[k][0]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2604  					/ 8.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2605  					/ (v->HTotal[k] / v->PixelClock[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2606  					* v->VRatio[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2607  			v->cursor_bw_pre[k] = v->NumberOfCursors[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2608  					* v->CursorWidth[k][0] * v->CursorBPP[k][0]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2609  					/ 8.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2610  					/ (v->HTotal[k] / v->PixelClock[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2611  					* v->VRatioPrefetchY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2612  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2613  			CalculateUrgentBurstFactor(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2614  					v->swath_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2615  					v->swath_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2616  					v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2617  					v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2618  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2619  					v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2620  					v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2621  					v->CursorBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2622  					v->CursorWidth[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2623  					v->CursorBPP[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2624  					v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2625  					v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2626  					v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2627  					v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2628  					v->DETBufferSizeY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2629  					v->DETBufferSizeC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2630  					&v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2631  					&v->UrgentBurstFactorLuma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2632  					&v->UrgentBurstFactorChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2633  					&v->NoUrgentLatencyHiding[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2634  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2635  			CalculateUrgentBurstFactor(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2636  					v->swath_width_luma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2637  					v->swath_width_chroma_ub[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2638  					v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2639  					v->SwathHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2640  					v->SwathHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2641  					v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2642  					v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2643  					v->CursorBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2644  					v->CursorWidth[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2645  					v->CursorBPP[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2646  					v->VRatioPrefetchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2647  					v->VRatioPrefetchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2648  					v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2649  					v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2650  					v->DETBufferSizeY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2651  					v->DETBufferSizeC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2652  					&v->UrgentBurstFactorCursorPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2653  					&v->UrgentBurstFactorLumaPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2654  					&v->UrgentBurstFactorChromaPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2655  					&v->NoUrgentLatencyHidingPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2656  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2657  			MaxTotalRDBandwidth = MaxTotalRDBandwidth +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2658  				dml_max3(v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2659  					v->ReadBandwidthPlaneLuma[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2660  					v->UrgentBurstFactorLuma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2661  					v->ReadBandwidthPlaneChroma[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2662  					v->UrgentBurstFactorChroma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2663  					v->cursor_bw[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2664  					v->UrgentBurstFactorCursor[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2665  					v->DPPPerPlane[k] * (v->meta_row_bw[k] + v->dpte_row_bw[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2666  					v->DPPPerPlane[k] * (v->RequiredPrefetchPixDataBWLuma[k] * v->UrgentBurstFactorLumaPre[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2667  						v->RequiredPrefetchPixDataBWChroma[k] * v->UrgentBurstFactorChromaPre[k]) + v->cursor_bw_pre[k] *
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2668  					v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2669  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2670  			MaxTotalRDBandwidthNoUrgentBurst = MaxTotalRDBandwidthNoUrgentBurst +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2671  				dml_max3(v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2672  					v->ReadBandwidthPlaneLuma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2673  					v->ReadBandwidthPlaneChroma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2674  					v->cursor_bw[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2675  					v->DPPPerPlane[k] * (v->meta_row_bw[k] + v->dpte_row_bw[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2676  					v->DPPPerPlane[k] * (v->RequiredPrefetchPixDataBWLuma[k] + v->RequiredPrefetchPixDataBWChroma[k]) + v->cursor_bw_pre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2677  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2678  			if (v->DestinationLinesForPrefetch[k] < 2)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2679  				DestinationLineTimesForPrefetchLessThan2 = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2680  			if (v->VRatioPrefetchY[k] > 4 || v->VRatioPrefetchC[k] > 4)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2681  				VRatioPrefetchMoreThan4 = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2682  			if (v->NoUrgentLatencyHiding[k] == true)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2683  				v->NotEnoughUrgentLatencyHiding = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2684  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2685  			if (v->NoUrgentLatencyHidingPre[k] == true)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2686  				v->NotEnoughUrgentLatencyHidingPre = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2687  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2688  		v->FractionOfUrgentBandwidth = MaxTotalRDBandwidthNoUrgentBurst / v->ReturnBW;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2689  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2690  
eaa483642f63cf Dmytro Laktyushkin 2020-06-15  2691  		if (MaxTotalRDBandwidth <= v->ReturnBW && v->NotEnoughUrgentLatencyHiding == 0 && v->NotEnoughUrgentLatencyHidingPre == 0 && !VRatioPrefetchMoreThan4
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2692  				&& !DestinationLineTimesForPrefetchLessThan2)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2693  			v->PrefetchModeSupported = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2694  		else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2695  			v->PrefetchModeSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2696  			dml_print("DML: CalculatePrefetchSchedule ***failed***. Bandwidth violation. Results are NOT valid\n");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2697  			dml_print("DML: MaxTotalRDBandwidth:%f AvailReturnBandwidth:%f\n", MaxTotalRDBandwidth, v->ReturnBW);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2698  			dml_print("DML: VRatioPrefetch %s more than 4\n", (VRatioPrefetchMoreThan4) ? "is" : "is not");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2699  			dml_print("DML: DestinationLines for Prefetch %s less than 2\n", (DestinationLineTimesForPrefetchLessThan2) ? "is" : "is not");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2700  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2701  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2702  		if (v->PrefetchModeSupported == true && v->ImmediateFlipSupport == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2703  			v->BandwidthAvailableForImmediateFlip = v->ReturnBW;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2704  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2705  				v->BandwidthAvailableForImmediateFlip =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2706  						v->BandwidthAvailableForImmediateFlip
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2707  								- dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2708  										v->ReadBandwidthPlaneLuma[k] * v->UrgentBurstFactorLuma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2709  												+ v->ReadBandwidthPlaneChroma[k] * v->UrgentBurstFactorChroma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2710  												+ v->cursor_bw[k] * v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2711  										v->DPPPerPlane[k] * (v->RequiredPrefetchPixDataBWLuma[k] * v->UrgentBurstFactorLumaPre[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2712  										v->RequiredPrefetchPixDataBWChroma[k] * v->UrgentBurstFactorChromaPre[k]) +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2713  										v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2714  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2715  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2716  			v->TotImmediateFlipBytes = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2717  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2718  				v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2719  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2720  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2721  				CalculateFlipSchedule(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2722  						mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2723  						v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2724  						v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2725  						v->UrgentExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2726  						v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2727  						v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2728  						v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2729  						v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2730  						v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2731  						v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2732  						v->PDEAndMetaPTEBytesFrame[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2733  						v->MetaRowByte[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2734  						v->PixelPTEBytesPerRow[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2735  						v->BandwidthAvailableForImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2736  						v->TotImmediateFlipBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2737  						v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2738  						v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2739  						v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2740  						v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2741  						v->Tno_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2742  						v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2743  						v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2744  						v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2745  						v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2746  						v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2747  						&v->DestinationLinesToRequestVMInImmediateFlip[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2748  						&v->DestinationLinesToRequestRowInImmediateFlip[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2749  						&v->final_flip_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2750  						&v->ImmediateFlipSupportedForPipe[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2751  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2752  			v->total_dcn_read_bw_with_flip = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2753  			v->total_dcn_read_bw_with_flip_no_urgent_burst = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2754  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2755  				v->total_dcn_read_bw_with_flip = v->total_dcn_read_bw_with_flip + dml_max3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2756  					v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2757  					v->DPPPerPlane[k] * v->final_flip_bw[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2758  					v->ReadBandwidthLuma[k] * v->UrgentBurstFactorLuma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2759  					v->ReadBandwidthChroma[k] * v->UrgentBurstFactorChroma[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2760  					v->cursor_bw[k] * v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2761  					v->DPPPerPlane[k] * (v->final_flip_bw[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2762  					v->RequiredPrefetchPixDataBWLuma[k] * v->UrgentBurstFactorLumaPre[k] +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2763  					v->RequiredPrefetchPixDataBWChroma[k] * v->UrgentBurstFactorChromaPre[k]) +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2764  					v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2765  				v->total_dcn_read_bw_with_flip_no_urgent_burst =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2766  					v->total_dcn_read_bw_with_flip_no_urgent_burst +
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2767  						dml_max3(v->DPPPerPlane[k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2768  							v->DPPPerPlane[k] * v->final_flip_bw[k] + v->ReadBandwidthPlaneLuma[k] + v->ReadBandwidthPlaneChroma[k] + v->cursor_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2769  							v->DPPPerPlane[k] * (v->final_flip_bw[k] + v->RequiredPrefetchPixDataBWLuma[k] + v->RequiredPrefetchPixDataBWChroma[k]) + v->cursor_bw_pre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2770  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2771  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2772  			v->FractionOfUrgentBandwidthImmediateFlip = v->total_dcn_read_bw_with_flip_no_urgent_burst / v->ReturnBW;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2773  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2774  			v->ImmediateFlipSupported = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2775  			if (v->total_dcn_read_bw_with_flip > v->ReturnBW) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2776  				v->ImmediateFlipSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2777  				v->total_dcn_read_bw_with_flip = MaxTotalRDBandwidth;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2778  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2779  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2780  				if (v->ImmediateFlipSupportedForPipe[k] == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2781  					v->ImmediateFlipSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2782  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2783  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2784  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2785  			v->ImmediateFlipSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2786  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2787  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2788  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
eaa483642f63cf Dmytro Laktyushkin 2020-06-15  2789  			if (v->ErrorResult[k] || v->NotEnoughTimeForDynamicMetadata[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2790  				v->PrefetchModeSupported = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2791  				dml_print("DML: CalculatePrefetchSchedule ***failed***. Prefetch schedule violation. Results are NOT valid\n");
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2792  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2793  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2794  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2795  		v->VStartupLines = v->VStartupLines + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2796  		v->PrefetchAndImmediateFlipSupported = (v->PrefetchModeSupported == true && ((!v->ImmediateFlipSupport && !v->HostVMEnable && v->ImmediateFlipRequirement != dm_immediate_flip_required) || v->ImmediateFlipSupported)) ? true : false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2797  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2798  	} while (!v->PrefetchModeSupported && v->VStartupLines <= v->MaximumMaxVStartupLines);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2799  	ASSERT(v->PrefetchModeSupported);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2800  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2801  	//Watermarks and NB P-State/DRAM Clock Change Support
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2802  	{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2803  		enum clock_change_support   DRAMClockChangeSupport = 0; // dummy
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2804  		CalculateWatermarksAndDRAMSpeedChangeSupport(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2805  			mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2806  			PrefetchMode,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2807  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2808  			v->MaxLineBufferLines,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2809  			v->LineBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2810  			v->DPPOutputBufferPixels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2811  			v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2812  			v->WritebackInterfaceBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2813  			v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2814  			v->ReturnBW,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2815  			v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2816  			v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2817  			v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2818  			v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2819  			v->UrgentExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2820  			v->WritebackLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2821  			v->WritebackChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2822  			v->SOCCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2823  			v->FinalDRAMClockChangeLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2824  			v->SRExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2825  			v->SREnterPlusExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2826  			v->DCFCLKDeepSleep,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2827  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2828  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2829  			v->DPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2830  			v->DETBufferSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2831  			v->DETBufferSizeC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2832  			v->SwathHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2833  			v->SwathHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2834  			v->LBBitPerPixel,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2835  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2836  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2837  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2838  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2839  			v->vtaps,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2840  			v->VTAPsChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2841  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2842  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2843  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2844  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2845  			v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2846  			v->BytePerPixelDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2847  			v->BytePerPixelDETC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2848  			v->DSTXAfterScaler,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2849  			v->DSTYAfterScaler,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2850  			v->WritebackEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2851  			v->WritebackPixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2852  			v->WritebackDestinationWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2853  			v->WritebackDestinationHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2854  			v->WritebackSourceHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2855  			&DRAMClockChangeSupport,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2856  			&v->UrgentWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2857  			&v->WritebackUrgentWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2858  			&v->DRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2859  			&v->WritebackDRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2860  			&v->StutterExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2861  			&v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2862  			&v->MinActiveDRAMClockChangeLatencySupported);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2863  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2864  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2865  			if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2866  				if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2867  					v->ThisVStartup = v->VStartup[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2868  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2869  					for (j = 0; j < v->NumberOfActivePlanes; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2870  						if (v->BlendingAndTiming[k] == j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2871  							v->ThisVStartup = v->VStartup[j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2872  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2873  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2874  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2875  				v->WritebackAllowDRAMClockChangeEndPosition[k] = dml_max(0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2876  					v->ThisVStartup * v->HTotal[k] / v->PixelClock[k] - v->WritebackDRAMClockChangeWatermark);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2877  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2878  				v->WritebackAllowDRAMClockChangeEndPosition[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2879  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2880  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2881  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2882  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2883  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2884  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2885  	//Display Pipeline Delivery Time in Prefetch, Groups
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2886  	CalculatePixelDeliveryTimes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2887  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2888  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2889  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2890  			v->VRatioPrefetchY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2891  			v->VRatioPrefetchC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2892  			v->swath_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2893  			v->swath_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2894  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2895  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2896  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2897  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2898  			v->PSCL_THROUGHPUT_LUMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2899  			v->PSCL_THROUGHPUT_CHROMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2900  			v->DPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2901  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2902  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2903  			v->NumberOfCursors,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2904  			v->CursorWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2905  			v->CursorBPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2906  			v->BlockWidth256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2907  			v->BlockHeight256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2908  			v->BlockWidth256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2909  			v->BlockHeight256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2910  			v->DisplayPipeLineDeliveryTimeLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2911  			v->DisplayPipeLineDeliveryTimeChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2912  			v->DisplayPipeLineDeliveryTimeLumaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2913  			v->DisplayPipeLineDeliveryTimeChromaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2914  			v->DisplayPipeRequestDeliveryTimeLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2915  			v->DisplayPipeRequestDeliveryTimeChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2916  			v->DisplayPipeRequestDeliveryTimeLumaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2917  			v->DisplayPipeRequestDeliveryTimeChromaPrefetch,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2918  			v->CursorRequestDeliveryTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2919  			v->CursorRequestDeliveryTimePrefetch);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2920  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2921  	CalculateMetaAndPTETimes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2922  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2923  			v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2924  			v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2925  			v->MinMetaChunkSizeBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2926  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2927  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2928  			v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2929  			v->DestinationLinesToRequestRowInVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2930  			v->DestinationLinesToRequestRowInImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2931  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2932  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2933  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2934  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2935  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2936  			v->dpte_row_height,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2937  			v->dpte_row_height_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2938  			v->meta_row_width,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2939  			v->meta_row_width_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2940  			v->meta_row_height,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2941  			v->meta_row_height_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2942  			v->meta_req_width,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2943  			v->meta_req_width_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2944  			v->meta_req_height,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2945  			v->meta_req_height_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2946  			v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2947  			v->PTERequestSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2948  			v->PTERequestSizeC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2949  			v->PixelPTEReqWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2950  			v->PixelPTEReqHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2951  			v->PixelPTEReqWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2952  			v->PixelPTEReqHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2953  			v->dpte_row_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2954  			v->dpte_row_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2955  			v->DST_Y_PER_PTE_ROW_NOM_L,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2956  			v->DST_Y_PER_PTE_ROW_NOM_C,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2957  			v->DST_Y_PER_META_ROW_NOM_L,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2958  			v->DST_Y_PER_META_ROW_NOM_C,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2959  			v->TimePerMetaChunkNominal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2960  			v->TimePerChromaMetaChunkNominal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2961  			v->TimePerMetaChunkVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2962  			v->TimePerChromaMetaChunkVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2963  			v->TimePerMetaChunkFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2964  			v->TimePerChromaMetaChunkFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2965  			v->time_per_pte_group_nom_luma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2966  			v->time_per_pte_group_vblank_luma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2967  			v->time_per_pte_group_flip_luma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2968  			v->time_per_pte_group_nom_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2969  			v->time_per_pte_group_vblank_chroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2970  			v->time_per_pte_group_flip_chroma);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2971  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2972  	CalculateVMGroupAndRequestTimes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2973  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2974  			v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2975  			v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2976  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2977  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2978  			v->DestinationLinesToRequestVMInVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2979  			v->DestinationLinesToRequestVMInImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2980  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2981  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2982  			v->dpte_row_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2983  			v->dpte_row_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2984  			v->vm_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2985  			v->dpde0_bytes_per_frame_ub_l,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2986  			v->dpde0_bytes_per_frame_ub_c,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2987  			v->meta_pte_bytes_per_frame_ub_l,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2988  			v->meta_pte_bytes_per_frame_ub_c,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2989  			v->TimePerVMGroupVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2990  			v->TimePerVMGroupFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2991  			v->TimePerVMRequestVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2992  			v->TimePerVMRequestFlip);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2993  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2994  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2995  	// Min TTUVBlank
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2996  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2997  		if (PrefetchMode == 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2998  			v->AllowDRAMClockChangeDuringVBlank[k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  2999  			v->AllowDRAMSelfRefreshDuringVBlank[k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3000  			v->MinTTUVBlank[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3001  					v->DRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3002  					dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3003  							v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3004  							v->UrgentWatermark));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3005  		} else if (PrefetchMode == 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3006  			v->AllowDRAMClockChangeDuringVBlank[k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3007  			v->AllowDRAMSelfRefreshDuringVBlank[k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3008  			v->MinTTUVBlank[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3009  					v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3010  					v->UrgentWatermark);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3011  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3012  			v->AllowDRAMClockChangeDuringVBlank[k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3013  			v->AllowDRAMSelfRefreshDuringVBlank[k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3014  			v->MinTTUVBlank[k] = v->UrgentWatermark;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3015  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3016  		if (!v->DynamicMetadataEnable[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3017  			v->MinTTUVBlank[k] = v->TCalc
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3018  					+ v->MinTTUVBlank[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3019  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3020  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3021  	// DCC Configuration
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3022  	v->ActiveDPPs = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3023  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3024  		CalculateDCCConfiguration(v->DCCEnable[k], false, // We should always know the direction DCCProgrammingAssumesScanDirectionUnknown,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3025  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3026  				v->SurfaceWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3027  				v->SurfaceWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3028  				v->SurfaceHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3029  				v->SurfaceHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3030  				v->DETBufferSizeInKByte * 1024,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3031  				v->BlockHeight256BytesY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3032  				v->BlockHeight256BytesC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3033  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3034  				v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3035  				v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3036  				v->BytePerPixelDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3037  				v->BytePerPixelDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3038  				v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3039  				&v->DCCYMaxUncompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3040  				&v->DCCCMaxUncompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3041  				&v->DCCYMaxCompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3042  				&v->DCCCMaxCompressedBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3043  				&v->DCCYIndependentBlock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3044  				&v->DCCCIndependentBlock[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3045  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3046  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3047  	{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3048  		//Maximum Bandwidth Used
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3049  		double TotalWRBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3050  		double MaxPerPlaneVActiveWRBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3051  		double WRBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3052  		double MaxUsedBW = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3053  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3054  			if (v->WritebackEnable[k] == true
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3055  					&& v->WritebackPixelFormat[k] == dm_444_32) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3056  				WRBandwidth = v->WritebackDestinationWidth[k] * v->WritebackDestinationHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3057  						/ (v->HTotal[k] * v->WritebackSourceHeight[k] / v->PixelClock[k]) * 4;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3058  			} else if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3059  				WRBandwidth = v->WritebackDestinationWidth[k] * v->WritebackDestinationHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3060  						/ (v->HTotal[k] * v->WritebackSourceHeight[k] / v->PixelClock[k]) * 8;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3061  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3062  			TotalWRBandwidth = TotalWRBandwidth + WRBandwidth;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3063  			MaxPerPlaneVActiveWRBandwidth = dml_max(MaxPerPlaneVActiveWRBandwidth, WRBandwidth);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3064  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3065  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3066  		v->TotalDataReadBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3067  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3068  			v->TotalDataReadBandwidth = v->TotalDataReadBandwidth
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3069  					+ v->ReadBandwidthPlaneLuma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3070  					+ v->ReadBandwidthPlaneChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3071  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3072  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3073  		{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3074  			double MaxPerPlaneVActiveRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3075  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3076  				MaxPerPlaneVActiveRDBandwidth = dml_max(MaxPerPlaneVActiveRDBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3077  						v->ReadBandwidthPlaneLuma[k] + v->ReadBandwidthPlaneChroma[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3078  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3079  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3080  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3081  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3082  		MaxUsedBW = MaxTotalRDBandwidth + TotalWRBandwidth;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3083  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3084  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3085  	// VStartup Margin
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3086  	v->VStartupMargin = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3087  	v->FirstMainPlane = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3088  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3089  		if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3090  			double margin = (v->MaxVStartupLines[k] - v->VStartup[k]) * v->HTotal[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3091  					/ v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3092  			if (v->FirstMainPlane == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3093  				v->VStartupMargin = margin;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3094  				v->FirstMainPlane = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3095  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3096  				v->VStartupMargin = dml_min(v->VStartupMargin, margin);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3097  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3098  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3099  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3100  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3101  	// Stutter Efficiency
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3102  	CalculateStutterEfficiency(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3103  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3104  			v->ROBBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3105  			v->TotalDataReadBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3106  			v->DCFCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3107  			v->ReturnBW,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3108  			v->SRExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3109  			v->SynchronizedVBlank,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3110  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3111  			v->DETBufferSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3112  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3113  			v->BytePerPixelDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3114  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3115  			v->SwathHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3116  			v->SwathHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3117  			v->DCCRateLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3118  			v->DCCRateChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3119  			v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3120  			v->VTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3121  			v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3122  			v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3123  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3124  			v->BlockHeight256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3125  			v->BlockWidth256BytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3126  			v->BlockHeight256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3127  			v->BlockWidth256BytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3128  			v->DCCYMaxUncompressedBlock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3129  			v->DCCCMaxUncompressedBlock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3130  			v->VActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3131  			v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3132  			v->WritebackEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3133  			v->ReadBandwidthPlaneLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3134  			v->ReadBandwidthPlaneChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3135  			v->meta_row_bw,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3136  			v->dpte_row_bw,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3137  			&v->StutterEfficiencyNotIncludingVBlank,
6b85151f6bcdb7 Martin Leung       2020-08-28  3138  			&v->StutterEfficiency,
6b85151f6bcdb7 Martin Leung       2020-08-28  3139  			&v->StutterPeriod);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3140  }
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3141  

:::::: The code at line 1917 was first introduced by commit
:::::: 6725a88f88a7e922e91c45bf83d320487810c192 drm/amd/display: Add DCN3 DML

:::::: TO: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
:::::: CC: Alex Deucher <alexander.deucher@amd.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2021-12-27 14:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-27 14:51 kernel test robot [this message]
2021-12-27 14:51 ` drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:1917:13: warning: stack frame size (2296) exceeds limit (2048) in 'DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation' kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202112272211.3wi11WNb-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@google.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=llvm@lists.linux.dev \
    --cc=natechancellor@gmail.com \
    --cc=walter-zh.wu@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.