On 2017-09-27 10:29 PM, Dave Airlie wrote:
> From: Dave Airlie <airl...@redhat.com>
> 
> This code isn't used, and this function is huge, reimport later if
> going to be used.
> 
> Signed-off-by: Dave Airlie <airl...@redhat.com>

Reviewed-by: Harry Wentland <harry.wentl...@amd.com>

Harry

> ---
>  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
> 
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to