[PATCH] amdgpu/dc: drop dml display_mode_support.c (v2)

Dave Airlie airlied at gmail.com
Thu Sep 28 02:29:53 UTC 2017


From: Dave Airlie <airlied at redhat.com>

This code isn't used, and this function is huge, reimport later if
going to be used.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 drivers/gpu/drm/amd/display/dc/dml/Makefile        |    4 +-
 .../drm/amd/display/dc/dml/display_mode_support.c  | 2327 --------------------
 .../drm/amd/display/dc/dml/display_mode_support.h  |    5 -
 3 files changed, 1 insertion(+), 2335 deletions(-)
 delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/display_mode_support.c

diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile
index a6bf364..ec712d7 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
@@ -10,12 +10,10 @@ CFLAGS_display_rq_dlg_helpers.o := -mhard-float -msse -mpreferred-stack-boundary
 CFLAGS_display_watermark.o := -mhard-float -msse -mpreferred-stack-boundary=4
 CFLAGS_soc_bounding_box.o := -mhard-float -msse -mpreferred-stack-boundary=4
 CFLAGS_dml_common_defs.o := -mhard-float -msse -mpreferred-stack-boundary=4
-CFLAGS_display_mode_support.o := -mhard-float -msse -mpreferred-stack-boundary=4
-
 
 DML = display_mode_lib.o display_rq_dlg_calc.o \
 	  display_rq_dlg_helpers.o display_watermark.o \
-	  soc_bounding_box.o dml_common_defs.o display_mode_support.o
+	  soc_bounding_box.o dml_common_defs.o
 
 AMD_DAL_DML = $(addprefix $(AMDDALPATH)/dc/dml/,$(DML))
 
diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.c b/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.c
deleted file mode 100644
index ac57356..0000000
--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.c
+++ /dev/null
@@ -1,2327 +0,0 @@
-/*
- * Copyright 2017 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors: AMD
- *
- */
-
-#include "display_mode_support.h"
-#include "display_mode_lib.h"
-
-#include "dml_inline_defs.h"
-int dml_ms_check(
-		struct display_mode_lib *mode_lib,
-		struct _vcs_dpi_display_e2e_pipe_params_st *e2e,
-		int num_pipes)
-{
-	struct _vcs_dpi_ip_params_st *ip;
-	struct _vcs_dpi_soc_bounding_box_st *soc;
-	struct _vcs_dpi_mode_evaluation_st *me;
-	struct dml_ms_internal_vars *v;
-	int num_planes, i, j, ij, k, ijk;
-
-	ip = &(mode_lib->ip);
-	soc = &(mode_lib->soc);
-	me = &(mode_lib->me);
-	v = &(mode_lib->vars);
-	num_planes = dml_wm_e2e_to_wm(mode_lib, e2e, num_pipes, v->planes);
-
-	//instantiating variables to zero
-	v->MacroTileBlockWidthC = 0;
-	v->SwathWidthGranularityC = 0;
-
-	v->DCFCLKPerState[5] = 0;
-	v->DCFCLKPerState[4] = 0;
-	v->DCFCLKPerState[3] = 0;
-	v->DCFCLKPerState[2] = 0;
-	v->DCFCLKPerState[1] = 0;
-	v->DCFCLKPerState[0] = 0;
-
-	if (soc->vmin.dcfclk_mhz > 0) {
-		v->DCFCLKPerState[5] = soc->vmin.dcfclk_mhz;
-		v->DCFCLKPerState[4] = soc->vmin.dcfclk_mhz;
-		v->DCFCLKPerState[3] = soc->vmin.dcfclk_mhz;
-		v->DCFCLKPerState[2] = soc->vmin.dcfclk_mhz;
-		v->DCFCLKPerState[1] = soc->vmin.dcfclk_mhz;
-		v->DCFCLKPerState[0] = soc->vmin.dcfclk_mhz;
-	}
-
-	if (soc->vmid.dcfclk_mhz > 0) {
-		v->DCFCLKPerState[5] = soc->vmid.dcfclk_mhz;
-		v->DCFCLKPerState[4] = soc->vmid.dcfclk_mhz;
-		v->DCFCLKPerState[3] = soc->vmid.dcfclk_mhz;
-		v->DCFCLKPerState[2] = soc->vmid.dcfclk_mhz;
-		v->DCFCLKPerState[1] = soc->vmid.dcfclk_mhz;
-	}
-
-	if (soc->vnom.dcfclk_mhz > 0) {
-		v->DCFCLKPerState[5] = soc->vnom.dcfclk_mhz;
-		v->DCFCLKPerState[4] = soc->vnom.dcfclk_mhz;
-		v->DCFCLKPerState[3] = soc->vnom.dcfclk_mhz;
-		v->DCFCLKPerState[2] = soc->vnom.dcfclk_mhz;
-	}
-
-	if (soc->vmax.dcfclk_mhz > 0) {
-		v->DCFCLKPerState[5] = soc->vmax.dcfclk_mhz;
-		v->DCFCLKPerState[4] = soc->vmax.dcfclk_mhz;
-		v->DCFCLKPerState[3] = soc->vmax.dcfclk_mhz;
-	}
-
-	v->FabricAndDRAMBandwidthPerState[5] = 0;
-	v->FabricAndDRAMBandwidthPerState[4] = 0;
-	v->FabricAndDRAMBandwidthPerState[3] = 0;
-	v->FabricAndDRAMBandwidthPerState[2] = 0;
-	v->FabricAndDRAMBandwidthPerState[1] = 0;
-	v->FabricAndDRAMBandwidthPerState[0] = 0;
-
-	if (soc->vmin.dram_bw_per_chan_gbps > 0) {
-		v->FabricAndDRAMBandwidthPerState[5] = soc->vmin.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[4] = soc->vmin.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[3] = soc->vmin.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[2] = soc->vmin.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[1] = soc->vmin.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[0] = soc->vmin.dram_bw_per_chan_gbps;
-	}
-
-	if (soc->vmid.dram_bw_per_chan_gbps > 0) {
-		v->FabricAndDRAMBandwidthPerState[5] = soc->vmid.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[4] = soc->vmid.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[3] = soc->vmid.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[2] = soc->vmid.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[1] = soc->vmid.dram_bw_per_chan_gbps;
-	}
-
-	if (soc->vnom.dram_bw_per_chan_gbps > 0) {
-		v->FabricAndDRAMBandwidthPerState[5] = soc->vnom.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[4] = soc->vnom.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[3] = soc->vnom.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[2] = soc->vnom.dram_bw_per_chan_gbps;
-	}
-
-	if (soc->vmax.dram_bw_per_chan_gbps > 0) {
-		v->FabricAndDRAMBandwidthPerState[5] = soc->vmax.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[4] = soc->vmax.dram_bw_per_chan_gbps;
-		v->FabricAndDRAMBandwidthPerState[3] = soc->vmax.dram_bw_per_chan_gbps;
-	}
-
-	v->PHYCLKPerState[5] = 0;
-	v->PHYCLKPerState[4] = 0;
-	v->PHYCLKPerState[3] = 0;
-	v->PHYCLKPerState[2] = 0;
-	v->PHYCLKPerState[1] = 0;
-	v->PHYCLKPerState[0] = 0;
-
-	if (soc->vmin.phyclk_mhz > 0) {
-		v->PHYCLKPerState[5] = soc->vmin.phyclk_mhz;
-		v->PHYCLKPerState[4] = soc->vmin.phyclk_mhz;
-		v->PHYCLKPerState[3] = soc->vmin.phyclk_mhz;
-		v->PHYCLKPerState[2] = soc->vmin.phyclk_mhz;
-		v->PHYCLKPerState[1] = soc->vmin.phyclk_mhz;
-		v->PHYCLKPerState[0] = soc->vmin.phyclk_mhz;
-	}
-
-	if (soc->vmid.phyclk_mhz > 0) {
-		v->PHYCLKPerState[5] = soc->vmid.phyclk_mhz;
-		v->PHYCLKPerState[4] = soc->vmid.phyclk_mhz;
-		v->PHYCLKPerState[3] = soc->vmid.phyclk_mhz;
-		v->PHYCLKPerState[2] = soc->vmid.phyclk_mhz;
-		v->PHYCLKPerState[1] = soc->vmid.phyclk_mhz;
-	}
-
-	if (soc->vnom.phyclk_mhz > 0) {
-		v->PHYCLKPerState[5] = soc->vnom.phyclk_mhz;
-		v->PHYCLKPerState[4] = soc->vnom.phyclk_mhz;
-		v->PHYCLKPerState[3] = soc->vnom.phyclk_mhz;
-		v->PHYCLKPerState[2] = soc->vnom.phyclk_mhz;
-	}
-
-	if (soc->vmax.phyclk_mhz > 0) {
-		v->PHYCLKPerState[5] = soc->vmax.phyclk_mhz;
-		v->PHYCLKPerState[4] = soc->vmax.phyclk_mhz;
-		v->PHYCLKPerState[3] = soc->vmax.phyclk_mhz;
-	}
-
-	v->MaxDispclk[5] = 0;
-	v->MaxDispclk[4] = 0;
-	v->MaxDispclk[3] = 0;
-	v->MaxDispclk[2] = 0;
-	v->MaxDispclk[1] = 0;
-	v->MaxDispclk[0] = 0;
-
-	if (soc->vmin.dispclk_mhz > 0) {
-		v->MaxDispclk[5] = soc->vmin.dispclk_mhz;
-		v->MaxDispclk[4] = soc->vmin.dispclk_mhz;
-		v->MaxDispclk[3] = soc->vmin.dispclk_mhz;
-		v->MaxDispclk[2] = soc->vmin.dispclk_mhz;
-		v->MaxDispclk[1] = soc->vmin.dispclk_mhz;
-		v->MaxDispclk[0] = soc->vmin.dispclk_mhz;
-	}
-
-	if (soc->vmid.dispclk_mhz > 0) {
-		v->MaxDispclk[5] = soc->vmid.dispclk_mhz;
-		v->MaxDispclk[4] = soc->vmid.dispclk_mhz;
-		v->MaxDispclk[3] = soc->vmid.dispclk_mhz;
-		v->MaxDispclk[2] = soc->vmid.dispclk_mhz;
-		v->MaxDispclk[1] = soc->vmid.dispclk_mhz;
-	}
-
-	if (soc->vnom.dispclk_mhz > 0) {
-		v->MaxDispclk[5] = soc->vnom.dispclk_mhz;
-		v->MaxDispclk[4] = soc->vnom.dispclk_mhz;
-		v->MaxDispclk[3] = soc->vnom.dispclk_mhz;
-		v->MaxDispclk[2] = soc->vnom.dispclk_mhz;
-	}
-
-	if (soc->vmax.dispclk_mhz > 0) {
-		v->MaxDispclk[5] = soc->vmax.dispclk_mhz;
-		v->MaxDispclk[4] = soc->vmax.dispclk_mhz;
-		v->MaxDispclk[3] = soc->vmax.dispclk_mhz;
-	}
-
-	v->MaxDppclk[5] = 0;
-	v->MaxDppclk[4] = 0;
-	v->MaxDppclk[3] = 0;
-	v->MaxDppclk[2] = 0;
-	v->MaxDppclk[1] = 0;
-	v->MaxDppclk[0] = 0;
-
-	if (soc->vmin.dppclk_mhz > 0) {
-		v->MaxDppclk[5] = soc->vmin.dppclk_mhz;
-		v->MaxDppclk[4] = soc->vmin.dppclk_mhz;
-		v->MaxDppclk[3] = soc->vmin.dppclk_mhz;
-		v->MaxDppclk[2] = soc->vmin.dppclk_mhz;
-		v->MaxDppclk[1] = soc->vmin.dppclk_mhz;
-		v->MaxDppclk[0] = soc->vmin.dppclk_mhz;
-	}
-
-	if (soc->vmid.dppclk_mhz > 0) {
-		v->MaxDppclk[5] = soc->vmid.dppclk_mhz;
-		v->MaxDppclk[4] = soc->vmid.dppclk_mhz;
-		v->MaxDppclk[3] = soc->vmid.dppclk_mhz;
-		v->MaxDppclk[2] = soc->vmid.dppclk_mhz;
-		v->MaxDppclk[1] = soc->vmid.dppclk_mhz;
-	}
-
-	if (soc->vnom.dppclk_mhz > 0) {
-		v->MaxDppclk[5] = soc->vnom.dppclk_mhz;
-		v->MaxDppclk[4] = soc->vnom.dppclk_mhz;
-		v->MaxDppclk[3] = soc->vnom.dppclk_mhz;
-		v->MaxDppclk[2] = soc->vnom.dppclk_mhz;
-	}
-
-	if (soc->vmax.dppclk_mhz > 0) {
-		v->MaxDppclk[5] = soc->vmax.dppclk_mhz;
-		v->MaxDppclk[4] = soc->vmax.dppclk_mhz;
-		v->MaxDppclk[3] = soc->vmax.dppclk_mhz;
-	}
-
-	if (me->voltage_override == dm_vmax) {
-		v->VoltageOverrideLevel = NumberOfStates - 1;
-	} else if (me->voltage_override == dm_vnom) {
-		v->VoltageOverrideLevel = NumberOfStates - 2;
-	} else if (me->voltage_override == dm_vmid) {
-		v->VoltageOverrideLevel = NumberOfStates - 3;
-	} else {
-		v->VoltageOverrideLevel = 0;
-	}
-
-	// Scale Ratio Support Check
-
-	v->ScaleRatioSupport = 1;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-				e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-		struct _vcs_dpi_scaler_taps_st scale_taps =
-				e2e[v->planes[k].e2e_index].pipe.scale_taps;
-		struct _vcs_dpi_display_pipe_source_params_st src =
-				e2e[v->planes[k].e2e_index].pipe.src;
-
-		if (scale_ratio_depth.hscl_ratio > ip->max_hscl_ratio
-				|| scale_ratio_depth.vscl_ratio > ip->max_vscl_ratio
-				|| scale_ratio_depth.hscl_ratio > scale_taps.htaps
-				|| scale_ratio_depth.vscl_ratio > scale_taps.vtaps
-				|| (src.source_format != dm_444_64 && src.source_format != dm_444_32
-						&& src.source_format != dm_444_16
-						&& ((scale_ratio_depth.hscl_ratio / 2
-								> scale_taps.htaps_c)
-								|| (scale_ratio_depth.vscl_ratio / 2
-										> scale_taps.vtaps_c))))
-
-				{
-			v->ScaleRatioSupport = 0;
-		}
-	}
-
-	// Source Format, Pixel Format and Scan Support Check
-
-	v->SourceFormatPixelAndScanSupport = 1;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_source_params_st src =
-				e2e[v->planes[k].e2e_index].pipe.src;
-
-		if ((src.sw_mode == dm_sw_linear && src.source_scan != dm_horz)
-				|| ((src.sw_mode == dm_sw_4kb_d || src.sw_mode == dm_sw_4kb_d_x
-						|| src.sw_mode == dm_sw_64kb_d
-						|| src.sw_mode == dm_sw_64kb_d_t
-						|| src.sw_mode == dm_sw_64kb_d_x
-						|| src.sw_mode == dm_sw_var_d
-						|| src.sw_mode == dm_sw_var_d_x)
-						&& (src.source_format != dm_444_64))) {
-			v->SourceFormatPixelAndScanSupport = 0;
-		}
-	}
-
-	// Bandwidth Support Check
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_source_params_st src =
-				e2e[v->planes[k].e2e_index].pipe.src;
-
-		if (src.source_scan == dm_horz) {
-			v->SwathWidthYSingleDPP[k] = src.viewport_width;
-		} else {
-			v->SwathWidthYSingleDPP[k] = src.viewport_height;
-		}
-
-		if (src.source_format == dm_444_64) {
-			v->BytePerPixelInDETY[k] = 8;
-			v->BytePerPixelInDETC[k] = 0;
-		} else if (src.source_format == dm_444_32) {
-			v->BytePerPixelInDETY[k] = 4;
-			v->BytePerPixelInDETC[k] = 0;
-		} else if (src.source_format == dm_444_16) {
-			v->BytePerPixelInDETY[k] = 2;
-			v->BytePerPixelInDETC[k] = 0;
-		} else if (src.source_format == dm_420_8) {
-			v->BytePerPixelInDETY[k] = 1;
-			v->BytePerPixelInDETC[k] = 2;
-		} else {
-			v->BytePerPixelInDETY[k] = 4.00 / 3.00;
-			v->BytePerPixelInDETC[k] = 8.00 / 3.00;
-		}
-	}
-
-	v->TotalReadBandwidthConsumedGBytePerSecond = 0;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_source_params_st src =
-				e2e[v->planes[k].e2e_index].pipe.src;
-		struct _vcs_dpi_display_pipe_dest_params_st dest =
-				e2e[v->planes[k].e2e_index].pipe.dest;
-		struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-				e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-
-		v->ReadBandwidth[k] =
-				v->SwathWidthYSingleDPP[k]
-						* (dml_ceil_ex(v->BytePerPixelInDETY[k], 1)
-								* scale_ratio_depth.vscl_ratio
-								+ (dml_ceil_ex(
-										v->BytePerPixelInDETC[k],
-										2) / 2)
-										* (scale_ratio_depth.vscl_ratio
-												/ 2))
-						/ (dest.htotal / dest.pixel_rate_mhz);
-
-		if (src.dcc == 1) {
-			v->ReadBandwidth[k] = v->ReadBandwidth[k] * (1 + 1 / 256);
-		}
-
-		if (ip->pte_enable == 1 && src.source_scan != dm_horz
-				&& (src.sw_mode == dm_sw_4kb_s || src.sw_mode == dm_sw_4kb_s_x
-						|| src.sw_mode == dm_sw_4kb_d
-						|| src.sw_mode == dm_sw_4kb_d_x)) {
-			v->ReadBandwidth[k] = v->ReadBandwidth[k] * (1 + 1 / 64);
-		} else if (ip->pte_enable == 1 && src.source_scan == dm_horz
-				&& (src.source_format == dm_444_64 || src.source_format == dm_444_32)
-				&& (src.sw_mode == dm_sw_64kb_s || src.sw_mode == dm_sw_64kb_s_t
-						|| src.sw_mode == dm_sw_64kb_s_x
-						|| src.sw_mode == dm_sw_64kb_d
-						|| src.sw_mode == dm_sw_64kb_d_t
-						|| src.sw_mode == dm_sw_64kb_d_x)) {
-			v->ReadBandwidth[k] = v->ReadBandwidth[k] * (1 + 1 / 256);
-		} else if (ip->pte_enable == 1) {
-			v->ReadBandwidth[k] = v->ReadBandwidth[k] * (1 + 1 / 512);
-		}
-
-		v->TotalReadBandwidthConsumedGBytePerSecond =
-				v->TotalReadBandwidthConsumedGBytePerSecond
-						+ v->ReadBandwidth[k] / 1000;
-	}
-
-	v->TotalWriteBandwidthConsumedGBytePerSecond = 0;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_dest_params_st dest =
-				e2e[v->planes[k].e2e_index].pipe.dest;
-		struct _vcs_dpi_display_output_params_st dout = e2e[v->planes[k].e2e_index].dout;
-
-		if (dout.output_type == dm_wb && dout.output_format == dm_444) {
-			v->WriteBandwidth[k] = dest.recout_width
-					/ (dest.htotal / dest.pixel_rate_mhz) * 4;
-		} else if (dout.output_type == dm_wb) {
-			v->WriteBandwidth[k] = dest.recout_width
-					/ (dest.htotal / dest.pixel_rate_mhz) * 1.5;
-		} else {
-			v->WriteBandwidth[k] = 0;
-		}
-
-		v->TotalWriteBandwidthConsumedGBytePerSecond =
-				v->TotalWriteBandwidthConsumedGBytePerSecond
-						+ v->WriteBandwidth[k] / 1000;
-	}
-
-	v->TotalBandwidthConsumedGBytePerSecond = v->TotalReadBandwidthConsumedGBytePerSecond
-			+ v->TotalWriteBandwidthConsumedGBytePerSecond;
-
-	v->DCCEnabledInAnyPlane = 0;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_source_params_st src =
-				e2e[v->planes[k].e2e_index].pipe.src;
-
-		if (src.dcc == 1) {
-			v->DCCEnabledInAnyPlane = 1;
-		}
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		v->ReturnBWToDCNPerState = dml_min(
-				soc->return_bus_width_bytes * v->DCFCLKPerState[i],
-				v->FabricAndDRAMBandwidthPerState[i] * 1000
-						* soc->ideal_dram_bw_after_urgent_percent / 100);
-
-		v->ReturnBWPerState[i] = v->ReturnBWToDCNPerState;
-
-		if (v->DCCEnabledInAnyPlane == 1
-				&& v->ReturnBWToDCNPerState
-						> (v->DCFCLKPerState[i]
-								* soc->return_bus_width_bytes / 4)) {
-			v->ReturnBWPerState[i] =
-					dml_min(
-							v->ReturnBWPerState[i],
-							v->ReturnBWToDCNPerState * 4
-									* (1
-											- soc->urgent_latency_us
-													/ ((ip->rob_buffer_size_kbytes
-															- ip->pixel_chunk_size_kbytes)
-															* 1024
-															/ (v->ReturnBWToDCNPerState
-																	- v->DCFCLKPerState[i]
-																			* soc->return_bus_width_bytes
-																			/ 4)
-															+ soc->urgent_latency_us)));
-		}
-
-		v->CriticalPoint = 2 * soc->return_bus_width_bytes * v->DCFCLKPerState[i]
-				* soc->urgent_latency_us
-				/ (v->ReturnBWToDCNPerState * soc->urgent_latency_us
-						+ (ip->rob_buffer_size_kbytes
-								- ip->pixel_chunk_size_kbytes)
-								* 1024);
-
-		if (v->DCCEnabledInAnyPlane == 1 && v->CriticalPoint > 1 && v->CriticalPoint < 4) {
-			v->ReturnBWPerState[i] =
-					dml_min(
-							v->ReturnBWPerState[i],
-							4 * v->ReturnBWToDCNPerState
-									* (ip->rob_buffer_size_kbytes
-											- ip->pixel_chunk_size_kbytes)
-									* 1024
-									* soc->return_bus_width_bytes
-									* v->DCFCLKPerState[i]
-									* soc->urgent_latency_us
-									/ dml_pow(
-											(v->ReturnBWToDCNPerState
-													* soc->urgent_latency_us
-													+ (ip->rob_buffer_size_kbytes
-															- ip->pixel_chunk_size_kbytes)
-															* 1024),
-											2));
-		}
-
-		v->ReturnBWToDCNPerState = dml_min(
-				soc->return_bus_width_bytes * v->DCFCLKPerState[i],
-				v->FabricAndDRAMBandwidthPerState[i] * 1000);
-
-		if (v->DCCEnabledInAnyPlane == 1
-				&& v->ReturnBWToDCNPerState
-						> (v->DCFCLKPerState[i]
-								* soc->return_bus_width_bytes / 4)) {
-			v->ReturnBWPerState[i] =
-					dml_min(
-							v->ReturnBWPerState[i],
-							v->ReturnBWToDCNPerState * 4
-									* (1
-											- soc->urgent_latency_us
-													/ ((ip->rob_buffer_size_kbytes
-															- ip->pixel_chunk_size_kbytes)
-															* 1024
-															/ (v->ReturnBWToDCNPerState
-																	- v->DCFCLKPerState[i]
-																			* soc->return_bus_width_bytes
-																			/ 4)
-															+ soc->urgent_latency_us)));
-		}
-
-		v->CriticalPoint = 2 * soc->return_bus_width_bytes * v->DCFCLKPerState[i]
-				* soc->urgent_latency_us
-				/ (v->ReturnBWToDCNPerState * soc->urgent_latency_us
-						+ (ip->rob_buffer_size_kbytes
-								- ip->pixel_chunk_size_kbytes)
-								* 1024);
-
-		if (v->DCCEnabledInAnyPlane == 1 && v->CriticalPoint > 1 && v->CriticalPoint < 4) {
-			v->ReturnBWPerState[i] =
-					dml_min(
-							v->ReturnBWPerState[i],
-							4 * v->ReturnBWToDCNPerState
-									* (ip->rob_buffer_size_kbytes
-											- ip->pixel_chunk_size_kbytes)
-									* 1024
-									* soc->return_bus_width_bytes
-									* v->DCFCLKPerState[i]
-									* soc->urgent_latency_us
-									/ dml_pow(
-											(v->ReturnBWToDCNPerState
-													* soc->urgent_latency_us
-													+ (ip->rob_buffer_size_kbytes
-															- ip->pixel_chunk_size_kbytes)
-															* 1024),
-											2));
-		}
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		if ((v->TotalReadBandwidthConsumedGBytePerSecond * 1000 <= v->ReturnBWPerState[i])
-				&& (v->TotalBandwidthConsumedGBytePerSecond * 1000
-						<= v->FabricAndDRAMBandwidthPerState[i] * 1000
-								* soc->ideal_dram_bw_after_urgent_percent
-								/ 100)) {
-			v->BandwidthSupport[i] = 1;
-		} else {
-			v->BandwidthSupport[i] = 0;
-		}
-	}
-
-	// Writeback Latency support check
-
-	v->WritebackLatencySupport = 1;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_dest_params_st dest =
-				e2e[v->planes[k].e2e_index].pipe.dest;
-		struct _vcs_dpi_display_output_params_st dout = e2e[v->planes[k].e2e_index].dout;
-
-		if (dout.output_type == dm_wb && dout.output_format == dm_444
-				&& (dest.recout_width / (dest.htotal / dest.pixel_rate_mhz) * 4)
-						> ((ip->writeback_luma_buffer_size_kbytes
-								+ ip->writeback_chroma_buffer_size_kbytes)
-								* 1024 / soc->writeback_latency_us)) {
-			v->WritebackLatencySupport = 0;
-		} else if (dout.output_type == dm_wb
-				&& (dest.recout_width / (dest.htotal / dest.pixel_rate_mhz))
-						> (dml_min(
-								ip->writeback_luma_buffer_size_kbytes,
-								2
-										* ip->writeback_chroma_buffer_size_kbytes)
-								* 1024 / soc->writeback_latency_us)) {
-			v->WritebackLatencySupport = 0;
-		}
-	}
-
-	// Re-ordering Buffer Support Check
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		v->UrgentRoundTripAndOutOfOrderLatencyPerState[i] =
-				(soc->round_trip_ping_latency_dcfclk_cycles + 32)
-						/ v->DCFCLKPerState[i]
-						+ soc->urgent_out_of_order_return_per_channel_bytes
-								* soc->num_chans
-								/ v->ReturnBWPerState[i];
-
-		if ((ip->rob_buffer_size_kbytes - ip->pixel_chunk_size_kbytes) * 1024
-				/ v->ReturnBWPerState[i]
-				> v->UrgentRoundTripAndOutOfOrderLatencyPerState[i]) {
-			v->ROBSupport[i] = 1;
-		} else {
-			v->ROBSupport[i] = 0;
-		}
-	}
-
-	// Display IO Support Check
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_dest_params_st dest =
-				e2e[v->planes[k].e2e_index].pipe.dest;
-		struct _vcs_dpi_display_output_params_st dout = e2e[v->planes[k].e2e_index].dout;
-
-		if (dout.output_format == dm_420) {
-			v->RequiredOutputBW = dest.pixel_rate_mhz * 3 / 2;
-		} else {
-			v->RequiredOutputBW = dest.pixel_rate_mhz * 3;
-		}
-
-		if (dout.output_type == dm_hdmi) {
-			v->RequiredPHYCLK[k] = v->RequiredOutputBW / 3;
-		} else if (dout.output_type == dm_dp) {
-			v->RequiredPHYCLK[k] = v->RequiredOutputBW / 4;
-		} else {
-			v->RequiredPHYCLK[k] = 0;
-		}
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		v->DIOSupport[i] = 1;
-
-		for (k = 0; k < num_planes; k++) {
-			struct _vcs_dpi_display_output_params_st dout =
-					e2e[v->planes[k].e2e_index].dout;
-
-			if ((v->RequiredPHYCLK[k] > v->PHYCLKPerState[i])
-					|| (dout.output_type == dm_hdmi
-							&& v->RequiredPHYCLK[k] > 600)) {
-				v->DIOSupport[i] = 0;
-			}
-		}
-	}
-
-	// Total Available Writeback Support Check
-
-	v->TotalNumberOfActiveWriteback = 0;
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_output_params_st dout = e2e[v->planes[k].e2e_index].dout;
-
-		if (dout.output_type == dm_wb) {
-			v->TotalNumberOfActiveWriteback = v->TotalNumberOfActiveWriteback + 1;
-		}
-	}
-
-	if (v->TotalNumberOfActiveWriteback <= ip->max_num_wb) {
-		v->TotalAvailableWritebackSupport = 1;
-	} else {
-		v->TotalAvailableWritebackSupport = 0;
-	}
-
-	// Maximum DISPCLK/DPPCLK Support check
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_dest_params_st dest =
-				e2e[v->planes[k].e2e_index].pipe.dest;
-		struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-				e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-		struct _vcs_dpi_scaler_taps_st scale_taps =
-				e2e[v->planes[k].e2e_index].pipe.scale_taps;
-
-		if (scale_ratio_depth.hscl_ratio > 1) {
-			v->PSCL_FACTOR[k] = dml_min(
-					ip->max_dchub_pscl_bw_pix_per_clk,
-					ip->max_pscl_lb_bw_pix_per_clk
-							* scale_ratio_depth.hscl_ratio
-							/ dml_ceil_ex(scale_taps.htaps / 6, 1));
-		} else {
-			v->PSCL_FACTOR[k] = dml_min(
-					ip->max_dchub_pscl_bw_pix_per_clk,
-					ip->max_pscl_lb_bw_pix_per_clk);
-		}
-
-		if (v->BytePerPixelInDETC[k] == 0) {
-			v->PSCL_FACTOR_CHROMA[k] = 0;
-			v->MinDPPCLKUsingSingleDPP[k] =
-					dest.pixel_rate_mhz
-							* dml_max(
-									scale_taps.vtaps / 6
-											* dml_min(
-													1,
-													scale_ratio_depth.hscl_ratio),
-									dml_max(
-											scale_ratio_depth.hscl_ratio
-													* scale_ratio_depth.vscl_ratio
-													/ v->PSCL_FACTOR[k],
-											1));
-
-		} else {
-			if (scale_ratio_depth.hscl_ratio / 2 > 1) {
-				v->PSCL_FACTOR_CHROMA[k] = dml_min(
-						ip->max_dchub_pscl_bw_pix_per_clk,
-						ip->max_pscl_lb_bw_pix_per_clk
-								* scale_ratio_depth.hscl_ratio / 2
-								/ dml_ceil_ex(
-										scale_taps.htaps_c
-												/ 6,
-										1));
-			} else {
-				v->PSCL_FACTOR_CHROMA[k] = dml_min(
-						ip->max_dchub_pscl_bw_pix_per_clk,
-						ip->max_pscl_lb_bw_pix_per_clk);
-			}
-			v->MinDPPCLKUsingSingleDPP[k] =
-					dest.pixel_rate_mhz
-							* dml_max(
-									dml_max(
-											scale_taps.vtaps
-													/ 6
-													* dml_min(
-															1,
-															scale_ratio_depth.hscl_ratio),
-											scale_ratio_depth.hscl_ratio
-													* scale_ratio_depth.vscl_ratio
-													/ v->PSCL_FACTOR[k]),
-									dml_max(
-											dml_max(
-													scale_taps.vtaps_c
-															/ 6
-															* dml_min(
-																	1,
-																	scale_ratio_depth.hscl_ratio
-																			/ 2),
-													scale_ratio_depth.hscl_ratio
-															* scale_ratio_depth.vscl_ratio
-															/ 4
-															/ v->PSCL_FACTOR_CHROMA[k]),
-											1));
-
-		}
-	}
-
-	for (k = 0; k < num_planes; k++) {
-		struct _vcs_dpi_display_pipe_source_params_st src =
-				e2e[v->planes[k].e2e_index].pipe.src;
-		struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-				e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-		struct _vcs_dpi_scaler_taps_st scale_taps =
-				e2e[v->planes[k].e2e_index].pipe.scale_taps;
-
-		if (src.source_format == dm_444_64 || src.source_format == dm_444_32
-				|| src.source_format == dm_444_16) {
-			if (src.sw_mode == dm_sw_linear) {
-				v->Read256BlockHeightY[k] = 1;
-			} else if (src.source_format == dm_444_64) {
-				v->Read256BlockHeightY[k] = 4;
-			} else {
-				v->Read256BlockHeightY[k] = 8;
-			}
-
-			v->Read256BlockWidthY[k] = 256 / dml_ceil_ex(v->BytePerPixelInDETY[k], 1)
-					/ v->Read256BlockHeightY[k];
-			v->Read256BlockHeightC[k] = 0;
-			v->Read256BlockWidthC[k] = 0;
-		} else {
-			if (src.sw_mode == dm_sw_linear) {
-				v->Read256BlockHeightY[k] = 1;
-				v->Read256BlockHeightC[k] = 1;
-			} else if (src.source_format == dm_420_8) {
-				v->Read256BlockHeightY[k] = 16;
-				v->Read256BlockHeightC[k] = 8;
-			} else {
-				v->Read256BlockHeightY[k] = 8;
-				v->Read256BlockHeightC[k] = 8;
-			}
-
-			v->Read256BlockWidthY[k] = 256 / dml_ceil_ex(v->BytePerPixelInDETY[k], 1)
-					/ v->Read256BlockHeightY[k];
-			v->Read256BlockWidthC[k] = 256 / dml_ceil_ex(v->BytePerPixelInDETC[k], 2)
-					/ v->Read256BlockHeightC[k];
-		}
-
-		if (src.source_scan == dm_horz) {
-			v->MaxSwathHeightY[k] = v->Read256BlockHeightY[k];
-			v->MaxSwathHeightC[k] = v->Read256BlockHeightC[k];
-		} else {
-			v->MaxSwathHeightY[k] = v->Read256BlockWidthY[k];
-			v->MaxSwathHeightC[k] = v->Read256BlockWidthC[k];
-		}
-
-		if (src.source_format == dm_444_64 || src.source_format == dm_444_32
-				|| src.source_format == dm_444_16) {
-			if (src.sw_mode == dm_sw_linear
-					|| (src.source_format == dm_444_64
-							&& (src.sw_mode == dm_sw_4kb_s
-									|| src.sw_mode
-											== dm_sw_4kb_s_x
-									|| src.sw_mode
-											== dm_sw_64kb_s
-									|| src.sw_mode
-											== dm_sw_64kb_s_t
-									|| src.sw_mode
-											== dm_sw_64kb_s_x
-									|| src.sw_mode
-											== dm_sw_var_s
-									|| src.sw_mode
-											== dm_sw_var_s_x)
-							&& src.source_scan == dm_horz)) {
-				v->MinSwathHeightY[k] = v->MaxSwathHeightY[k];
-			} else {
-				v->MinSwathHeightY[k] = v->MaxSwathHeightY[k] / 2;
-			}
-			v->MinSwathHeightC[k] = v->MaxSwathHeightC[k];
-		} else {
-			if (src.sw_mode == dm_sw_linear) {
-				v->MinSwathHeightY[k] = v->MaxSwathHeightY[k];
-				v->MinSwathHeightC[k] = v->MaxSwathHeightC[k];
-			} else if (src.source_format == dm_420_8 && src.source_scan == dm_horz) {
-				v->MinSwathHeightY[k] = v->MaxSwathHeightY[k] / 2;
-				if (ip->bug_forcing_LC_req_same_size_fixed == 1) {
-					v->MinSwathHeightC[k] = v->MaxSwathHeightC[k];
-				} else {
-					v->MinSwathHeightC[k] = v->MaxSwathHeightC[k] / 2;
-				}
-			} else if (src.source_format == dm_420_10 && src.source_scan == dm_horz) {
-				v->MinSwathHeightC[k] = v->MaxSwathHeightC[k] / 2;
-				if (ip->bug_forcing_LC_req_same_size_fixed == 1) {
-					v->MinSwathHeightY[k] = v->MaxSwathHeightY[k];
-				} else {
-					v->MinSwathHeightY[k] = v->MaxSwathHeightY[k] / 2;
-				}
-			} else {
-				v->MinSwathHeightY[k] = v->MaxSwathHeightY[k];
-				v->MinSwathHeightC[k] = v->MaxSwathHeightC[k];
-			}
-		}
-
-		if (src.sw_mode == dm_sw_linear) {
-			v->MaximumSwathWidth = 8192;
-		} else {
-			v->MaximumSwathWidth = 5120;
-		}
-
-		v->NumberOfDPPRequiredForDETSize =
-				dml_ceil_ex(
-						v->SwathWidthYSingleDPP[k]
-								/ dml_min(
-										v->MaximumSwathWidth,
-										ip->det_buffer_size_kbytes
-												* 1024
-												/ 2
-												/ (v->BytePerPixelInDETY[k]
-														* v->MinSwathHeightY[k]
-														+ v->BytePerPixelInDETC[k]
-																/ 2
-																* v->MinSwathHeightC[k])),
-						1);
-
-		if (v->BytePerPixelInDETC[k] == 0) {
-			v->NumberOfDPPRequiredForLBSize =
-					dml_ceil_ex(
-							(scale_taps.vtaps
-									+ dml_max(
-											dml_ceil_ex(
-													scale_ratio_depth.vscl_ratio,
-													1)
-													- 2,
-											0))
-									* v->SwathWidthYSingleDPP[k]
-									/ dml_max(
-											scale_ratio_depth.hscl_ratio,
-											1)
-									* scale_ratio_depth.lb_depth
-									/ ip->line_buffer_size_bits,
-							1);
-		} else {
-			v->NumberOfDPPRequiredForLBSize =
-					dml_max(
-							dml_ceil_ex(
-									(scale_taps.vtaps
-											+ dml_max(
-													dml_ceil_ex(
-															scale_ratio_depth.vscl_ratio,
-															1)
-															- 2,
-													0))
-											* v->SwathWidthYSingleDPP[k]
-											/ dml_max(
-													scale_ratio_depth.hscl_ratio,
-													1)
-											* scale_ratio_depth.lb_depth
-											/ ip->line_buffer_size_bits,
-									1),
-							dml_ceil_ex(
-									(scale_taps.vtaps_c
-											+ dml_max(
-													dml_ceil_ex(
-															scale_ratio_depth.vscl_ratio
-																	/ 2,
-															1)
-															- 2,
-													0))
-											* v->SwathWidthYSingleDPP[k]
-											/ 2
-											/ dml_max(
-													scale_ratio_depth.hscl_ratio
-															/ 2,
-													1)
-											* scale_ratio_depth.lb_depth
-											/ ip->line_buffer_size_bits,
-									1));
-		}
-
-		v->NumberOfDPPRequiredForDETAndLBSize[k] = dml_max(
-				v->NumberOfDPPRequiredForDETSize,
-				v->NumberOfDPPRequiredForLBSize);
-
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		for (j = 0; j < 2; j++) {
-			v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo + i] = 0;
-			v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] = 0;
-			v->DISPCLK_DPPCLK_Support[j * NumberOfStatesPlusTwo + i] = 1;
-
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_dest_params_st dest =
-						e2e[v->planes[k].e2e_index].pipe.dest;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				v->MinDispclkUsingSingleDPP = dml_max(
-						dest.pixel_rate_mhz,
-						v->MinDPPCLKUsingSingleDPP[k] * (j + 1))
-						* (1 + soc->downspread_percent / 100);
-				v->MinDispclkUsingDualDPP = dml_max(
-						dest.pixel_rate_mhz,
-						v->MinDPPCLKUsingSingleDPP[k] / 2 * (j + 1))
-						* (1 + soc->downspread_percent / 100);
-
-				if (i < NumberOfStates) {
-					v->MinDispclkUsingSingleDPP =
-							v->MinDispclkUsingSingleDPP
-									* (1
-											+ ip->dispclk_ramp_margin_percent
-													/ 100);
-					v->MinDispclkUsingDualDPP =
-							v->MinDispclkUsingDualDPP
-									* (1
-											+ ip->dispclk_ramp_margin_percent
-													/ 100);
-				}
-
-				if (v->MinDispclkUsingSingleDPP
-						<= dml_min(
-								v->MaxDispclk[i],
-								(j + 1) * v->MaxDppclk[i])
-						&& v->NumberOfDPPRequiredForDETAndLBSize[k] <= 1) {
-					v->NoOfDPP[ijk] = 1;
-					v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] = dml_max(
-							v->RequiredDISPCLK[j * NumberOfStatesPlusTwo
-									+ i],
-							v->MinDispclkUsingSingleDPP);
-				} else if (v->MinDispclkUsingDualDPP
-						<= dml_min(
-								v->MaxDispclk[i],
-								(j + 1) * v->MaxDppclk[i])) {
-					v->NoOfDPP[ijk] = 2;
-					v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] = dml_max(
-							v->RequiredDISPCLK[j * NumberOfStatesPlusTwo
-									+ i],
-							v->MinDispclkUsingDualDPP);
-				} else {
-					v->NoOfDPP[ijk] = 2;
-					v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] = dml_max(
-							v->RequiredDISPCLK[j * NumberOfStatesPlusTwo
-									+ i],
-							v->MinDispclkUsingDualDPP);
-					v->DISPCLK_DPPCLK_Support[j * NumberOfStatesPlusTwo + i] =
-							0;
-				}
-
-				v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo + i] =
-						v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo
-								+ i] + v->NoOfDPP[ijk];
-			}
-
-			if (v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo + i]
-					> ip->max_num_dpp) {
-				v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo + i] = 0;
-				v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] = 0;
-				v->DISPCLK_DPPCLK_Support[j * NumberOfStatesPlusTwo + i] = 1;
-
-				for (k = 0; k < num_planes; k++) {
-					struct _vcs_dpi_display_pipe_dest_params_st dest =
-							e2e[v->planes[k].e2e_index].pipe.dest;
-					ijk = k * 2 * NumberOfStatesPlusTwo
-							+ j * NumberOfStatesPlusTwo + i;
-
-					v->MinDispclkUsingSingleDPP = dml_max(
-							dest.pixel_rate_mhz,
-							v->MinDPPCLKUsingSingleDPP[k] * (j + 1))
-							* (1 + soc->downspread_percent / 100);
-					v->MinDispclkUsingDualDPP = dml_max(
-							dest.pixel_rate_mhz,
-							v->MinDPPCLKUsingSingleDPP[k] / 2 * (j + 1))
-							* (1 + soc->downspread_percent / 100);
-
-					if (i < NumberOfStates) {
-						v->MinDispclkUsingSingleDPP =
-								v->MinDispclkUsingSingleDPP
-										* (1
-												+ ip->dispclk_ramp_margin_percent
-														/ 100);
-						v->MinDispclkUsingDualDPP =
-								v->MinDispclkUsingDualDPP
-										* (1
-												+ ip->dispclk_ramp_margin_percent
-														/ 100);
-					}
-
-					if (v->NumberOfDPPRequiredForDETAndLBSize[k] <= 1) {
-						v->NoOfDPP[ijk] = 1;
-						v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] =
-								dml_max(
-										v->RequiredDISPCLK[j
-												* NumberOfStatesPlusTwo
-												+ i],
-										v->MinDispclkUsingSingleDPP);
-						if (v->MinDispclkUsingSingleDPP
-								> dml_min(
-										v->MaxDispclk[i],
-										(j + 1)
-												* v->MaxDppclk[i])) {
-							v->DISPCLK_DPPCLK_Support[j
-									* NumberOfStatesPlusTwo + i] =
-									0;
-						}
-					} else {
-						v->NoOfDPP[ijk] = 2;
-						v->RequiredDISPCLK[j * NumberOfStatesPlusTwo + i] =
-								dml_max(
-										v->RequiredDISPCLK[j
-												* NumberOfStatesPlusTwo
-												+ i],
-										v->MinDispclkUsingDualDPP);
-						if (v->MinDispclkUsingDualDPP
-								> dml_min(
-										v->MaxDispclk[i],
-										(j + 1)
-												* v->MaxDppclk[i])) {
-							v->DISPCLK_DPPCLK_Support[j
-									* NumberOfStatesPlusTwo + i] =
-									0;
-						}
-					}
-					v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo + i] =
-							v->TotalNumberOfActiveDPP[j
-									* NumberOfStatesPlusTwo + i]
-									+ v->NoOfDPP[ijk];
-				}
-			}
-		}
-	}
-
-	// Viewport Size Check
-
-	v->ViewportSizeSupport = 1;
-
-	for (k = 0; k < num_planes; k++) {
-		if (v->NumberOfDPPRequiredForDETAndLBSize[k] > 2) {
-			v->ViewportSizeSupport = 0;
-		}
-	}
-
-	// Total Available Pipes Support Check
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		for (j = 0; j < 2; j++) {
-			if (v->TotalNumberOfActiveDPP[j * NumberOfStatesPlusTwo + i]
-					<= ip->max_num_dpp) {
-				v->TotalAvailablePipesSupport[j * NumberOfStatesPlusTwo + i] = 1;
-			} else {
-				v->TotalAvailablePipesSupport[j * NumberOfStatesPlusTwo + i] = 0;
-			}
-		}
-	}
-
-	// Urgent Latency Support Check
-
-	for (j = 0; j < 2; j++) {
-		for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-			ij = j * NumberOfStatesPlusTwo + i;
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-				struct _vcs_dpi_display_pipe_dest_params_st dest =
-						e2e[v->planes[k].e2e_index].pipe.dest;
-				struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-						e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-				struct _vcs_dpi_scaler_taps_st scale_taps =
-						e2e[v->planes[k].e2e_index].pipe.scale_taps;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				v->SwathWidthYPerState[ijk] = v->SwathWidthYSingleDPP[k]
-						/ v->NoOfDPP[ijk];
-
-				v->SwathWidthGranularityY = 256
-						/ dml_ceil_ex(v->BytePerPixelInDETY[k], 1)
-						/ v->MaxSwathHeightY[k];
-				v->RoundedUpMaxSwathSizeBytesY = (dml_ceil_ex(
-						v->SwathWidthYPerState[ijk] - 1,
-						v->SwathWidthGranularityY)
-						+ v->SwathWidthGranularityY)
-						* v->BytePerPixelInDETY[k] * v->MaxSwathHeightY[k];
-				if (src.source_format == dm_420_10) {
-					v->RoundedUpMaxSwathSizeBytesY = dml_ceil_ex(
-							v->RoundedUpMaxSwathSizeBytesY,
-							256) + 256;
-				}
-				if (v->MaxSwathHeightC[k] > 0) {
-					v->SwathWidthGranularityC = 256
-							/ dml_ceil_ex(v->BytePerPixelInDETC[k], 2)
-							/ v->MaxSwathHeightC[k];
-				}
-				v->RoundedUpMaxSwathSizeBytesC = (dml_ceil_ex(
-						v->SwathWidthYPerState[ijk] / 2 - 1,
-						v->SwathWidthGranularityC)
-						+ v->SwathWidthGranularityC)
-						* v->BytePerPixelInDETC[k] * v->MaxSwathHeightC[k];
-				if (src.source_format == dm_420_10) {
-					v->RoundedUpMaxSwathSizeBytesC = dml_ceil_ex(
-							v->RoundedUpMaxSwathSizeBytesC,
-							256) + 256;
-				}
-
-				if (v->RoundedUpMaxSwathSizeBytesY + v->RoundedUpMaxSwathSizeBytesC
-						<= ip->det_buffer_size_kbytes * 1024 / 2) {
-					v->SwathHeightYPerState[ijk] = v->MaxSwathHeightY[k];
-					v->SwathHeightCPerState[ijk] = v->MaxSwathHeightC[k];
-				} else {
-					v->SwathHeightYPerState[ijk] = v->MinSwathHeightY[k];
-					v->SwathHeightCPerState[ijk] = v->MinSwathHeightC[k];
-				}
-
-				if (v->BytePerPixelInDETC[k] == 0) {
-					v->LinesInDETLuma = ip->det_buffer_size_kbytes * 1024
-							/ v->BytePerPixelInDETY[k]
-							/ v->SwathWidthYPerState[ijk];
-
-					v->LinesInDETChroma = 0;
-				} else if (v->SwathHeightYPerState[ijk]
-						<= v->SwathHeightCPerState[ijk]) {
-					v->LinesInDETLuma = ip->det_buffer_size_kbytes * 1024 / 2
-							/ v->BytePerPixelInDETY[k]
-							/ v->SwathWidthYPerState[ijk];
-					v->LinesInDETChroma = ip->det_buffer_size_kbytes * 1024 / 2
-							/ v->BytePerPixelInDETC[k]
-							/ (v->SwathWidthYPerState[ijk] / 2);
-				} else {
-					v->LinesInDETLuma = ip->det_buffer_size_kbytes * 1024 * 2
-							/ 3 / v->BytePerPixelInDETY[k]
-							/ v->SwathWidthYPerState[ijk];
-					v->LinesInDETChroma = ip->det_buffer_size_kbytes * 1024 / 3
-							/ v->BytePerPixelInDETY[k]
-							/ (v->SwathWidthYPerState[ijk] / 2);
-				}
-
-				v->EffectiveLBLatencyHidingSourceLinesLuma =
-						dml_min(
-								ip->max_line_buffer_lines,
-								dml_floor_ex(
-										ip->line_buffer_size_bits
-												/ scale_ratio_depth.lb_depth
-												/ (v->SwathWidthYPerState[ijk]
-														/ dml_max(
-																scale_ratio_depth.hscl_ratio,
-																1)),
-										1))
-								- (scale_taps.vtaps - 1);
-
-				v->EffectiveLBLatencyHidingSourceLinesChroma =
-						dml_min(
-								ip->max_line_buffer_lines,
-								dml_floor_ex(
-										ip->line_buffer_size_bits
-												/ scale_ratio_depth.lb_depth
-												/ (v->SwathWidthYPerState[ijk]
-														/ 2
-														/ dml_max(
-																scale_ratio_depth.hscl_ratio
-																		/ 2,
-																1)),
-										1))
-								- (scale_taps.vtaps_c - 1);
-
-				v->EffectiveDETLBLinesLuma =
-						dml_floor_ex(
-								v->LinesInDETLuma
-										+ dml_min(
-												v->LinesInDETLuma
-														* v->RequiredDISPCLK[ij]
-														* v->BytePerPixelInDETY[k]
-														* v->PSCL_FACTOR[k]
-														/ v->ReturnBWPerState[i],
-												v->EffectiveLBLatencyHidingSourceLinesLuma),
-								v->SwathHeightYPerState[ijk]);
-
-				v->EffectiveDETLBLinesChroma =
-						dml_floor_ex(
-								v->LinesInDETChroma
-										+ dml_min(
-												v->LinesInDETChroma
-														* v->RequiredDISPCLK[ij]
-														* v->BytePerPixelInDETC[k]
-														* v->PSCL_FACTOR_CHROMA[k]
-														/ v->ReturnBWPerState[i],
-												v->EffectiveLBLatencyHidingSourceLinesChroma),
-								v->SwathHeightCPerState[ijk]);
-
-				if (v->BytePerPixelInDETC[k] == 0) {
-					v->UrgentLatencySupportUsPerState[ijk] =
-							v->EffectiveDETLBLinesLuma
-									* (dest.htotal
-											/ dest.pixel_rate_mhz)
-									/ scale_ratio_depth.vscl_ratio
-									- v->EffectiveDETLBLinesLuma
-											* v->SwathWidthYPerState[ijk]
-											* dml_ceil_ex(
-													v->BytePerPixelInDETY[k],
-													1)
-											/ (v->ReturnBWPerState[i]
-													/ v->NoOfDPP[ijk]);
-				} else {
-					v->UrgentLatencySupportUsPerState[ijk] =
-							dml_min(
-									v->EffectiveDETLBLinesLuma
-											* (dest.htotal
-													/ dest.pixel_rate_mhz)
-											/ scale_ratio_depth.vscl_ratio
-											- v->EffectiveDETLBLinesLuma
-													* v->SwathWidthYPerState[ijk]
-													* dml_ceil_ex(
-															v->BytePerPixelInDETY[k],
-															1)
-													/ (v->ReturnBWPerState[i]
-															/ v->NoOfDPP[ijk]),
-									v->EffectiveDETLBLinesChroma
-											* (dest.htotal
-													/ dest.pixel_rate_mhz)
-											/ (scale_ratio_depth.vscl_ratio
-													/ 2)
-											- v->EffectiveDETLBLinesChroma
-													* v->SwathWidthYPerState[ijk]
-													/ 2
-													* dml_ceil_ex(
-															v->BytePerPixelInDETC[k],
-															2)
-													/ (v->ReturnBWPerState[i]
-															/ v->NoOfDPP[ijk]));
-				}
-
-			}
-		}
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		for (j = 0; j < 2; j++) {
-			ij = j * NumberOfStatesPlusTwo + i;
-
-			v->UrgentLatencySupport[ij] = 1;
-			for (k = 0; k < num_planes; k++) {
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (v->UrgentLatencySupportUsPerState[ijk]
-						< soc->urgent_latency_us / 1) {
-					v->UrgentLatencySupport[ij] = 0;
-				}
-			}
-		}
-	}
-
-	// Prefetch Check
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		for (j = 0; j < 2; j++) {
-			ij = j * NumberOfStatesPlusTwo + i;
-
-			v->TotalNumberOfDCCActiveDPP[ij] = 0;
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (src.dcc == 1) {
-					v->TotalNumberOfDCCActiveDPP[ij] =
-							v->TotalNumberOfDCCActiveDPP[ij]
-									+ v->NoOfDPP[ijk];
-				}
-			}
-		}
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		for (j = 0; j < 2; j++) {
-			ij = j * NumberOfStatesPlusTwo + i;
-
-			v->ProjectedDCFCLKDeepSleep = 8;
-
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_dest_params_st dest =
-						e2e[v->planes[k].e2e_index].pipe.dest;
-				struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-						e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				v->ProjectedDCFCLKDeepSleep = dml_max(
-						v->ProjectedDCFCLKDeepSleep,
-						dest.pixel_rate_mhz / 16);
-				if (v->BytePerPixelInDETC[k] == 0) {
-					if (scale_ratio_depth.vscl_ratio <= 1) {
-						v->ProjectedDCFCLKDeepSleep =
-								dml_max(
-										v->ProjectedDCFCLKDeepSleep,
-										1.1
-												* dml_ceil_ex(
-														v->BytePerPixelInDETY[k],
-														1)
-												/ 64
-												* scale_ratio_depth.hscl_ratio
-												* dest.pixel_rate_mhz
-												/ v->NoOfDPP[ijk]);
-					} else {
-						v->ProjectedDCFCLKDeepSleep =
-								dml_max(
-										v->ProjectedDCFCLKDeepSleep,
-										1.1
-												* dml_ceil_ex(
-														v->BytePerPixelInDETY[k],
-														1)
-												/ 64
-												* v->PSCL_FACTOR[k]
-												* v->RequiredDISPCLK[ij]
-												/ (1
-														+ j));
-					}
-
-				} else {
-					if (scale_ratio_depth.vscl_ratio <= 1) {
-						v->ProjectedDCFCLKDeepSleep =
-								dml_max(
-										v->ProjectedDCFCLKDeepSleep,
-										1.1
-												* dml_ceil_ex(
-														v->BytePerPixelInDETY[k],
-														1)
-												/ 32
-												* scale_ratio_depth.hscl_ratio
-												* dest.pixel_rate_mhz
-												/ v->NoOfDPP[ijk]);
-					} else {
-						v->ProjectedDCFCLKDeepSleep =
-								dml_max(
-										v->ProjectedDCFCLKDeepSleep,
-										1.1
-												* dml_ceil_ex(
-														v->BytePerPixelInDETY[k],
-														1)
-												/ 32
-												* v->PSCL_FACTOR[k]
-												* v->RequiredDISPCLK[ij]
-												/ (1
-														+ j));
-					}
-					if ((scale_ratio_depth.vscl_ratio / 2) <= 1) {
-						v->ProjectedDCFCLKDeepSleep =
-								dml_max(
-										v->ProjectedDCFCLKDeepSleep,
-										1.1
-												* dml_ceil_ex(
-														v->BytePerPixelInDETC[k],
-														2)
-												/ 32
-												* scale_ratio_depth.hscl_ratio
-												/ 2
-												* dest.pixel_rate_mhz
-												/ v->NoOfDPP[ijk]);
-					} else {
-						v->ProjectedDCFCLKDeepSleep =
-								dml_max(
-										v->ProjectedDCFCLKDeepSleep,
-										1.1
-												* dml_ceil_ex(
-														v->BytePerPixelInDETC[k],
-														2)
-												/ 32
-												* v->PSCL_FACTOR_CHROMA[k]
-												* v->RequiredDISPCLK[ij]
-												/ (1
-														+ j));
-					}
-
-				}
-			}
-
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-				struct _vcs_dpi_display_pipe_dest_params_st dest =
-						e2e[v->planes[k].e2e_index].pipe.dest;
-				struct _vcs_dpi_scaler_ratio_depth_st scale_ratio_depth =
-						e2e[v->planes[k].e2e_index].pipe.scale_ratio_depth;
-				struct _vcs_dpi_scaler_taps_st scale_taps =
-						e2e[v->planes[k].e2e_index].pipe.scale_taps;
-				struct _vcs_dpi_display_output_params_st dout =
-						e2e[v->planes[k].e2e_index].dout;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (src.dcc == 1) {
-					v->MetaReqHeightY = 8 * v->Read256BlockHeightY[k];
-					v->MetaReqWidthY = 64 * 256
-							/ dml_ceil_ex(v->BytePerPixelInDETY[k], 1)
-							/ v->MetaReqHeightY;
-					v->MetaSurfaceWidthY = dml_ceil_ex(
-							src.viewport_width / v->NoOfDPP[ijk] - 1,
-							v->MetaReqWidthY) + v->MetaReqWidthY;
-					v->MetaSurfaceHeightY = dml_ceil_ex(
-							src.viewport_height - 1,
-							v->MetaReqHeightY) + v->MetaReqHeightY;
-					if (ip->pte_enable == 1) {
-						v->MetaPteBytesPerFrameY =
-								(dml_ceil_ex(
-										(v->MetaSurfaceWidthY
-												* v->MetaSurfaceHeightY
-												* dml_ceil_ex(
-														v->BytePerPixelInDETY[k],
-														1)
-												/ 256.0
-												- 4096)
-												/ 8
-												/ 4096,
-										1) + 1) * 64;
-					} else {
-						v->MetaPteBytesPerFrameY = 0;
-					}
-					if (src.source_scan == dm_horz) {
-						v->MetaRowBytesY =
-								v->MetaSurfaceWidthY
-										* v->MetaReqHeightY
-										* dml_ceil_ex(
-												v->BytePerPixelInDETY[k],
-												1)
-										/ 256;
-					} else {
-						v->MetaRowBytesY =
-								v->MetaSurfaceHeightY
-										* v->MetaReqWidthY
-										* dml_ceil_ex(
-												v->BytePerPixelInDETY[k],
-												1)
-										/ 256;
-					}
-				} else {
-					v->MetaPteBytesPerFrameY = 0;
-					v->MetaRowBytesY = 0;
-				}
-
-				if (ip->pte_enable == 1) {
-					if (src.sw_mode == dm_sw_linear) {
-						v->MacroTileBlockSizeBytesY = 256;
-						v->MacroTileBlockHeightY = 1;
-					} else if (src.sw_mode == dm_sw_4kb_s
-							|| src.sw_mode == dm_sw_4kb_s_x
-							|| src.sw_mode == dm_sw_4kb_d
-							|| src.sw_mode == dm_sw_4kb_d_x) {
-						v->MacroTileBlockSizeBytesY = 4096;
-						v->MacroTileBlockHeightY = 4
-								* v->Read256BlockHeightY[k];
-					} else if (src.sw_mode == dm_sw_64kb_s
-							|| src.sw_mode == dm_sw_64kb_s_t
-							|| src.sw_mode == dm_sw_64kb_s_x
-							|| src.sw_mode == dm_sw_64kb_d
-							|| src.sw_mode == dm_sw_64kb_d_t
-							|| src.sw_mode == dm_sw_64kb_d_x) {
-						v->MacroTileBlockSizeBytesY = 64 * 1024;
-						v->MacroTileBlockHeightY = 16
-								* v->Read256BlockHeightY[k];
-					} else {
-						v->MacroTileBlockSizeBytesY = 256 * 1024;
-						v->MacroTileBlockHeightY = 32
-								* v->Read256BlockHeightY[k];
-					}
-					if (v->MacroTileBlockSizeBytesY <= 65536) {
-						v->DataPTEReqHeightY = v->MacroTileBlockHeightY;
-					} else {
-						v->DataPTEReqHeightY = 16
-								* v->Read256BlockHeightY[k];
-					}
-					v->DataPTEReqWidthY = 4096
-							/ dml_ceil_ex(v->BytePerPixelInDETY[k], 1)
-							/ v->DataPTEReqHeightY * 8;
-					if (src.sw_mode == dm_sw_linear) {
-						v->DPTEBytesPerRowY =
-								64
-										* (dml_ceil_ex(
-												(src.viewport_width
-														/ v->NoOfDPP[ijk]
-														* dml_min(
-																128,
-																dml_pow(
-																		2,
-																		dml_floor_ex(
-																				dml_log(
-																						ip->dpte_buffer_size_in_pte_reqs
-																								* v->DataPTEReqWidthY
-																								/ (src.viewport_width
-																										/ v->NoOfDPP[ijk]),
-																						2),
-																				1)))
-														- 1)
-														/ v->DataPTEReqWidthY,
-												1)
-												+ 1);
-					} else if (src.source_scan == dm_horz) {
-						v->DPTEBytesPerRowY =
-								64
-										* (dml_ceil_ex(
-												(src.viewport_width
-														/ v->NoOfDPP[ijk]
-														- 1)
-														/ v->DataPTEReqWidthY,
-												1)
-												+ 1);
-					} else {
-						v->DPTEBytesPerRowY =
-								64
-										* (dml_ceil_ex(
-												(src.viewport_height
-														- 1)
-														/ v->DataPTEReqHeightY,
-												1)
-												+ 1);
-					}
-				} else {
-					v->DPTEBytesPerRowY = 0;
-				}
-
-				if (src.source_format != dm_444_64 && src.source_format != dm_444_32
-						&& src.source_format != dm_444_16) {
-					if (src.dcc == 1) {
-						v->MetaReqHeightC = 8 * v->Read256BlockHeightC[k];
-						v->MetaReqWidthC =
-								64 * 256
-										/ dml_ceil_ex(
-												v->BytePerPixelInDETC[k],
-												2)
-										/ v->MetaReqHeightC;
-						v->MetaSurfaceWidthC = dml_ceil_ex(
-								src.viewport_width / v->NoOfDPP[ijk]
-										/ 2 - 1,
-								v->MetaReqWidthC)
-								+ v->MetaReqWidthC;
-						v->MetaSurfaceHeightC = dml_ceil_ex(
-								src.viewport_height / 2 - 1,
-								v->MetaReqHeightC)
-								+ v->MetaReqHeightC;
-						if (ip->pte_enable == 1) {
-							v->MetaPteBytesPerFrameC =
-									(dml_ceil_ex(
-											(v->MetaSurfaceWidthC
-													* v->MetaSurfaceHeightC
-													* dml_ceil_ex(
-															v->BytePerPixelInDETC[k],
-															2)
-													/ 256.0
-													- 4096)
-													/ 8
-													/ 4096,
-											1) + 1)
-											* 64;
-						} else {
-							v->MetaPteBytesPerFrameC = 0;
-						}
-						if (src.source_scan == dm_horz) {
-							v->MetaRowBytesC =
-									v->MetaSurfaceWidthC
-											* v->MetaReqHeightC
-											* dml_ceil_ex(
-													v->BytePerPixelInDETC[k],
-													2)
-											/ 256;
-						} else {
-							v->MetaRowBytesC =
-									v->MetaSurfaceHeightC
-											* v->MetaReqWidthC
-											* dml_ceil_ex(
-													v->BytePerPixelInDETC[k],
-													2)
-											/ 256;
-						}
-					} else {
-						v->MetaPteBytesPerFrameC = 0;
-						v->MetaRowBytesC = 0;
-					}
-
-					if (ip->pte_enable == 1) {
-						if (src.sw_mode == dm_sw_linear) {
-							v->MacroTileBlockSizeBytesC = 256;
-							v->MacroTileBlockHeightC = 1;
-						} else if (src.sw_mode == dm_sw_4kb_s
-								|| src.sw_mode == dm_sw_4kb_s_x
-								|| src.sw_mode == dm_sw_4kb_d
-								|| src.sw_mode == dm_sw_4kb_d_x) {
-							v->MacroTileBlockSizeBytesC = 4096;
-							v->MacroTileBlockHeightC = 4
-									* v->Read256BlockHeightC[k];
-						} else if (src.sw_mode == dm_sw_64kb_s
-								|| src.sw_mode == dm_sw_64kb_s_t
-								|| src.sw_mode == dm_sw_64kb_s_x
-								|| src.sw_mode == dm_sw_64kb_d
-								|| src.sw_mode == dm_sw_64kb_d_t
-								|| src.sw_mode == dm_sw_64kb_d_x) {
-							v->MacroTileBlockSizeBytesC = 64 * 1024;
-							v->MacroTileBlockHeightC = 16
-									* v->Read256BlockHeightC[k];
-						} else {
-							v->MacroTileBlockSizeBytesC = 256 * 1024;
-							v->MacroTileBlockHeightC = 32
-									* v->Read256BlockHeightC[k];
-						}
-						v->MacroTileBlockWidthC =
-								v->MacroTileBlockSizeBytesC
-										/ dml_ceil_ex(
-												v->BytePerPixelInDETC[k],
-												2)
-										/ v->MacroTileBlockHeightC;
-						if (v->MacroTileBlockSizeBytesC <= 65536) {
-							v->DataPTEReqHeightC =
-									v->MacroTileBlockHeightC;
-						} else {
-							v->DataPTEReqHeightC = 16
-									* v->Read256BlockHeightC[k];
-						}
-						v->DataPTEReqWidthC =
-								4096
-										/ dml_ceil_ex(
-												v->BytePerPixelInDETC[k],
-												2)
-										/ v->DataPTEReqHeightC
-										* 8;
-						if (src.sw_mode == dm_sw_linear) {
-							v->DPTEBytesPerRowC =
-									64
-											* (dml_ceil_ex(
-													(src.viewport_width
-															/ v->NoOfDPP[ijk]
-															/ 2
-															* dml_min(
-																	128,
-																	dml_pow(
-																			2,
-																			dml_floor_ex(
-																					dml_log(
-																							ip->dpte_buffer_size_in_pte_reqs
-																									* v->DataPTEReqWidthC
-																									/ (src.viewport_width
-																											/ v->NoOfDPP[ijk]
-																											/ 2),
-																							2),
-																					1)))
-															- 1)
-															/ v->DataPTEReqWidthC,
-													1)
-													+ 1);
-						} else if (src.source_scan == dm_horz) {
-							v->DPTEBytesPerRowC =
-									64
-											* (dml_ceil_ex(
-													(src.viewport_width
-															/ v->NoOfDPP[ijk]
-															/ 2
-															- 1)
-															/ v->DataPTEReqWidthC,
-													1)
-													+ 1);
-						} else {
-							v->DPTEBytesPerRowC =
-									64
-											* (dml_ceil_ex(
-													(src.viewport_height
-															/ 2
-															- 1)
-															/ v->DataPTEReqHeightC,
-													1)
-													+ 1);
-						}
-					} else {
-						v->DPTEBytesPerRowC = 0;
-					}
-				} else {
-					v->DPTEBytesPerRowC = 0;
-					v->MetaPteBytesPerFrameC = 0;
-					v->MetaRowBytesC = 0;
-				}
-
-				v->DPTEBytesPerRow[k] = v->DPTEBytesPerRowY + v->DPTEBytesPerRowC;
-				v->MetaPTEBytesPerFrame[k] = v->MetaPteBytesPerFrameY
-						+ v->MetaPteBytesPerFrameC;
-				v->MetaRowBytes[k] = v->MetaRowBytesY + v->MetaRowBytesC;
-
-				v->VInitY = (scale_ratio_depth.vscl_ratio + scale_taps.vtaps + 1
-						+ dest.interlaced * 0.5
-								* scale_ratio_depth.vscl_ratio)
-						/ 2.0;
-				v->PrefillY[k] = dml_floor_ex(v->VInitY, 1);
-				v->MaxNumSwY[k] = dml_ceil_ex(
-						(v->PrefillY[k] - 1.0)
-								/ v->SwathHeightYPerState[ijk],
-						1) + 1.0;
-
-				if (v->PrefillY[k] > 1) {
-					v->MaxPartialSwY = ((int) (v->PrefillY[k] - 2))
-							% ((int) v->SwathHeightYPerState[ijk]);
-				} else {
-					v->MaxPartialSwY = ((int) (v->PrefillY[k]
-							+ v->SwathHeightYPerState[ijk] - 2))
-							% ((int) v->SwathHeightYPerState[ijk]);
-				}
-				v->MaxPartialSwY = dml_max(1, v->MaxPartialSwY);
-
-				v->PrefetchLinesY[k] = v->MaxNumSwY[k]
-						* v->SwathHeightYPerState[ijk] + v->MaxPartialSwY;
-
-				if (src.source_format != dm_444_64 && src.source_format != dm_444_32
-						&& src.source_format != dm_444_16) {
-					v->VInitC =
-							(scale_ratio_depth.vscl_ratio / 2
-									+ scale_taps.vtaps + 1
-									+ dest.interlaced * 0.5
-											* scale_ratio_depth.vscl_ratio
-											/ 2) / 2.0;
-					v->PrefillC[k] = dml_floor_ex(v->VInitC, 1);
-					v->MaxNumSwC[k] =
-							dml_ceil_ex(
-									(v->PrefillC[k] - 1.0)
-											/ v->SwathHeightCPerState[ijk],
-									1) + 1.0;
-					if (v->PrefillC[k] > 1) {
-						v->MaxPartialSwC =
-								((int) (v->PrefillC[k] - 2))
-										% ((int) v->SwathHeightCPerState[ijk]);
-					} else {
-						v->MaxPartialSwC =
-								((int) (v->PrefillC[k]
-										+ v->SwathHeightCPerState[ijk]
-										- 2))
-										% ((int) v->SwathHeightCPerState[ijk]);
-					}
-					v->MaxPartialSwC = dml_max(1, v->MaxPartialSwC);
-
-					v->PrefetchLinesC[k] = v->MaxNumSwC[k]
-							* v->SwathHeightCPerState[ijk]
-							+ v->MaxPartialSwC;
-				} else {
-					v->PrefetchLinesC[k] = 0;
-				}
-
-				v->dst_x_after_scaler = 90 * dest.pixel_rate_mhz
-						/ (v->RequiredDISPCLK[ij] / (j + 1))
-						+ 42 * dest.pixel_rate_mhz / v->RequiredDISPCLK[ij];
-				if (v->NoOfDPP[ijk] > 1) {
-					v->dst_x_after_scaler = v->dst_x_after_scaler
-							+ dest.recout_width / 2.0;
-				}
-
-				if (dout.output_format == dm_420) {
-					v->dst_y_after_scaler = 1;
-				} else {
-					v->dst_y_after_scaler = 0;
-				}
-
-				v->TimeCalc = 24 / v->ProjectedDCFCLKDeepSleep;
-
-				v->VUpdateOffset = dml_ceil_ex(dest.htotal / 4, 1);
-				v->TotalRepeaterDelay = ip->max_inter_dcn_tile_repeaters
-						* (2 / (v->RequiredDISPCLK[ij] / (j + 1))
-								+ 3 / v->RequiredDISPCLK[ij]);
-				v->VUpdateWidth = (14 / v->ProjectedDCFCLKDeepSleep
-						+ 12 / (v->RequiredDISPCLK[ij] / (j + 1))
-						+ v->TotalRepeaterDelay) * dest.pixel_rate_mhz;
-				v->VReadyOffset =
-						dml_max(
-								150
-										/ (v->RequiredDISPCLK[ij]
-												/ (j
-														+ 1)),
-								v->TotalRepeaterDelay
-										+ 20
-												/ v->ProjectedDCFCLKDeepSleep
-										+ 10
-												/ (v->RequiredDISPCLK[ij]
-														/ (j
-																+ 1)))
-								* dest.pixel_rate_mhz;
-
-				v->TimeSetup =
-						(v->VUpdateOffset + v->VUpdateWidth
-								+ v->VReadyOffset)
-								/ dest.pixel_rate_mhz;
-
-				v->ExtraLatency =
-						v->UrgentRoundTripAndOutOfOrderLatencyPerState[i]
-								+ (v->TotalNumberOfActiveDPP[ij]
-										* ip->pixel_chunk_size_kbytes
-										+ v->TotalNumberOfDCCActiveDPP[ij]
-												* ip->meta_chunk_size_kbytes)
-										* 1024
-										/ v->ReturnBWPerState[i];
-
-				if (ip->pte_enable == 1) {
-					v->ExtraLatency = v->ExtraLatency
-							+ v->TotalNumberOfActiveDPP[ij]
-									* ip->pte_chunk_size_kbytes
-									* 1024
-									/ v->ReturnBWPerState[i];
-				}
-
-				if (ip->can_vstartup_lines_exceed_vsync_plus_back_porch_lines_minus_one
-						== 1) {
-					v->MaximumVStartup = dest.vtotal - dest.vactive - 1;
-				} else {
-					v->MaximumVStartup = dest.vsync_plus_back_porch - 1;
-				}
-
-				v->LineTimesForPrefetch[k] =
-						v->MaximumVStartup
-								- soc->urgent_latency_us
-										/ (dest.htotal
-												/ dest.pixel_rate_mhz)
-								- (v->TimeCalc + v->TimeSetup)
-										/ (dest.htotal
-												/ dest.pixel_rate_mhz)
-								- (v->dst_y_after_scaler
-										+ v->dst_x_after_scaler
-												/ dest.htotal);
-
-				v->LineTimesForPrefetch[k] = dml_floor_ex(
-						4.0 * (v->LineTimesForPrefetch[k] + 0.125),
-						1) / 4;
-
-				v->PrefetchBW[k] =
-						(v->MetaPTEBytesPerFrame[k] + 2 * v->MetaRowBytes[k]
-								+ 2 * v->DPTEBytesPerRow[k]
-								+ v->PrefetchLinesY[k]
-										* v->SwathWidthYPerState[ijk]
-										* dml_ceil_ex(
-												v->BytePerPixelInDETY[k],
-												1)
-								+ v->PrefetchLinesC[k]
-										* v->SwathWidthYPerState[ijk]
-										/ 2
-										* dml_ceil_ex(
-												v->BytePerPixelInDETC[k],
-												2))
-								/ (v->LineTimesForPrefetch[k]
-										* dest.htotal
-										/ dest.pixel_rate_mhz);
-			}
-
-			v->BWAvailableForImmediateFlip = v->ReturnBWPerState[i];
-
-			for (k = 0; k < num_planes; k++) {
-				v->BWAvailableForImmediateFlip = v->BWAvailableForImmediateFlip
-						- dml_max(v->ReadBandwidth[k], v->PrefetchBW[k]);
-			}
-
-			v->TotalImmediateFlipBytes = 0;
-
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-
-				if (src.source_format != dm_420_8
-						&& src.source_format != dm_420_10) {
-					v->TotalImmediateFlipBytes = v->TotalImmediateFlipBytes
-							+ v->MetaPTEBytesPerFrame[k]
-							+ v->MetaRowBytes[k]
-							+ v->DPTEBytesPerRow[k];
-				}
-			}
-
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-				struct _vcs_dpi_display_pipe_dest_params_st dest =
-						e2e[v->planes[k].e2e_index].pipe.dest;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (ip->pte_enable == 1 && src.dcc == 1) {
-					v->TimeForMetaPTEWithImmediateFlip =
-							dml_max(
-									v->MetaPTEBytesPerFrame[k]
-											/ v->PrefetchBW[k],
-									dml_max(
-											v->MetaPTEBytesPerFrame[k]
-													* v->TotalImmediateFlipBytes
-													/ (v->BWAvailableForImmediateFlip
-															* (v->MetaPTEBytesPerFrame[k]
-																	+ v->MetaRowBytes[k]
-																	+ v->DPTEBytesPerRow[k])),
-											dml_max(
-													v->ExtraLatency,
-													dml_max(
-															soc->urgent_latency_us,
-															dest.htotal
-																	/ dest.pixel_rate_mhz
-																	/ 4))));
-
-					v->TimeForMetaPTEWithoutImmediateFlip =
-							dml_max(
-									v->MetaPTEBytesPerFrame[k]
-											/ v->PrefetchBW[k],
-									dml_max(
-											v->ExtraLatency,
-											dest.htotal
-													/ dest.pixel_rate_mhz
-													/ 4));
-				} else {
-					v->TimeForMetaPTEWithImmediateFlip = dest.htotal
-							/ dest.pixel_rate_mhz / 4;
-					v->TimeForMetaPTEWithoutImmediateFlip = dest.htotal
-							/ dest.pixel_rate_mhz / 4;
-				}
-
-				if (ip->pte_enable == 1 || src.dcc == 1) {
-					v->TimeForMetaAndDPTERowWithImmediateFlip =
-							dml_max(
-									(v->MetaRowBytes[k]
-											+ v->DPTEBytesPerRow[k])
-											/ v->PrefetchBW[k],
-									dml_max(
-											(v->MetaRowBytes[k]
-													+ v->DPTEBytesPerRow[k])
-													* v->TotalImmediateFlipBytes
-													/ (v->BWAvailableForImmediateFlip
-															* (v->MetaPTEBytesPerFrame[k]
-																	+ v->MetaRowBytes[k]
-																	+ v->DPTEBytesPerRow[k])),
-											dml_max(
-													dest.htotal
-															/ dest.pixel_rate_mhz
-															- v->TimeForMetaPTEWithImmediateFlip,
-													dml_max(
-															v->ExtraLatency,
-															2
-																	* soc->urgent_latency_us))));
-
-					v->TimeForMetaAndDPTERowWithoutImmediateFlip =
-							dml_max(
-									(v->MetaRowBytes[k]
-											+ v->DPTEBytesPerRow[k])
-											/ v->PrefetchBW[k],
-									dml_max(
-											dest.htotal
-													/ dest.pixel_rate_mhz
-													- v->TimeForMetaPTEWithoutImmediateFlip,
-											v->ExtraLatency));
-				} else {
-					v->TimeForMetaAndDPTERowWithImmediateFlip =
-							dml_max(
-									dest.htotal
-											/ dest.pixel_rate_mhz
-											- v->TimeForMetaPTEWithImmediateFlip,
-									v->ExtraLatency
-											- v->TimeForMetaPTEWithImmediateFlip);
-					v->TimeForMetaAndDPTERowWithoutImmediateFlip =
-							dml_max(
-									dest.htotal
-											/ dest.pixel_rate_mhz
-											- v->TimeForMetaPTEWithoutImmediateFlip,
-									v->ExtraLatency
-											- v->TimeForMetaPTEWithoutImmediateFlip);
-				}
-
-				v->LinesForMetaPTEWithImmediateFlip[k] =
-						dml_floor_ex(
-								4.0
-										* (v->TimeForMetaPTEWithImmediateFlip
-												/ (dest.htotal
-														/ dest.pixel_rate_mhz)
-												+ 0.125),
-								1) / 4.0;
-
-				v->LinesForMetaPTEWithoutImmediateFlip[k] =
-						dml_floor_ex(
-								4.0
-										* (v->TimeForMetaPTEWithoutImmediateFlip
-												/ (dest.htotal
-														/ dest.pixel_rate_mhz)
-												+ 0.125),
-								1) / 4.0;
-
-				v->LinesForMetaAndDPTERowWithImmediateFlip[k] =
-						dml_floor_ex(
-								4.0
-										* (v->TimeForMetaAndDPTERowWithImmediateFlip
-												/ (dest.htotal
-														/ dest.pixel_rate_mhz)
-												+ 0.125),
-								1) / 4.0;
-
-				v->LinesForMetaAndDPTERowWithoutImmediateFlip[k] =
-						dml_floor_ex(
-								4.0
-										* (v->TimeForMetaAndDPTERowWithoutImmediateFlip
-												/ (dest.htotal
-														/ dest.pixel_rate_mhz)
-												+ 0.125),
-								1) / 4.0;
-
-				v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip =
-						v->LineTimesForPrefetch[k]
-								- v->LinesForMetaPTEWithImmediateFlip[k]
-								- v->LinesForMetaAndDPTERowWithImmediateFlip[k];
-
-				v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip =
-						v->LineTimesForPrefetch[k]
-								- v->LinesForMetaPTEWithoutImmediateFlip[k]
-								- v->LinesForMetaAndDPTERowWithoutImmediateFlip[k];
-
-				if (v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip > 0) {
-					v->VRatioPreYWithImmediateFlip[ijk] =
-							v->PrefetchLinesY[k]
-									/ v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip;
-					if (v->SwathHeightYPerState[ijk] > 4) {
-						if (v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip
-								- (v->PrefillY[k] - 3.0) / 2.0
-								> 0) {
-							v->VRatioPreYWithImmediateFlip[ijk] =
-									dml_max(
-											v->VRatioPreYWithImmediateFlip[ijk],
-											(v->MaxNumSwY[k]
-													* v->SwathHeightYPerState[ijk])
-													/ (v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip
-															- (v->PrefillY[k]
-																	- 3.0)
-																	/ 2.0));
-						} else {
-							v->VRatioPreYWithImmediateFlip[ijk] =
-									999999;
-						}
-					}
-					v->VRatioPreCWithImmediateFlip[ijk] =
-							v->PrefetchLinesC[k]
-									/ v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip;
-					if (v->SwathHeightCPerState[ijk] > 4) {
-						if (v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip
-								- (v->PrefillC[k] - 3.0) / 2.0
-								> 0) {
-							v->VRatioPreCWithImmediateFlip[ijk] =
-									dml_max(
-											v->VRatioPreCWithImmediateFlip[ijk],
-											(v->MaxNumSwC[k]
-													* v->SwathHeightCPerState[ijk])
-													/ (v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip
-															- (v->PrefillC[k]
-																	- 3.0)
-																	/ 2.0));
-						} else {
-							v->VRatioPreCWithImmediateFlip[ijk] =
-									999999;
-						}
-					}
-
-					v->RequiredPrefetchPixelDataBWWithImmediateFlip[ijk] =
-							v->NoOfDPP[ijk]
-									* (v->PrefetchLinesY[k]
-											/ v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip
-											* dml_ceil_ex(
-													v->BytePerPixelInDETY[k],
-													1)
-											+ v->PrefetchLinesC[k]
-													/ v->LineTimesToRequestPrefetchPixelDataWithImmediateFlip
-													* dml_ceil_ex(
-															v->BytePerPixelInDETC[k],
-															2)
-													/ 2)
-									* v->SwathWidthYPerState[ijk]
-									/ (dest.htotal
-											/ dest.pixel_rate_mhz);
-				} else {
-					v->VRatioPreYWithImmediateFlip[ijk] = 999999;
-					v->VRatioPreCWithImmediateFlip[ijk] = 999999;
-					v->RequiredPrefetchPixelDataBWWithImmediateFlip[ijk] =
-							999999;
-				}
-
-				if (v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-						> 0) {
-					v->VRatioPreYWithoutImmediateFlip[ijk] =
-							v->PrefetchLinesY[k]
-									/ v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip;
-					if (v->SwathHeightYPerState[ijk] > 4) {
-						if (v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-								- (v->PrefillY[k] - 3.0) / 2.0
-								> 0) {
-							v->VRatioPreYWithoutImmediateFlip[ijk] =
-									dml_max(
-											v->VRatioPreYWithoutImmediateFlip[ijk],
-											(v->MaxNumSwY[k]
-													* v->SwathHeightYPerState[ijk])
-													/ (v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-															- (v->PrefillY[k]
-																	- 3.0)
-																	/ 2.0));
-						} else {
-							v->VRatioPreYWithoutImmediateFlip[ijk] =
-									999999;
-						}
-					}
-					v->VRatioPreCWithoutImmediateFlip[ijk] =
-							v->PrefetchLinesC[k]
-									/ v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip;
-					if (v->SwathHeightCPerState[ijk] > 4) {
-						if (v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-								- (v->PrefillC[k] - 3.0) / 2.0
-								> 0) {
-							v->VRatioPreCWithoutImmediateFlip[ijk] =
-									dml_max(
-											v->VRatioPreCWithoutImmediateFlip[ijk],
-											(v->MaxNumSwC[k]
-													* v->SwathHeightCPerState[ijk])
-													/ (v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-															- (v->PrefillC[k]
-																	- 3.0)
-																	/ 2.0));
-						} else {
-							v->VRatioPreCWithoutImmediateFlip[ijk] =
-									999999;
-						}
-					}
-
-					v->RequiredPrefetchPixelDataBWWithoutImmediateFlip[ijk] =
-							v->NoOfDPP[ijk]
-									* (v->PrefetchLinesY[k]
-											/ v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-											* dml_ceil_ex(
-													v->BytePerPixelInDETY[k],
-													1)
-											+ v->PrefetchLinesC[k]
-													/ v->LineTimesToRequestPrefetchPixelDataWithoutImmediateFlip
-													* dml_ceil_ex(
-															v->BytePerPixelInDETC[k],
-															2)
-													/ 2)
-									* v->SwathWidthYPerState[ijk]
-									/ (dest.htotal
-											/ dest.pixel_rate_mhz);
-				} else {
-					v->VRatioPreYWithoutImmediateFlip[ijk] = 999999;
-					v->VRatioPreCWithoutImmediateFlip[ijk] = 999999;
-					v->RequiredPrefetchPixelDataBWWithoutImmediateFlip[ijk] =
-							999999;
-				}
-			}
-
-			v->MaximumReadBandwidthWithPrefetchWithImmediateFlip = 0;
-
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-				struct _vcs_dpi_display_pipe_dest_params_st dest =
-						e2e[v->planes[k].e2e_index].pipe.dest;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (src.source_format != dm_420_8
-						&& src.source_format != dm_420_10) {
-					v->MaximumReadBandwidthWithPrefetchWithImmediateFlip =
-							v->MaximumReadBandwidthWithPrefetchWithImmediateFlip
-									+ dml_max(
-											v->ReadBandwidth[k],
-											v->RequiredPrefetchPixelDataBWWithImmediateFlip[ijk])
-									+ dml_max(
-											v->MetaPTEBytesPerFrame[k]
-													/ (v->LinesForMetaPTEWithImmediateFlip[k]
-															* dest.htotal
-															/ dest.pixel_rate_mhz),
-											(v->MetaRowBytes[k]
-													+ v->DPTEBytesPerRow[k])
-													/ (v->LinesForMetaAndDPTERowWithImmediateFlip[k]
-															* dest.htotal
-															/ dest.pixel_rate_mhz));
-				} else {
-					v->MaximumReadBandwidthWithPrefetchWithImmediateFlip =
-							v->MaximumReadBandwidthWithPrefetchWithImmediateFlip
-									+ dml_max(
-											v->ReadBandwidth[k],
-											v->RequiredPrefetchPixelDataBWWithoutImmediateFlip[ijk]);
-				}
-			}
-
-			v->MaximumReadBandwidthWithPrefetchWithoutImmediateFlip = 0;
-
-			for (k = 0; k < num_planes; k++) {
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				v->MaximumReadBandwidthWithPrefetchWithoutImmediateFlip =
-						v->MaximumReadBandwidthWithPrefetchWithoutImmediateFlip
-								+ dml_max(
-										v->ReadBandwidth[k],
-										v->RequiredPrefetchPixelDataBWWithoutImmediateFlip[ijk]);
-			}
-
-			v->PrefetchSupportedWithImmediateFlip[ij] = 1;
-			if (v->MaximumReadBandwidthWithPrefetchWithImmediateFlip
-					> v->ReturnBWPerState[i]) {
-				v->PrefetchSupportedWithImmediateFlip[ij] = 0;
-			}
-			for (k = 0; k < num_planes; k++) {
-				if (v->LineTimesForPrefetch[k] < 2
-						|| v->LinesForMetaPTEWithImmediateFlip[k] >= 8
-						|| v->LinesForMetaAndDPTERowWithImmediateFlip[k]
-								>= 16) {
-					v->PrefetchSupportedWithImmediateFlip[ij] = 0;
-				}
-			}
-
-			v->PrefetchSupportedWithoutImmediateFlip[ij] = 1;
-			if (v->MaximumReadBandwidthWithPrefetchWithoutImmediateFlip
-					> v->ReturnBWPerState[i]) {
-				v->PrefetchSupportedWithoutImmediateFlip[ij] = 0;
-			}
-			for (k = 0; k < num_planes; k++) {
-				if (v->LineTimesForPrefetch[k] < 2
-						|| v->LinesForMetaPTEWithoutImmediateFlip[k] >= 8
-						|| v->LinesForMetaAndDPTERowWithoutImmediateFlip[k]
-								>= 16) {
-					v->PrefetchSupportedWithoutImmediateFlip[ij] = 0;
-				}
-			}
-		}
-	}
-
-	for (i = 0; i < NumberOfStatesPlusTwo; i++) {
-		for (j = 0; j < 2; j++) {
-			ij = j * NumberOfStatesPlusTwo + i;
-
-			v->VRatioInPrefetchSupportedWithImmediateFlip[ij] = 1;
-			for (k = 0; k < num_planes; k++) {
-				struct _vcs_dpi_display_pipe_source_params_st src =
-						e2e[v->planes[k].e2e_index].pipe.src;
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (((src.source_format != dm_420_8
-						&& src.source_format != dm_420_10)
-						&& (v->VRatioPreYWithImmediateFlip[ijk] > 4
-								|| v->VRatioPreCWithImmediateFlip[ijk]
-										> 4))
-						|| ((src.source_format == dm_420_8
-								|| src.source_format == dm_420_10)
-								&& (v->VRatioPreYWithoutImmediateFlip[ijk]
-										> 4
-										|| v->VRatioPreCWithoutImmediateFlip[ijk]
-												> 4))) {
-					v->VRatioInPrefetchSupportedWithImmediateFlip[ij] = 0;
-				}
-			}
-			v->VRatioInPrefetchSupportedWithoutImmediateFlip[ij] = 1;
-			for (k = 0; k < num_planes; k++) {
-				ijk = k * 2 * NumberOfStatesPlusTwo + j * NumberOfStatesPlusTwo + i;
-
-				if (v->VRatioPreYWithoutImmediateFlip[ijk] > 4
-						|| v->VRatioPreCWithoutImmediateFlip[ijk] > 4) {
-					v->VRatioInPrefetchSupportedWithoutImmediateFlip[ij] = 0;
-				}
-			}
-		}
-	}
-
-	// Mode Support, Voltage State and SOC Configuration
-
-	for (i = (NumberOfStatesPlusTwo - 1); i >= 0; i--) // use int type here
-			{
-		for (j = 0; j < 2; j++) {
-			ij = j * NumberOfStatesPlusTwo + i;
-
-			if (v->ScaleRatioSupport == 1 && v->SourceFormatPixelAndScanSupport == 1
-					&& v->ViewportSizeSupport == 1
-					&& v->BandwidthSupport[i] == 1 && v->DIOSupport[i] == 1
-					&& v->UrgentLatencySupport[ij] == 1 && v->ROBSupport[i] == 1
-					&& v->DISPCLK_DPPCLK_Support[ij] == 1
-					&& v->TotalAvailablePipesSupport[ij] == 1
-					&& v->TotalAvailableWritebackSupport == 1
-					&& v->WritebackLatencySupport == 1) {
-				if (v->PrefetchSupportedWithImmediateFlip[ij] == 1
-						&& v->VRatioInPrefetchSupportedWithImmediateFlip[ij]
-								== 1) {
-					v->ModeSupportWithImmediateFlip[ij] = 1;
-				} else {
-					v->ModeSupportWithImmediateFlip[ij] = 0;
-				}
-				if (v->PrefetchSupportedWithoutImmediateFlip[ij] == 1
-						&& v->VRatioInPrefetchSupportedWithoutImmediateFlip[ij]
-								== 1) {
-					v->ModeSupportWithoutImmediateFlip[ij] = 1;
-				} else {
-					v->ModeSupportWithoutImmediateFlip[ij] = 0;
-				}
-			} else {
-				v->ModeSupportWithImmediateFlip[ij] = 0;
-				v->ModeSupportWithoutImmediateFlip[ij] = 0;
-			}
-		}
-	}
-
-	for (i = (NumberOfStatesPlusTwo - 1); i >= 0; i--) // use int type here
-			{
-		if ((i == (NumberOfStatesPlusTwo - 1)
-				|| v->ModeSupportWithImmediateFlip[1 * NumberOfStatesPlusTwo + i]
-						== 1
-				|| v->ModeSupportWithImmediateFlip[0 * NumberOfStatesPlusTwo + i]
-						== 1) && i >= v->VoltageOverrideLevel) {
-			v->VoltageLevelWithImmediateFlip = i;
-		}
-	}
-
-	for (i = (NumberOfStatesPlusTwo - 1); i >= 0; i--) // use int type here
-			{
-		if ((i == (NumberOfStatesPlusTwo - 1)
-				|| v->ModeSupportWithoutImmediateFlip[1 * NumberOfStatesPlusTwo + i]
-						== 1
-				|| v->ModeSupportWithoutImmediateFlip[0 * NumberOfStatesPlusTwo + i]
-						== 1) && i >= v->VoltageOverrideLevel) {
-			v->VoltageLevelWithoutImmediateFlip = i;
-		}
-	}
-
-	if (v->VoltageLevelWithImmediateFlip == (NumberOfStatesPlusTwo - 1)) {
-		v->ImmediateFlipSupported = 0;
-		v->VoltageLevel = v->VoltageLevelWithoutImmediateFlip;
-	} else {
-		v->ImmediateFlipSupported = 1;
-		v->VoltageLevel = v->VoltageLevelWithImmediateFlip;
-	}
-
-	v->DCFCLK = v->DCFCLKPerState[(int) v->VoltageLevel];
-	v->FabricAndDRAMBandwidth = v->FabricAndDRAMBandwidthPerState[(int) v->VoltageLevel];
-
-	for (j = 0; j < 2; j++) {
-		v->RequiredDISPCLKPerRatio[j] = v->RequiredDISPCLK[j * NumberOfStatesPlusTwo
-				+ (int) v->VoltageLevel];
-		for (k = 0; k < num_planes; k++) {
-			v->DPPPerPlanePerRatio[k * 2 + j] = v->NoOfDPP[k * 2 * NumberOfStatesPlusTwo
-					+ j * NumberOfStatesPlusTwo + (int) v->VoltageLevel];
-		}
-		v->DISPCLK_DPPCLK_SupportPerRatio[j] = v->DISPCLK_DPPCLK_Support[j
-				* NumberOfStatesPlusTwo + (int) v->VoltageLevel];
-	}
-
-	ASSERT(v->ImmediateFlipSupported || v->MacroTileBlockWidthC || v->DCFCLK || v->FabricAndDRAMBandwidth);
-
-	return (v->VoltageLevel);
-}
-
diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.h b/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.h
index ead4942..d4ea037 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.h
+++ b/drivers/gpu/drm/amd/display/dc/dml/display_mode_support.h
@@ -191,9 +191,4 @@ struct dml_ms_internal_vars {
 	struct _vcs_dpi_wm_calc_pipe_params_st planes[DC__NUM_PIPES__MAX];
 };
 
-int dml_ms_check(
-		struct display_mode_lib *mode_lib,
-		struct _vcs_dpi_display_e2e_pipe_params_st *e2e,
-		int num_pipes);
-
 #endif
-- 
2.9.4



More information about the amd-gfx mailing list