All of lore.kernel.org
 help / color / mirror / Atom feed
* [arnd-playground:randconfig-v5.12 491/597] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:1: error: unknown type name 'ignored'
@ 2021-03-20  0:05 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-03-20  0:05 UTC (permalink / raw)
  To: kbuild-all

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

Hi Arnd,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git randconfig-v5.12
head:   fd21c2581b744639b5207c11651ab40abf13701a
commit: 4add9311d7e505da69b887a4e24388b41f2528cf [491/597] fixup compiler-clang.h
config: x86_64-randconfig-a003-20210318 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project fcc1ce00931751ac02498986feb37744e9ace8de)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commit/?id=4add9311d7e505da69b887a4e24388b41f2528cf
        git remote add arnd-playground https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git
        git fetch --no-tags arnd-playground randconfig-v5.12
        git checkout 4add9311d7e505da69b887a4e24388b41f2528cf
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All error/warnings (new ones prefixed by >>):

                           ^~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:592:7: note: passing argument to parameter 'VActive' here
                   int VActive[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3168:5: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                                   &BytePerPixY[k],
                                   ^~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:717:17: note: passing argument to parameter 'BytePerPixelY' here
                   unsigned int *BytePerPixelY,
                                 ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3169:5: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                                   &BytePerPixC[k],
                                   ^~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:718:17: note: passing argument to parameter 'BytePerPixelC' here
                   unsigned int *BytePerPixelC,
                                 ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3172:5: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                                   &Read256BytesBlockHeightY[k],
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:721:17: note: passing argument to parameter 'BlockHeight256BytesY' here
                   unsigned int *BlockHeight256BytesY,
                                 ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3173:5: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                                   &Read256BytesBlockHeightC[k],
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:722:17: note: passing argument to parameter 'BlockHeight256BytesC' here
                   unsigned int *BlockHeight256BytesC,
                                 ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3174:5: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                                   &Read256BytesBlockWidthY[k],
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:723:17: note: passing argument to parameter 'BlockWidth256BytesY' here
                   unsigned int *BlockWidth256BytesY,
                                 ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3175:5: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                                   &Read256BytesBlockWidthC[k]);
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:724:17: note: passing argument to parameter 'BlockWidth256BytesC' here
                   unsigned int *BlockWidth256BytesC);
                                 ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3186:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.ViewportWidth,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:612:7: note: passing argument to parameter 'ViewportWidth' here
                   int ViewportWidth[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3187:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.ViewportHeight,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:613:7: note: passing argument to parameter 'ViewportHeight' here
                   int ViewportHeight[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3188:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.SurfaceWidthY,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:614:7: note: passing argument to parameter 'SurfaceWidthY' here
                   int SurfaceWidthY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3189:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.SurfaceWidthC,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:615:7: note: passing argument to parameter 'SurfaceWidthC' here
                   int SurfaceWidthC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3190:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.SurfaceHeightY,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:616:7: note: passing argument to parameter 'SurfaceHeightY' here
                   int SurfaceHeightY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3191:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.SurfaceHeightC,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:617:7: note: passing argument to parameter 'SurfaceHeightC' here
                   int SurfaceHeightC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3197:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.BlendingAndTiming,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:623:7: note: passing argument to parameter 'BlendingAndTiming' here
                   int BlendingAndTiming[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3202:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.HActive,
                           ^~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:628:7: note: passing argument to parameter 'HActive' here
                   int HActive[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3210:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.SwathHeightY,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:636:7: note: passing argument to parameter 'SwathHeightY' here
                   int SwathHeightY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3211:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           mode_lib->vba.SwathHeightC,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:637:7: note: passing argument to parameter 'SwathHeightC' here
                   int SwathHeightC[],
                       ^
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:1: error: unknown type name 'ignored'
   __diag_ignore(CLANG, 8, "-Wframe-larger-than=", "this exceeds 2048 bytes")
   ^
   include/linux/compiler_types.h:348:2: note: expanded from macro '__diag_ignore'
           __diag_ ## compiler(version, ignore, option)
           ^
   <scratch space>:34:1: note: expanded from here
   __diag_CLANG
   ^
   include/linux/compiler-clang.h:72:34: note: expanded from macro '__diag_CLANG'
           __diag_CLANG_ ## version(__diag_CLANG_ ## severity s)
                                    ^
   <scratch space>:36:1: note: expanded from here
   __diag_CLANG_ignore
   ^
   include/linux/compiler-clang.h:75:29: note: expanded from macro '__diag_CLANG_ignore'
   #define __diag_CLANG_ignore     ignored
                                   ^
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:25: error: expected ')'
   __diag_ignore(CLANG, 8, "-Wframe-larger-than=", "this exceeds 2048 bytes")
                           ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:1: note: to match this '('
   __diag_ignore(CLANG, 8, "-Wframe-larger-than=", "this exceeds 2048 bytes")
   ^
   include/linux/compiler_types.h:348:2: note: expanded from macro '__diag_ignore'
           __diag_ ## compiler(version, ignore, option)
           ^
   <scratch space>:34:1: note: expanded from here
   __diag_CLANG
   ^
   include/linux/compiler-clang.h:72:33: note: expanded from macro '__diag_CLANG'
           __diag_CLANG_ ## version(__diag_CLANG_ ## severity s)
                                   ^
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:1: warning: declaration specifier missing, defaulting to 'int'
   __diag_ignore(CLANG, 8, "-Wframe-larger-than=", "this exceeds 2048 bytes")
   ^
   int
   include/linux/compiler_types.h:348:2: note: expanded from macro '__diag_ignore'
           __diag_ ## compiler(version, ignore, option)
           ^
   <scratch space>:34:1: note: expanded from here
   __diag_CLANG
   ^
   include/linux/compiler-clang.h:72:9: note: expanded from macro '__diag_CLANG'
           __diag_CLANG_ ## version(__diag_CLANG_ ## severity s)
           ^
   <scratch space>:35:1: note: expanded from here
   __diag_CLANG_8
   ^
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:75: error: expected ';' after top level declarator
   __diag_ignore(CLANG, 8, "-Wframe-larger-than=", "this exceeds 2048 bytes")
                                                                             ^
                                                                             ;
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3922:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->ViewportWidth,
                           ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:612:7: note: passing argument to parameter 'ViewportWidth' here
                   int ViewportWidth[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3923:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->ViewportHeight,
                           ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:613:7: note: passing argument to parameter 'ViewportHeight' here
                   int ViewportHeight[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3924:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->SurfaceWidthY,
                           ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:614:7: note: passing argument to parameter 'SurfaceWidthY' here
                   int SurfaceWidthY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3925:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->SurfaceWidthC,
                           ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:615:7: note: passing argument to parameter 'SurfaceWidthC' here
                   int SurfaceWidthC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3926:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->SurfaceHeightY,
                           ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:616:7: note: passing argument to parameter 'SurfaceHeightY' here
                   int SurfaceHeightY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3927:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->SurfaceHeightC,
                           ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:617:7: note: passing argument to parameter 'SurfaceHeightC' here
                   int SurfaceHeightC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3928:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->Read256BlockHeightY,
                           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:618:7: note: passing argument to parameter 'Read256BytesBlockHeightY' here
                   int Read256BytesBlockHeightY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3929:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->Read256BlockHeightC,
                           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:619:7: note: passing argument to parameter 'Read256BytesBlockHeightC' here
                   int Read256BytesBlockHeightC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3930:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->Read256BlockWidthY,
                           ^~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:620:7: note: passing argument to parameter 'Read256BytesBlockWidthY' here
                   int Read256BytesBlockWidthY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3931:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->Read256BlockWidthC,
                           ^~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:621:7: note: passing argument to parameter 'Read256BytesBlockWidthC' here
                   int Read256BytesBlockWidthC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3933:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->BlendingAndTiming,
                           ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:623:7: note: passing argument to parameter 'BlendingAndTiming' here
                   int BlendingAndTiming[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3934:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->BytePerPixelY,
                           ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:624:7: note: passing argument to parameter 'BytePerPixY' here
                   int BytePerPixY[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3935:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->BytePerPixelC,
                           ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:625:7: note: passing argument to parameter 'BytePerPixC' here
                   int BytePerPixC[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3938:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->HActive,
                           ^~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:628:7: note: passing argument to parameter 'HActive' here
                   int HActive[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3942:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->swath_width_luma_ub,
                           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:632:7: note: passing argument to parameter 'swath_width_luma_ub' here
                   int swath_width_luma_ub[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3943:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
                           v->swath_width_chroma_ub,
                           ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:633:7: note: passing argument to parameter 'swath_width_chroma_ub' here
                   int swath_width_chroma_ub[],
                       ^
   drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3946:4: warning: passing 'unsigned int [8]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]


vim +/ignored +3642 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c

6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3640  
3accc8b91f9c9e Arnd Bergmann      2021-02-03  3641  __diag_push()
3accc8b91f9c9e Arnd Bergmann      2021-02-03 @3642  __diag_ignore(CLANG, 8, "-Wframe-larger-than=", "this exceeds 2048 bytes")
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3643  void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3644  {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3645  	struct vba_vars_st *v = &mode_lib->vba;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3646  	int MinPrefetchMode = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3647  	int MaxPrefetchMode = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3648  	int i;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3649  	unsigned int j, k, m;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3650  	bool   EnoughWritebackUnits = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3651  	bool   WritebackModeSupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3652  	bool   ViewportExceedsSurface = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3653  	double MaxTotalVActiveRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3654  	long ReorderingBytes = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3655  	bool NotUrgentLatencyHiding[DC__NUM_DPP__MAX] = { 0 };
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3656  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3657  	/*MODE SUPPORT, VOLTAGE STATE AND SOC CONFIGURATION*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3658  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3659  	/*Scale Ratio, taps Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3660  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3661  	v->ScaleRatioAndTapsSupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3662  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3663  		if (v->ScalerEnabled[k] == false
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3664  				&& ((v->SourcePixelFormat[k] != dm_444_64
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3665  						&& v->SourcePixelFormat[k] != dm_444_32
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3666  						&& v->SourcePixelFormat[k] != dm_444_16
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3667  						&& v->SourcePixelFormat[k] != dm_mono_16
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3668  						&& v->SourcePixelFormat[k] != dm_mono_8
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3669  						&& v->SourcePixelFormat[k] != dm_rgbe
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3670  						&& v->SourcePixelFormat[k] != dm_rgbe_alpha)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3671  						|| v->HRatio[k] != 1.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3672  						|| v->htaps[k] != 1.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3673  						|| v->VRatio[k] != 1.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3674  						|| v->vtaps[k] != 1.0)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3675  			v->ScaleRatioAndTapsSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3676  		} else if (v->vtaps[k] < 1.0 || v->vtaps[k] > 8.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3677  				|| v->htaps[k] < 1.0 || v->htaps[k] > 8.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3678  				|| (v->htaps[k] > 1.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3679  						&& (v->htaps[k] % 2) == 1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3680  				|| v->HRatio[k] > v->MaxHSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3681  				|| v->VRatio[k] > v->MaxVSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3682  				|| v->HRatio[k] > v->htaps[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3683  				|| v->VRatio[k] > v->vtaps[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3684  				|| (v->SourcePixelFormat[k] != dm_444_64
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3685  						&& v->SourcePixelFormat[k] != dm_444_32
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3686  						&& v->SourcePixelFormat[k] != dm_444_16
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3687  						&& v->SourcePixelFormat[k] != dm_mono_16
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3688  						&& v->SourcePixelFormat[k] != dm_mono_8
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3689  						&& v->SourcePixelFormat[k] != dm_rgbe
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3690  						&& (v->VTAPsChroma[k] < 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3691  							|| v->VTAPsChroma[k] > 8
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3692  							|| v->HTAPsChroma[k] < 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3693  							|| v->HTAPsChroma[k] > 8
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3694  							|| (v->HTAPsChroma[k] > 1 && v->HTAPsChroma[k] % 2 == 1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3695  							|| v->HRatioChroma[k] > v->MaxHSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3696  							|| v->VRatioChroma[k] > v->MaxVSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3697  							|| v->HRatioChroma[k] > v->HTAPsChroma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3698  							|| v->VRatioChroma[k] > v->VTAPsChroma[k]))) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3699  			v->ScaleRatioAndTapsSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3700  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3701  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3702  	/*Source Format, Pixel Format and Scan Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3703  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3704  	v->SourceFormatPixelAndScanSupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3705  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3706  		if ((v->SurfaceTiling[k] == dm_sw_linear && (!(v->SourceScan[k] != dm_vert) || v->DCCEnable[k] == true))
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3707  				|| ((v->SurfaceTiling[k] == dm_sw_64kb_d || v->SurfaceTiling[k] == dm_sw_64kb_d_t || v->SurfaceTiling[k] == dm_sw_64kb_d_x)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3708  						&& !(v->SourcePixelFormat[k] == dm_444_64))) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3709  			v->SourceFormatPixelAndScanSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3710  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3711  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3712  	/*Bandwidth Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3713  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3714  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3715  		CalculateBytePerPixelAnd256BBlockSizes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3716  				v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3717  				v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3718  				&v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3719  				&v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3720  				&v->BytePerPixelInDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3721  				&v->BytePerPixelInDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3722  				&v->Read256BlockHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3723  				&v->Read256BlockHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3724  				&v->Read256BlockWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3725  				&v->Read256BlockWidthC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3726  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3727  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3728  		if (v->SourceScan[k] != dm_vert) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3729  			v->SwathWidthYSingleDPP[k] = v->ViewportWidth[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3730  			v->SwathWidthCSingleDPP[k] = v->ViewportWidthChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3731  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3732  			v->SwathWidthYSingleDPP[k] = v->ViewportHeight[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3733  			v->SwathWidthCSingleDPP[k] = v->ViewportHeightChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3734  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3735  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3736  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3737  		v->ReadBandwidthLuma[k] = v->SwathWidthYSingleDPP[k] * dml_ceil(v->BytePerPixelInDETY[k], 1.0) / (v->HTotal[k] / v->PixelClock[k]) * v->VRatio[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3738  		v->ReadBandwidthChroma[k] = v->SwathWidthYSingleDPP[k] / 2 * dml_ceil(v->BytePerPixelInDETC[k], 2.0) / (v->HTotal[k] / v->PixelClock[k]) * v->VRatio[k] / 2.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3739  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3740  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3741  		if (v->WritebackEnable[k] == true
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3742  				&& v->WritebackPixelFormat[k] == dm_444_64) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3743  			v->WriteBandwidth[k] = v->WritebackDestinationWidth[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3744  					* v->WritebackDestinationHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3745  					/ (v->WritebackSourceHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3746  							* v->HTotal[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3747  							/ v->PixelClock[k]) * 8.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3748  		} else if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3749  			v->WriteBandwidth[k] = v->WritebackDestinationWidth[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3750  					* v->WritebackDestinationHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3751  					/ (v->WritebackSourceHeight[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3752  							* v->HTotal[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3753  							/ v->PixelClock[k]) * 4.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3754  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3755  			v->WriteBandwidth[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3756  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3757  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3758  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3759  	/*Writeback Latency support check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3760  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3761  	v->WritebackLatencySupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3762  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3763  		if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3764  			if (v->WritebackConfiguration == dm_whole_buffer_for_single_stream_no_interleave ||
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3765  			    v->WritebackConfiguration == dm_whole_buffer_for_single_stream_interleave) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3766  				if (v->WriteBandwidth[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3767  						> 2.0 * v->WritebackInterfaceBufferSize * 1024
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3768  								/ v->WritebackLatency) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3769  					v->WritebackLatencySupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3770  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3771  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3772  				if (v->WriteBandwidth[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3773  						> v->WritebackInterfaceBufferSize * 1024
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3774  								/ v->WritebackLatency) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3775  					v->WritebackLatencySupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3776  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3777  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3778  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3779  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3780  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3781  	/*Writeback Mode Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3782  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3783  	v->TotalNumberOfActiveWriteback = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3784  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3785  		if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3786  			v->TotalNumberOfActiveWriteback =
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3787  					v->TotalNumberOfActiveWriteback + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3788  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3789  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3790  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3791  	if (v->TotalNumberOfActiveWriteback > v->MaxNumWriteback) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3792  		EnoughWritebackUnits = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3793  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3794  	if (!v->WritebackSupportInterleaveAndUsingWholeBufferForASingleStream
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3795  			&& (v->WritebackConfiguration == dm_whole_buffer_for_single_stream_no_interleave
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3796  					|| v->WritebackConfiguration == dm_whole_buffer_for_single_stream_interleave)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3797  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3798  		WritebackModeSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3799  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3800  	if (v->WritebackConfiguration == dm_whole_buffer_for_single_stream_no_interleave && v->TotalNumberOfActiveWriteback > 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3801  		WritebackModeSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3802  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3803  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3804  	/*Writeback Scale Ratio and Taps Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3805  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3806  	v->WritebackScaleRatioAndTapsSupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3807  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3808  		if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3809  			if (v->WritebackHRatio[k] > v->WritebackMaxHSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3810  					|| v->WritebackVRatio[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3811  							> v->WritebackMaxVSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3812  					|| v->WritebackHRatio[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3813  							< v->WritebackMinHSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3814  					|| v->WritebackVRatio[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3815  							< v->WritebackMinVSCLRatio
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3816  					|| v->WritebackHTaps[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3817  							> v->WritebackMaxHSCLTaps
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3818  					|| v->WritebackVTaps[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3819  							> v->WritebackMaxVSCLTaps
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3820  					|| v->WritebackHRatio[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3821  							> v->WritebackHTaps[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3822  					|| v->WritebackVRatio[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3823  							> v->WritebackVTaps[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3824  					|| (v->WritebackHTaps[k] > 2.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3825  							&& ((v->WritebackHTaps[k] % 2)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3826  									== 1))) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3827  				v->WritebackScaleRatioAndTapsSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3828  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3829  			if (2.0 * v->WritebackDestinationWidth[k] * (v->WritebackVTaps[k] - 1) * 57 > v->WritebackLineBufferSize) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3830  				v->WritebackScaleRatioAndTapsSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3831  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3832  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3833  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3834  	/*Maximum DISPCLK/DPPCLK Support check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3835  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3836  	v->WritebackRequiredDISPCLK = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3837  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3838  		if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3839  			v->WritebackRequiredDISPCLK = dml_max(v->WritebackRequiredDISPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3840  					dml30_CalculateWriteBackDISPCLK(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3841  							v->WritebackPixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3842  							v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3843  							v->WritebackHRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3844  							v->WritebackVRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3845  							v->WritebackHTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3846  							v->WritebackVTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3847  							v->WritebackSourceWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3848  							v->WritebackDestinationWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3849  							v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3850  							v->WritebackLineBufferSize));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3851  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3852  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3853  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3854  		if (v->HRatio[k] > 1.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3855  			v->PSCL_FACTOR[k] = dml_min(v->MaxDCHUBToPSCLThroughput, v->MaxPSCLToLBThroughput * v->HRatio[k] / dml_ceil(v->htaps[k] / 6.0, 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3856  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3857  			v->PSCL_FACTOR[k] = dml_min(v->MaxDCHUBToPSCLThroughput, v->MaxPSCLToLBThroughput);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3858  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3859  		if (v->BytePerPixelC[k] == 0.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3860  			v->PSCL_FACTOR_CHROMA[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3861  			v->MinDPPCLKUsingSingleDPP[k] = v->PixelClock[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3862  					* dml_max3(v->vtaps[k] / 6.0 * dml_min(1.0, v->HRatio[k]), v->HRatio[k] * v->VRatio[k] / v->PSCL_FACTOR[k], 1.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3863  			if ((v->htaps[k] > 6.0 || v->vtaps[k] > 6.0) && v->MinDPPCLKUsingSingleDPP[k] < 2.0 * v->PixelClock[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3864  				v->MinDPPCLKUsingSingleDPP[k] = 2.0 * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3865  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3866  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3867  			if (v->HRatioChroma[k] > 1.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3868  				v->PSCL_FACTOR_CHROMA[k] = dml_min(v->MaxDCHUBToPSCLThroughput,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3869  						v->MaxPSCLToLBThroughput * v->HRatioChroma[k] / dml_ceil(v->HTAPsChroma[k] / 6.0, 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3870  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3871  				v->PSCL_FACTOR_CHROMA[k] = dml_min(v->MaxDCHUBToPSCLThroughput, v->MaxPSCLToLBThroughput);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3872  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3873  			v->MinDPPCLKUsingSingleDPP[k] = v->PixelClock[k] * dml_max5(v->vtaps[k] / 6.0 * dml_min(1.0, v->HRatio[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3874  							v->HRatio[k] * v->VRatio[k] / v->PSCL_FACTOR[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3875  							v->VTAPsChroma[k] / 6.0 * dml_min(1.0, v->HRatioChroma[k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3876  							v->HRatioChroma[k] * v->VRatioChroma[k] / v->PSCL_FACTOR_CHROMA[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3877  							1.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3878  			if ((v->htaps[k] > 6.0 || v->vtaps[k] > 6.0 || v->HTAPsChroma[k] > 6.0 || v->VTAPsChroma[k] > 6.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3879  					&& v->MinDPPCLKUsingSingleDPP[k] < 2.0 * v->PixelClock[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3880  				v->MinDPPCLKUsingSingleDPP[k] = 2.0 * v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3881  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3882  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3883  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3884  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3885  		int MaximumSwathWidthSupportLuma = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3886  		int MaximumSwathWidthSupportChroma = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3887  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3888  		if (v->SurfaceTiling[k] == dm_sw_linear) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3889  			MaximumSwathWidthSupportLuma = 8192.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3890  		} else if (v->SourceScan[k] == dm_vert && v->BytePerPixelC[k] > 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3891  			MaximumSwathWidthSupportLuma = 2880.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3892  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3893  			MaximumSwathWidthSupportLuma = 5760.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3894  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3895  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3896  		if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3897  			MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma / 2.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3898  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3899  			MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3900  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3901  		v->MaximumSwathWidthInLineBufferLuma = v->LineBufferSize * dml_max(v->HRatio[k], 1.0) / v->LBBitPerPixel[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3902  				/ (v->vtaps[k] + dml_max(dml_ceil(v->VRatio[k], 1.0) - 2, 0.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3903  		if (v->BytePerPixelC[k] == 0.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3904  			v->MaximumSwathWidthInLineBufferChroma = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3905  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3906  			v->MaximumSwathWidthInLineBufferChroma = v->LineBufferSize * dml_max(v->HRatioChroma[k], 1.0) / v->LBBitPerPixel[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3907  					/ (v->VTAPsChroma[k] + dml_max(dml_ceil(v->VRatioChroma[k], 1.0) - 2, 0.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3908  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3909  		v->MaximumSwathWidthLuma[k] = dml_min(MaximumSwathWidthSupportLuma, v->MaximumSwathWidthInLineBufferLuma);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3910  		v->MaximumSwathWidthChroma[k] = dml_min(MaximumSwathWidthSupportChroma, v->MaximumSwathWidthInLineBufferChroma);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3911  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3912  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3913  	CalculateSwathAndDETConfiguration(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3914  			true,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3915  			v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3916  			v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3917  			v->MaximumSwathWidthLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3918  			v->MaximumSwathWidthChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3919  			v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3920  			v->SourcePixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3921  			v->SurfaceTiling,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3922  			v->ViewportWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3923  			v->ViewportHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3924  			v->SurfaceWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3925  			v->SurfaceWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3926  			v->SurfaceHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3927  			v->SurfaceHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3928  			v->Read256BlockHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3929  			v->Read256BlockHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3930  			v->Read256BlockWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3931  			v->Read256BlockWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3932  			v->odm_combine_dummy,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3933  			v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3934  			v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3935  			v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3936  			v->BytePerPixelInDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3937  			v->BytePerPixelInDETC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3938  			v->HActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3939  			v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3940  			v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3941  			v->DPPPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3942  			v->swath_width_luma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3943  			v->swath_width_chroma_ub,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3944  			v->SwathWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3945  			v->SwathWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3946  			v->SwathHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3947  			v->SwathHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3948  			v->DETBufferSizeY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3949  			v->DETBufferSizeC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3950  			v->SingleDPPViewportSizeSupportPerPlane,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3951  			&v->ViewportSizeSupport[0][0]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3952  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3953  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3954  		for (j = 0; j < 2; j++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3955  			v->MaxDispclkRoundedDownToDFSGranularity = RoundToDFSGranularityDown(v->MaxDispclk[i], v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3956  			v->MaxDppclkRoundedDownToDFSGranularity = RoundToDFSGranularityDown(v->MaxDppclk[i], v->DISPCLKDPPCLKVCOSpeed);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3957  			v->RequiredDISPCLK[i][j] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3958  			v->DISPCLK_DPPCLK_Support[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3959  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3960  				v->PlaneRequiredDISPCLKWithoutODMCombine = v->PixelClock[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3961  						* (1.0 + v->DISPCLKRampingMargin / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3962  				if ((v->PlaneRequiredDISPCLKWithoutODMCombine >= v->MaxDispclk[i] && v->MaxDispclk[i] == v->MaxDispclk[mode_lib->soc.num_states]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3963  						&& v->MaxDppclk[i] == v->MaxDppclk[mode_lib->soc.num_states])) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3964  					v->PlaneRequiredDISPCLKWithoutODMCombine = v->PixelClock[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3965  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3966  				v->PlaneRequiredDISPCLKWithODMCombine2To1 = v->PixelClock[k] / 2 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3967  						* (1 + v->DISPCLKRampingMargin / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3968  				if ((v->PlaneRequiredDISPCLKWithODMCombine2To1 >= v->MaxDispclk[i] && v->MaxDispclk[i] == v->MaxDispclk[mode_lib->soc.num_states]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3969  						&& v->MaxDppclk[i] == v->MaxDppclk[mode_lib->soc.num_states])) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3970  					v->PlaneRequiredDISPCLKWithODMCombine2To1 = v->PixelClock[k] / 2 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3971  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3972  				v->PlaneRequiredDISPCLKWithODMCombine4To1 = v->PixelClock[k] / 4 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3973  						* (1 + v->DISPCLKRampingMargin / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3974  				if ((v->PlaneRequiredDISPCLKWithODMCombine4To1 >= v->MaxDispclk[i] && v->MaxDispclk[i] == v->MaxDispclk[mode_lib->soc.num_states]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3975  						&& v->MaxDppclk[i] == v->MaxDppclk[mode_lib->soc.num_states])) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3976  					v->PlaneRequiredDISPCLKWithODMCombine4To1 = v->PixelClock[k] / 4 * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3977  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3978  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3979  				if (v->ODMCombinePolicy == dm_odm_combine_policy_none) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3980  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_disabled;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3981  					v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithoutODMCombine;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3982  				} else if (v->ODMCombinePolicy == dm_odm_combine_policy_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3983  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3984  					v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3985  				} else if (v->ODMCombinePolicy == dm_odm_combine_policy_4to1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3986  						|| v->PlaneRequiredDISPCLKWithODMCombine2To1 > v->MaxDispclkRoundedDownToDFSGranularity) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3987  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_4to1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3988  					v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine4To1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3989  				} else if (v->PlaneRequiredDISPCLKWithoutODMCombine > v->MaxDispclkRoundedDownToDFSGranularity) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3990  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3991  					v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
5ec37c089e7d02 Dmytro Laktyushkin 2020-08-06  3992  				} else if (v->DSCEnabled[k] && (v->HActive[k] > DCN30_MAX_DSC_IMAGE_WIDTH)) {
5ec37c089e7d02 Dmytro Laktyushkin 2020-08-06  3993  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
5ec37c089e7d02 Dmytro Laktyushkin 2020-08-06  3994  					v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3995  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3996  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_disabled;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  3997  					v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithoutODMCombine;
f8b9f9a599db59 Chris Park         2020-06-09  3998  					/*420 format workaround*/
f8b9f9a599db59 Chris Park         2020-06-09  3999  					if (v->HActive[k] > 4096 && v->OutputFormat[k] == dm_420) {
f8b9f9a599db59 Chris Park         2020-06-09  4000  						v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
f8b9f9a599db59 Chris Park         2020-06-09  4001  						v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
f8b9f9a599db59 Chris Park         2020-06-09  4002  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4003  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4004  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4005  				if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_4to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4006  					v->MPCCombine[i][j][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4007  					v->NoOfDPP[i][j][k] = 4;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4008  					v->RequiredDPPCLK[i][j][k] = v->MinDPPCLKUsingSingleDPP[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) / 4;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4009  				} else if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4010  					v->MPCCombine[i][j][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4011  					v->NoOfDPP[i][j][k] = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4012  					v->RequiredDPPCLK[i][j][k] = v->MinDPPCLKUsingSingleDPP[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) / 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4013  				} else if ((v->WhenToDoMPCCombine == dm_mpc_never
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4014  						|| (v->MinDPPCLKUsingSingleDPP[k] * (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) <= v->MaxDppclkRoundedDownToDFSGranularity
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4015  								&& v->SingleDPPViewportSizeSupportPerPlane[k] == true))) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4016  					v->MPCCombine[i][j][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4017  					v->NoOfDPP[i][j][k] = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4018  					v->RequiredDPPCLK[i][j][k] = v->MinDPPCLKUsingSingleDPP[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4019  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4020  					v->MPCCombine[i][j][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4021  					v->NoOfDPP[i][j][k] = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4022  					v->RequiredDPPCLK[i][j][k] = v->MinDPPCLKUsingSingleDPP[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) / 2.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4023  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4024  				v->RequiredDISPCLK[i][j] = dml_max(v->RequiredDISPCLK[i][j], v->PlaneRequiredDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4025  				if ((v->MinDPPCLKUsingSingleDPP[k] / v->NoOfDPP[i][j][k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4026  						> v->MaxDppclkRoundedDownToDFSGranularity) || (v->PlaneRequiredDISPCLK > v->MaxDispclkRoundedDownToDFSGranularity)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4027  					v->DISPCLK_DPPCLK_Support[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4028  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4029  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4030  			v->TotalNumberOfActiveDPP[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4031  			v->TotalNumberOfSingleDPPPlanes[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4032  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4033  				v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + v->NoOfDPP[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4034  				if (v->NoOfDPP[i][j][k] == 1)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4035  					v->TotalNumberOfSingleDPPPlanes[i][j] = v->TotalNumberOfSingleDPPPlanes[i][j] + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4036  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4037  			if (j == 1 && v->WhenToDoMPCCombine != dm_mpc_never) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4038  				while (!(v->TotalNumberOfActiveDPP[i][j] >= v->MaxNumDPP || v->TotalNumberOfSingleDPPPlanes[i][j] == 0)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4039  					double BWOfNonSplitPlaneOfMaximumBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4040  					unsigned int NumberOfNonSplitPlaneOfMaximumBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4041  					BWOfNonSplitPlaneOfMaximumBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4042  					NumberOfNonSplitPlaneOfMaximumBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4043  					for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4044  						if (v->ReadBandwidthLuma[k] + v->ReadBandwidthChroma[k] > BWOfNonSplitPlaneOfMaximumBandwidth
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4045  								&& v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_disabled && v->MPCCombine[i][j][k] == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4046  							BWOfNonSplitPlaneOfMaximumBandwidth = v->ReadBandwidthLuma[k] + v->ReadBandwidthChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4047  							NumberOfNonSplitPlaneOfMaximumBandwidth = k;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4048  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4049  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4050  					v->MPCCombine[i][j][NumberOfNonSplitPlaneOfMaximumBandwidth] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4051  					v->NoOfDPP[i][j][NumberOfNonSplitPlaneOfMaximumBandwidth] = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4052  					v->RequiredDPPCLK[i][j][NumberOfNonSplitPlaneOfMaximumBandwidth] = v->MinDPPCLKUsingSingleDPP[NumberOfNonSplitPlaneOfMaximumBandwidth]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4053  							* (1 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100) / 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4054  					v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4055  					v->TotalNumberOfSingleDPPPlanes[i][j] = v->TotalNumberOfSingleDPPPlanes[i][j] + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4056  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4057  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4058  			if (v->TotalNumberOfActiveDPP[i][j] > v->MaxNumDPP) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4059  				v->RequiredDISPCLK[i][j] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4060  				v->DISPCLK_DPPCLK_Support[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4061  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4062  					v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_disabled;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4063  					if (v->SingleDPPViewportSizeSupportPerPlane[k] == false && v->WhenToDoMPCCombine != dm_mpc_never) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4064  						v->MPCCombine[i][j][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4065  						v->NoOfDPP[i][j][k] = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4066  						v->RequiredDPPCLK[i][j][k] = v->MinDPPCLKUsingSingleDPP[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) / 2.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4067  					} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4068  						v->MPCCombine[i][j][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4069  						v->NoOfDPP[i][j][k] = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4070  						v->RequiredDPPCLK[i][j][k] = v->MinDPPCLKUsingSingleDPP[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4071  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4072  					if (!(v->MaxDispclk[i] == v->MaxDispclk[v->soc.num_states - 1] && v->MaxDppclk[i] == v->MaxDppclk[v->soc.num_states - 1])) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4073  						v->PlaneRequiredDISPCLK = v->PixelClock[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4074  								* (1.0 + v->DISPCLKRampingMargin / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4075  					} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4076  						v->PlaneRequiredDISPCLK = v->PixelClock[k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4077  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4078  					v->RequiredDISPCLK[i][j] = dml_max(v->RequiredDISPCLK[i][j], v->PlaneRequiredDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4079  					if ((v->MinDPPCLKUsingSingleDPP[k] / v->NoOfDPP[i][j][k] * (1.0 + v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4080  							> v->MaxDppclkRoundedDownToDFSGranularity) || (v->PlaneRequiredDISPCLK > v->MaxDispclkRoundedDownToDFSGranularity)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4081  						v->DISPCLK_DPPCLK_Support[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4082  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4083  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4084  				v->TotalNumberOfActiveDPP[i][j] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4085  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4086  					v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + v->NoOfDPP[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4087  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4088  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4089  			v->RequiredDISPCLK[i][j] = dml_max(v->RequiredDISPCLK[i][j], v->WritebackRequiredDISPCLK);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4090  			if (v->MaxDispclkRoundedDownToDFSGranularity < v->WritebackRequiredDISPCLK) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4091  				v->DISPCLK_DPPCLK_Support[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4092  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4093  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4094  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4095  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4096  	/*Total Available Pipes Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4097  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4098  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4099  		for (j = 0; j < 2; j++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4100  			if (v->TotalNumberOfActiveDPP[i][j] <= v->MaxNumDPP) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4101  				v->TotalAvailablePipesSupport[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4102  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4103  				v->TotalAvailablePipesSupport[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4104  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4105  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4106  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4107  	/*Display IO and DSC Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4108  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4109  	v->NonsupportedDSCInputBPC = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4110  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4111  		if (!(v->DSCInputBitPerComponent[k] == 12.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4112  				|| v->DSCInputBitPerComponent[k] == 10.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4113  				|| v->DSCInputBitPerComponent[k] == 8.0)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4114  			v->NonsupportedDSCInputBPC = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4115  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4116  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4117  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4118  	/*Number Of DSC Slices*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4119  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4120  		if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4121  			if (v->PixelClockBackEnd[k] > 3200) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4122  				v->NumberOfDSCSlices[k] = dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4123  			} else if (v->PixelClockBackEnd[k] > 1360) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4124  				v->NumberOfDSCSlices[k] = 8;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4125  			} else if (v->PixelClockBackEnd[k] > 680) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4126  				v->NumberOfDSCSlices[k] = 4;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4127  			} else if (v->PixelClockBackEnd[k] > 340) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4128  				v->NumberOfDSCSlices[k] = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4129  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4130  				v->NumberOfDSCSlices[k] = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4131  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4132  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4133  			v->NumberOfDSCSlices[k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4134  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4135  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4136  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4137  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4138  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4139  			v->RequiresDSC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4140  			v->RequiresFEC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4141  			if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4142  				if (v->Output[k] == dm_hdmi) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4143  					v->RequiresDSC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4144  					v->RequiresFEC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4145  					v->OutputBppPerState[i][k] = TruncToValidBPP(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4146  							dml_min(600.0, v->PHYCLKPerState[i]) * 10,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4147  							3,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4148  							v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4149  							v->HActive[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4150  							v->PixelClockBackEnd[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4151  							v->ForcedOutputLinkBPP[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4152  							false,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4153  							v->Output[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4154  							v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4155  							v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4156  							v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4157  							v->AudioSampleRate[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4158  							v->AudioSampleLayout[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4159  							v->ODMCombineEnablePerState[i][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4160  				} else if (v->Output[k] == dm_dp || v->Output[k] == dm_edp) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4161  					if (v->DSCEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4162  						v->RequiresDSC[i][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4163  						v->LinkDSCEnable = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4164  						if (v->Output[k] == dm_dp) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4165  							v->RequiresFEC[i][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4166  						} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4167  							v->RequiresFEC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4168  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4169  					} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4170  						v->RequiresDSC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4171  						v->LinkDSCEnable = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4172  						v->RequiresFEC[i][k] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4173  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4174  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4175  					v->Outbpp = BPP_INVALID;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4176  					if (v->PHYCLKPerState[i] >= 270.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4177  						v->Outbpp = TruncToValidBPP(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4178  								(1.0 - v->Downspreading / 100.0) * 2700,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4179  								v->OutputLinkDPLanes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4180  								v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4181  								v->HActive[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4182  								v->PixelClockBackEnd[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4183  								v->ForcedOutputLinkBPP[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4184  								v->LinkDSCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4185  								v->Output[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4186  								v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4187  								v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4188  								v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4189  								v->AudioSampleRate[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4190  								v->AudioSampleLayout[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4191  								v->ODMCombineEnablePerState[i][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4192  						v->OutputBppPerState[i][k] = v->Outbpp;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4193  						// TODO: Need some other way to handle this nonsense
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4194  						// v->OutputTypeAndRatePerState[i][k] = v->Output[k] & " HBR"
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4195  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4196  					if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 540.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4197  						v->Outbpp = TruncToValidBPP(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4198  								(1.0 - v->Downspreading / 100.0) * 5400,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4199  								v->OutputLinkDPLanes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4200  								v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4201  								v->HActive[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4202  								v->PixelClockBackEnd[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4203  								v->ForcedOutputLinkBPP[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4204  								v->LinkDSCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4205  								v->Output[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4206  								v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4207  								v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4208  								v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4209  								v->AudioSampleRate[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4210  								v->AudioSampleLayout[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4211  								v->ODMCombineEnablePerState[i][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4212  						v->OutputBppPerState[i][k] = v->Outbpp;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4213  						// TODO: Need some other way to handle this nonsense
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4214  						// v->OutputTypeAndRatePerState[i][k] = v->Output[k] & " HBR2"
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4215  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4216  					if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 810.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4217  						v->Outbpp = TruncToValidBPP(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4218  								(1.0 - v->Downspreading / 100.0) * 8100,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4219  								v->OutputLinkDPLanes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4220  								v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4221  								v->HActive[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4222  								v->PixelClockBackEnd[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4223  								v->ForcedOutputLinkBPP[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4224  								v->LinkDSCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4225  								v->Output[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4226  								v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4227  								v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4228  								v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4229  								v->AudioSampleRate[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4230  								v->AudioSampleLayout[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4231  								v->ODMCombineEnablePerState[i][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4232  						if (v->Outbpp == BPP_INVALID && v->ForcedOutputLinkBPP[k] == 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4233  							//if (v->Outbpp == BPP_INVALID && v->DSCEnabled[k] == dm_dsc_enable_only_if_necessary && v->ForcedOutputLinkBPP[k] == 0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4234  							v->RequiresDSC[i][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4235  							v->LinkDSCEnable = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4236  							if (v->Output[k] == dm_dp) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4237  								v->RequiresFEC[i][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4238  							}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4239  							v->Outbpp = TruncToValidBPP(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4240  									(1.0 - v->Downspreading / 100.0) * 8100,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4241  									v->OutputLinkDPLanes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4242  									v->HTotal[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4243  									v->HActive[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4244  									v->PixelClockBackEnd[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4245  									v->ForcedOutputLinkBPP[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4246  									v->LinkDSCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4247  									v->Output[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4248  									v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4249  									v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4250  									v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4251  									v->AudioSampleRate[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4252  									v->AudioSampleLayout[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4253  									v->ODMCombineEnablePerState[i][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4254  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4255  						v->OutputBppPerState[i][k] = v->Outbpp;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4256  						// TODO: Need some other way to handle this nonsense
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4257  						// v->OutputTypeAndRatePerState[i][k] = v->Output[k] & " HBR3"
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4258  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4259  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4260  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4261  				v->OutputBppPerState[i][k] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4262  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4263  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4264  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4265  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4266  		v->DIOSupport[i] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4267  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
91a51fbf24e2d9 Wesley Chalmers    2021-01-29  4268  			if (!v->skip_dio_check[k] && v->BlendingAndTiming[k] == k && (v->Output[k] == dm_dp || v->Output[k] == dm_edp || v->Output[k] == dm_hdmi)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4269  					&& (v->OutputBppPerState[i][k] == 0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4270  							|| (v->OutputFormat[k] == dm_420 && v->Interlace[k] == true && v->ProgressiveToInterlaceUnitInOPP == true))) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4271  				v->DIOSupport[i] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4272  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4273  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4274  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4275  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4276  	for (i = 0; i < v->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4277  		v->ODMCombine4To1SupportCheckOK[i] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4278  		for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4279  			if (v->BlendingAndTiming[k] == k && v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_4to1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4280  					&& (v->ODMCombine4To1Supported == false || v->Output[k] == dm_dp || v->Output[k] == dm_edp || v->Output[k] == dm_hdmi)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4281  				v->ODMCombine4To1SupportCheckOK[i] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4282  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4283  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4284  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4285  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4286  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4287  		v->DSCCLKRequiredMoreThanSupported[i] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4288  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4289  			if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4290  				if (v->Output[k] == dm_dp || v->Output[k] == dm_edp) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4291  					if (v->OutputFormat[k] == dm_420) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4292  						v->DSCFormatFactor = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4293  					} else if (v->OutputFormat[k] == dm_444) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4294  						v->DSCFormatFactor = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4295  					} else if (v->OutputFormat[k] == dm_n422) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4296  						v->DSCFormatFactor = 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4297  					} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4298  						v->DSCFormatFactor = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4299  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4300  					if (v->RequiresDSC[i][k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4301  						if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_4to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4302  							if (v->PixelClockBackEnd[k] / 12.0 / v->DSCFormatFactor
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4303  									> (1.0 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) * v->MaxDSCCLK[i]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4304  								v->DSCCLKRequiredMoreThanSupported[i] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4305  							}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4306  						} else if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4307  							if (v->PixelClockBackEnd[k] / 6.0 / v->DSCFormatFactor
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4308  									> (1.0 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) * v->MaxDSCCLK[i]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4309  								v->DSCCLKRequiredMoreThanSupported[i] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4310  							}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4311  						} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4312  							if (v->PixelClockBackEnd[k] / 3.0 / v->DSCFormatFactor
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4313  									> (1.0 - v->DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) * v->MaxDSCCLK[i]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4314  								v->DSCCLKRequiredMoreThanSupported[i] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4315  							}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4316  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4317  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4318  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4319  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4320  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4321  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4322  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4323  		v->NotEnoughDSCUnits[i] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4324  		v->TotalDSCUnitsRequired = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4325  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4326  			if (v->RequiresDSC[i][k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4327  				if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_4to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4328  					v->TotalDSCUnitsRequired = v->TotalDSCUnitsRequired + 4.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4329  				} else if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4330  					v->TotalDSCUnitsRequired = v->TotalDSCUnitsRequired + 2.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4331  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4332  					v->TotalDSCUnitsRequired = v->TotalDSCUnitsRequired + 1.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4333  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4334  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4335  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4336  		if (v->TotalDSCUnitsRequired > v->NumberOfDSC) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4337  			v->NotEnoughDSCUnits[i] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4338  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4339  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4340  	/*DSC Delay per state*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4341  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4342  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4343  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4344  			if (v->OutputBppPerState[i][k] == BPP_INVALID) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4345  				v->BPP = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4346  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4347  				v->BPP = v->OutputBppPerState[i][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4348  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4349  			if (v->RequiresDSC[i][k] == true && v->BPP != 0.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4350  				if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_disabled) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4351  					v->DSCDelayPerState[i][k] = dscceComputeDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4352  							v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4353  							v->BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4354  							dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4355  							v->NumberOfDSCSlices[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4356  							v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4357  							v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4358  				} else if (v->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4359  					v->DSCDelayPerState[i][k] = 2.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4360  							* dscceComputeDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4361  									v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4362  									v->BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4363  									dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4364  									v->NumberOfDSCSlices[k] / 2,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4365  									v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4366  									v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4367  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4368  					v->DSCDelayPerState[i][k] = 4.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4369  							* (dscceComputeDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4370  									v->DSCInputBitPerComponent[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4371  									v->BPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4372  									dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4373  									v->NumberOfDSCSlices[k] / 4,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4374  									v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4375  									v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4376  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4377  				v->DSCDelayPerState[i][k] = v->DSCDelayPerState[i][k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4378  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4379  				v->DSCDelayPerState[i][k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4380  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4381  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4382  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4383  			for (m = 0; m <= v->NumberOfActivePlanes - 1; m++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4384  				if (v->BlendingAndTiming[k] == m && v->RequiresDSC[i][m] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4385  					v->DSCDelayPerState[i][k] = v->DSCDelayPerState[i][m];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4386  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4387  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4388  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4389  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4390  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4391  	//Calculate Swath, DET Configuration, DCFCLKDeepSleep
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4392  	//
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4393  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4394  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4395  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4396  				v->RequiredDPPCLKThisState[k] = v->RequiredDPPCLK[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4397  				v->NoOfDPPThisState[k] = v->NoOfDPP[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4398  				v->ODMCombineEnableThisState[k] = v->ODMCombineEnablePerState[i][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4399  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4400  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4401  			CalculateSwathAndDETConfiguration(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4402  					false,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4403  					v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4404  					v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4405  					v->MaximumSwathWidthLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4406  					v->MaximumSwathWidthChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4407  					v->SourceScan,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4408  					v->SourcePixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4409  					v->SurfaceTiling,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4410  					v->ViewportWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4411  					v->ViewportHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4412  					v->SurfaceWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4413  					v->SurfaceWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4414  					v->SurfaceHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4415  					v->SurfaceHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4416  					v->Read256BlockHeightY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4417  					v->Read256BlockHeightC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4418  					v->Read256BlockWidthY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4419  					v->Read256BlockWidthC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4420  					v->ODMCombineEnableThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4421  					v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4422  					v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4423  					v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4424  					v->BytePerPixelInDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4425  					v->BytePerPixelInDETC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4426  					v->HActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4427  					v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4428  					v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4429  					v->NoOfDPPThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4430  					v->swath_width_luma_ub_this_state,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4431  					v->swath_width_chroma_ub_this_state,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4432  					v->SwathWidthYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4433  					v->SwathWidthCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4434  					v->SwathHeightYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4435  					v->SwathHeightCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4436  					v->DETBufferSizeYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4437  					v->DETBufferSizeCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4438  					v->dummystring,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4439  					&v->ViewportSizeSupport[i][j]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4440  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4441  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4442  				v->swath_width_luma_ub_all_states[i][j][k] = v->swath_width_luma_ub_this_state[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4443  				v->swath_width_chroma_ub_all_states[i][j][k] = v->swath_width_chroma_ub_this_state[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4444  				v->SwathWidthYAllStates[i][j][k] = v->SwathWidthYThisState[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4445  				v->SwathWidthCAllStates[i][j][k] = v->SwathWidthCThisState[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4446  				v->SwathHeightYAllStates[i][j][k] = v->SwathHeightYThisState[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4447  				v->SwathHeightCAllStates[i][j][k] = v->SwathHeightCThisState[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4448  				v->DETBufferSizeYAllStates[i][j][k] = v->DETBufferSizeYThisState[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4449  				v->DETBufferSizeCAllStates[i][j][k] = v->DETBufferSizeCThisState[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4450  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4451  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4452  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4453  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4454  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4455  		v->cursor_bw[k] = v->NumberOfCursors[k] * v->CursorWidth[k][0] * v->CursorBPP[k][0] / 8.0 / (v->HTotal[k] / v->PixelClock[k]) * v->VRatio[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4456  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4457  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4458  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4459  		for (j = 0; j < 2; j++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4460  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4461  				v->swath_width_luma_ub_this_state[k] = v->swath_width_luma_ub_all_states[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4462  				v->swath_width_chroma_ub_this_state[k] = v->swath_width_chroma_ub_all_states[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4463  				v->SwathWidthYThisState[k] = v->SwathWidthYAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4464  				v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4465  				v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4466  				v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4467  				v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4468  				v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4469  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4470  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4471  			v->TotalNumberOfDCCActiveDPP[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4472  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4473  				if (v->DCCEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4474  					v->TotalNumberOfDCCActiveDPP[i][j] = v->TotalNumberOfDCCActiveDPP[i][j] + v->NoOfDPP[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4475  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4476  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4477  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4478  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4479  				if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4480  						|| v->SourcePixelFormat[k] == dm_rgbe_alpha) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4481  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4482  					if ((v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) && v->SourceScan[k] != dm_vert) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4483  						v->PTEBufferSizeInRequestsForLuma = (v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma) / 2;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4484  						v->PTEBufferSizeInRequestsForChroma = v->PTEBufferSizeInRequestsForLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4485  					} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4486  						v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4487  						v->PTEBufferSizeInRequestsForChroma = v->PTEBufferSizeInRequestsChroma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4488  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4489  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4490  					v->PDEAndMetaPTEBytesPerFrameC = CalculateVMAndRowBytes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4491  							mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4492  							v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4493  							v->Read256BlockHeightC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4494  							v->Read256BlockWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4495  							v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4496  							v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4497  							v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4498  							v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4499  							v->SwathWidthCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4500  							v->ViewportHeightChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4501  							v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4502  							v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4503  							v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4504  							v->GPUVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4505  							v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4506  							v->PTEBufferSizeInRequestsForChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4507  							v->PitchC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4508  							0.0,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4509  							&v->MacroTileWidthC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4510  							&v->MetaRowBytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4511  							&v->DPTEBytesPerRowC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4512  							&v->PTEBufferSizeNotExceededC[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4513  							&v->dummyinteger7,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4514  							&v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4515  							&v->dummyinteger28,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4516  							&v->dummyinteger26,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4517  							&v->dummyinteger23,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4518  							&v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4519  							&v->dummyinteger8,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4520  							&v->dummyinteger9,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4521  							&v->dummyinteger19,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4522  							&v->dummyinteger20,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4523  							&v->dummyinteger17,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4524  							&v->dummyinteger10,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4525  							&v->dummyinteger11);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4526  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4527  					v->PrefetchLinesC[i][j][k] = CalculatePrefetchSourceLines(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4528  							mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4529  							v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4530  							v->VTAPsChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4531  							v->Interlace[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4532  							v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4533  							v->SwathHeightCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4534  							v->ViewportYStartC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4535  							&v->PrefillC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4536  							&v->MaxNumSwC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4537  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4538  					v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4539  					v->PTEBufferSizeInRequestsForChroma = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4540  					v->PDEAndMetaPTEBytesPerFrameC = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4541  					v->MetaRowBytesC = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4542  					v->DPTEBytesPerRowC = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4543  					v->PrefetchLinesC[i][j][k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4544  					v->PTEBufferSizeNotExceededC[i][j][k] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4545  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4546  				v->PDEAndMetaPTEBytesPerFrameY = CalculateVMAndRowBytes(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4547  						mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4548  						v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4549  						v->Read256BlockHeightY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4550  						v->Read256BlockWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4551  						v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4552  						v->SurfaceTiling[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4553  						v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4554  						v->SourceScan[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4555  						v->SwathWidthYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4556  						v->ViewportHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4557  						v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4558  						v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4559  						v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4560  						v->GPUVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4561  						v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4562  						v->PTEBufferSizeInRequestsForLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4563  						v->PitchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4564  						v->DCCMetaPitchY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4565  						&v->MacroTileWidthY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4566  						&v->MetaRowBytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4567  						&v->DPTEBytesPerRowY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4568  						&v->PTEBufferSizeNotExceededY[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4569  						v->dummyinteger4,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4570  						&v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4571  						&v->dummyinteger29,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4572  						&v->dummyinteger27,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4573  						&v->dummyinteger24,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4574  						&v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4575  						&v->dummyinteger25,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4576  						&v->dpte_group_bytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4577  						&v->dummyinteger21,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4578  						&v->dummyinteger22,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4579  						&v->dummyinteger18,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4580  						&v->dummyinteger5,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4581  						&v->dummyinteger6);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4582  				v->PrefetchLinesY[i][j][k] = CalculatePrefetchSourceLines(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4583  						mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4584  						v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4585  						v->vtaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4586  						v->Interlace[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4587  						v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4588  						v->SwathHeightYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4589  						v->ViewportYStartY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4590  						&v->PrefillY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4591  						&v->MaxNumSwY[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4592  				v->PDEAndMetaPTEBytesPerFrame[i][j][k] = v->PDEAndMetaPTEBytesPerFrameY + v->PDEAndMetaPTEBytesPerFrameC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4593  				v->MetaRowBytes[i][j][k] = v->MetaRowBytesY + v->MetaRowBytesC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4594  				v->DPTEBytesPerRow[i][j][k] = v->DPTEBytesPerRowY + v->DPTEBytesPerRowC;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4595  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4596  				CalculateRowBandwidth(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4597  						v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4598  						v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4599  						v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4600  						v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4601  						v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4602  						v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4603  						v->MetaRowBytesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4604  						v->MetaRowBytesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4605  						v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4606  						v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4607  						v->DPTEBytesPerRowY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4608  						v->DPTEBytesPerRowC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4609  						v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4610  						v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4611  						&v->meta_row_bandwidth[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4612  						&v->dpte_row_bandwidth[i][j][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4613  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4614  			v->UrgLatency[i] = CalculateUrgentLatency(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4615  					v->UrgentLatencyPixelDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4616  					v->UrgentLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4617  					v->UrgentLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4618  					v->DoUrgentLatencyAdjustment,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4619  					v->UrgentLatencyAdjustmentFabricClockComponent,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4620  					v->UrgentLatencyAdjustmentFabricClockReference,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4621  					v->FabricClockPerState[i]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4622  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4623  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4624  				CalculateUrgentBurstFactor(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4625  						v->swath_width_luma_ub_this_state[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4626  						v->swath_width_chroma_ub_this_state[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4627  						v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4628  						v->SwathHeightYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4629  						v->SwathHeightCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4630  						v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4631  						v->UrgLatency[i],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4632  						v->CursorBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4633  						v->CursorWidth[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4634  						v->CursorBPP[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4635  						v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4636  						v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4637  						v->BytePerPixelInDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4638  						v->BytePerPixelInDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4639  						v->DETBufferSizeYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4640  						v->DETBufferSizeCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4641  						&v->UrgentBurstFactorCursor[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4642  						&v->UrgentBurstFactorLuma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4643  						&v->UrgentBurstFactorChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4644  						&NotUrgentLatencyHiding[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4645  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4646  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4647  			v->NotUrgentLatencyHiding[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4648  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4649  				if (NotUrgentLatencyHiding[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4650  					v->NotUrgentLatencyHiding[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4651  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4652  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4653  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4654  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4655  				v->VActivePixelBandwidth[i][j][k] = v->ReadBandwidthLuma[k] * v->UrgentBurstFactorLuma[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4656  						+ v->ReadBandwidthChroma[k] * v->UrgentBurstFactorChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4657  				v->VActiveCursorBandwidth[i][j][k] = v->cursor_bw[k] * v->UrgentBurstFactorCursor[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4658  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4659  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4660  			v->TotalVActivePixelBandwidth[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4661  			v->TotalVActiveCursorBandwidth[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4662  			v->TotalMetaRowBandwidth[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4663  			v->TotalDPTERowBandwidth[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4664  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4665  				v->TotalVActivePixelBandwidth[i][j] = v->TotalVActivePixelBandwidth[i][j] + v->VActivePixelBandwidth[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4666  				v->TotalVActiveCursorBandwidth[i][j] = v->TotalVActiveCursorBandwidth[i][j] + v->VActiveCursorBandwidth[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4667  				v->TotalMetaRowBandwidth[i][j] = v->TotalMetaRowBandwidth[i][j] + v->NoOfDPP[i][j][k] * v->meta_row_bandwidth[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4668  				v->TotalDPTERowBandwidth[i][j] = v->TotalDPTERowBandwidth[i][j] + v->NoOfDPP[i][j][k] * v->dpte_row_bandwidth[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4669  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4670  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4671  			CalculateDCFCLKDeepSleep(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4672  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4673  					v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4674  					v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4675  					v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4676  					v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4677  					v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4678  					v->SwathWidthYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4679  					v->SwathWidthCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4680  					v->NoOfDPPThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4681  					v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4682  					v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4683  					v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4684  					v->PSCL_FACTOR,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4685  					v->PSCL_FACTOR_CHROMA,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4686  					v->RequiredDPPCLKThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4687  					v->ReadBandwidthLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4688  					v->ReadBandwidthChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4689  					v->ReturnBusWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4690  					&v->ProjectedDCFCLKDeepSleep[i][j]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4691  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4692  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4693  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4694  	//Calculate Return BW
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4695  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4696  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4697  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4698  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4699  				if (v->BlendingAndTiming[k] == k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4700  					if (v->WritebackEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4701  						v->WritebackDelayTime[k] = v->WritebackLatency
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4702  								+ CalculateWriteBackDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4703  										v->WritebackPixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4704  										v->WritebackHRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4705  										v->WritebackVRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4706  										v->WritebackVTaps[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4707  										v->WritebackDestinationWidth[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4708  										v->WritebackDestinationHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4709  										v->WritebackSourceHeight[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4710  										v->HTotal[k]) / v->RequiredDISPCLK[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4711  					} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4712  						v->WritebackDelayTime[k] = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4713  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4714  					for (m = 0; m <= v->NumberOfActivePlanes - 1; m++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4715  						if (v->BlendingAndTiming[m] == k && v->WritebackEnable[m] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4716  							v->WritebackDelayTime[k] = dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4717  									v->WritebackDelayTime[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4718  									v->WritebackLatency
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4719  											+ CalculateWriteBackDelay(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4720  													v->WritebackPixelFormat[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4721  													v->WritebackHRatio[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4722  													v->WritebackVRatio[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4723  													v->WritebackVTaps[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4724  													v->WritebackDestinationWidth[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4725  													v->WritebackDestinationHeight[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4726  													v->WritebackSourceHeight[m],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4727  													v->HTotal[m]) / v->RequiredDISPCLK[i][j]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4728  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4729  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4730  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4731  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4732  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4733  				for (m = 0; m <= v->NumberOfActivePlanes - 1; m++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4734  					if (v->BlendingAndTiming[k] == m) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4735  						v->WritebackDelayTime[k] = v->WritebackDelayTime[m];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4736  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4737  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4738  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4739  			v->MaxMaxVStartup[i][j] = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4740  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4741  				v->MaximumVStartup[i][j][k] = v->VTotal[k] - v->VActive[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4742  						- dml_max(1.0, dml_ceil(1.0 * v->WritebackDelayTime[k] / (v->HTotal[k] / v->PixelClock[k]), 1.0));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4743  				v->MaxMaxVStartup[i][j] = dml_max(v->MaxMaxVStartup[i][j], v->MaximumVStartup[i][j][k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4744  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4745  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4746  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4747  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4748  	ReorderingBytes = v->NumberOfChannels
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4749  			* dml_max3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4750  					v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4751  					v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4752  					v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4753  	v->FinalDRAMClockChangeLatency = (v->DRAMClockChangeLatencyOverride > 0 ? v->DRAMClockChangeLatencyOverride : v->DRAMClockChangeLatency);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4754  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4755  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4756  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4757  			v->DCFCLKState[i][j] = v->DCFCLKPerState[i];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4758  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4759  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4760  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4761  	if (v->UseMinimumRequiredDCFCLK == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4762  		UseMinimumDCFCLK(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4763  				mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4764  				v->MaxInterDCNTileRepeaters,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4765  				MaxPrefetchMode,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4766  				v->FinalDRAMClockChangeLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4767  				v->SREnterPlusExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4768  				v->ReturnBusWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4769  				v->RoundTripPingLatencyCycles,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4770  				ReorderingBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4771  				v->PixelChunkSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4772  				v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4773  				v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4774  				v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4775  				v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4776  				v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4777  				v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4778  				v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4779  				v->DynamicMetadataVMEnabled,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4780  				v->ImmediateFlipRequirement,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4781  				v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4782  				v->MaxAveragePercentOfIdealSDPPortBWDisplayCanUseInNormalSystemOperation,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4783  				v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4784  				v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4785  				v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4786  				v->VTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4787  				v->VActive,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4788  				v->DynamicMetadataTransmittedBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4789  				v->DynamicMetadataLinesBeforeActiveRequired,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4790  				v->Interlace,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4791  				v->RequiredDPPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4792  				v->RequiredDISPCLK,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4793  				v->UrgLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4794  				v->NoOfDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4795  				v->ProjectedDCFCLKDeepSleep,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4796  				v->MaximumVStartup,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4797  				v->TotalVActivePixelBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4798  				v->TotalVActiveCursorBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4799  				v->TotalMetaRowBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4800  				v->TotalDPTERowBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4801  				v->TotalNumberOfActiveDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4802  				v->TotalNumberOfDCCActiveDPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4803  				v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4804  				v->PrefetchLinesY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4805  				v->PrefetchLinesC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4806  				v->swath_width_luma_ub_all_states,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4807  				v->swath_width_chroma_ub_all_states,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4808  				v->BytePerPixelY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4809  				v->BytePerPixelC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4810  				v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4811  				v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4812  				v->PDEAndMetaPTEBytesPerFrame,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4813  				v->DPTEBytesPerRow,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4814  				v->MetaRowBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4815  				v->DynamicMetadataEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4816  				v->VActivePixelBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4817  				v->VActiveCursorBandwidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4818  				v->ReadBandwidthLuma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4819  				v->ReadBandwidthChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4820  				v->DCFCLKPerState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4821  				v->DCFCLKState);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4822  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4823  		if (v->ClampMinDCFCLK) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4824  			/* Clamp calculated values to actual minimum */
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4825  			for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4826  				for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4827  					if (v->DCFCLKState[i][j] < mode_lib->soc.min_dcfclk) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4828  						v->DCFCLKState[i][j] = mode_lib->soc.min_dcfclk;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4829  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4830  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4831  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4832  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4833  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4834  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4835  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4836  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4837  			v->IdealSDPPortBandwidthPerState[i][j] = dml_min3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4838  					v->ReturnBusWidth * v->DCFCLKState[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4839  					v->DRAMSpeedPerState[i] * v->NumberOfChannels * v->DRAMChannelWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4840  					v->FabricClockPerState[i] * v->FabricDatapathToDCNDataReturn);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4841  			if (v->HostVMEnable != true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4842  				v->ReturnBWPerState[i][j] = v->IdealSDPPortBandwidthPerState[i][j] * v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelDataOnly
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4843  						/ 100;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4844  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4845  				v->ReturnBWPerState[i][j] = v->IdealSDPPortBandwidthPerState[i][j]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4846  						* v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData / 100;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4847  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4848  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4849  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4850  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4851  	//Re-ordering Buffer Support Check
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4852  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4853  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4854  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4855  			if ((v->ROBBufferSizeInKByte - v->PixelChunkSizeInKByte) * 1024 / v->ReturnBWPerState[i][j]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4856  					> (v->RoundTripPingLatencyCycles + 32) / v->DCFCLKState[i][j] + ReorderingBytes / v->ReturnBWPerState[i][j]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4857  				v->ROBSupport[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4858  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4859  				v->ROBSupport[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4860  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4861  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4862  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4863  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4864  	//Vertical Active BW support check
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4865  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4866  	MaxTotalVActiveRDBandwidth = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4867  	for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4868  		MaxTotalVActiveRDBandwidth = MaxTotalVActiveRDBandwidth + v->ReadBandwidthLuma[k] + v->ReadBandwidthChroma[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4869  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4870  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4871  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4872  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4873  			v->MaxTotalVerticalActiveAvailableBandwidth[i][j] = dml_min(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4874  					v->IdealSDPPortBandwidthPerState[i][j] * v->MaxAveragePercentOfIdealSDPPortBWDisplayCanUseInNormalSystemOperation / 100,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4875  					v->DRAMSpeedPerState[i] * v->NumberOfChannels * v->DRAMChannelWidth * v->MaxAveragePercentOfIdealDRAMBWDisplayCanUseInNormalSystemOperation
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4876  							/ 100);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4877  			if (MaxTotalVActiveRDBandwidth <= v->MaxTotalVerticalActiveAvailableBandwidth[i][j]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4878  				v->TotalVerticalActiveBandwidthSupport[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4879  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4880  				v->TotalVerticalActiveBandwidthSupport[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4881  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4882  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4883  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4884  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4885  	//Prefetch Check
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4886  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4887  	for (i = 0; i < mode_lib->soc.num_states; ++i) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4888  		for (j = 0; j <= 1; ++j) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4889  			int NextPrefetchModeState = MinPrefetchMode;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4890  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4891  			v->TimeCalc = 24 / v->ProjectedDCFCLKDeepSleep[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4892  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4893  			v->BandwidthWithoutPrefetchSupported[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4894  			if (v->TotalVActivePixelBandwidth[i][j] + v->TotalVActiveCursorBandwidth[i][j] + v->TotalMetaRowBandwidth[i][j] + v->TotalDPTERowBandwidth[i][j]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4895  					> v->ReturnBWPerState[i][j] || v->NotUrgentLatencyHiding[i][j]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4896  				v->BandwidthWithoutPrefetchSupported[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4897  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4898  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4899  			for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4900  				v->NoOfDPPThisState[k] = v->NoOfDPP[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4901  				v->swath_width_luma_ub_this_state[k] = v->swath_width_luma_ub_all_states[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4902  				v->swath_width_chroma_ub_this_state[k] = v->swath_width_chroma_ub_all_states[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4903  				v->SwathWidthYThisState[k] = v->SwathWidthYAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4904  				v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4905  				v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4906  				v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4907  				v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4908  				v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4909  				v->ODMCombineEnabled[k] = v->ODMCombineEnablePerState[i][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4910  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4911  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4912  			v->ExtraLatency = CalculateExtraLatency(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4913  					v->RoundTripPingLatencyCycles,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4914  					ReorderingBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4915  					v->DCFCLKState[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4916  					v->TotalNumberOfActiveDPP[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4917  					v->PixelChunkSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4918  					v->TotalNumberOfDCCActiveDPP[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4919  					v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4920  					v->ReturnBWPerState[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4921  					v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4922  					v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4923  					v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4924  					v->NoOfDPPThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4925  					v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4926  					v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4927  					v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4928  					v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4929  					v->HostVMMaxNonCachedPageTableLevels);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4930  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4931  			v->NextMaxVStartup = v->MaxMaxVStartup[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4932  			do {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4933  				v->PrefetchModePerState[i][j] = NextPrefetchModeState;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4934  				v->MaxVStartup = v->NextMaxVStartup;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4935  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4936  				v->TWait = CalculateTWait(v->PrefetchModePerState[i][j], v->FinalDRAMClockChangeLatency, v->UrgLatency[i], v->SREnterPlusExitTime);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4937  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4938  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4939  					Pipe myPipe = { 0 };
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4940  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4941  					myPipe.DPPCLK = v->RequiredDPPCLK[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4942  					myPipe.DISPCLK = v->RequiredDISPCLK[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4943  					myPipe.PixelClock = v->PixelClock[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4944  					myPipe.DCFCLKDeepSleep = v->ProjectedDCFCLKDeepSleep[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4945  					myPipe.DPPPerPlane = v->NoOfDPP[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4946  					myPipe.ScalerEnabled = v->ScalerEnabled[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4947  					myPipe.SourceScan = v->SourceScan[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4948  					myPipe.BlockWidth256BytesY = v->Read256BlockWidthY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4949  					myPipe.BlockHeight256BytesY = v->Read256BlockHeightY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4950  					myPipe.BlockWidth256BytesC = v->Read256BlockWidthC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4951  					myPipe.BlockHeight256BytesC = v->Read256BlockHeightC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4952  					myPipe.InterlaceEnable = v->Interlace[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4953  					myPipe.NumberOfCursors = v->NumberOfCursors[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4954  					myPipe.VBlank = v->VTotal[k] - v->VActive[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4955  					myPipe.HTotal = v->HTotal[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4956  					myPipe.DCCEnable = v->DCCEnable[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4957  					myPipe.ODMCombineEnabled = !!v->ODMCombineEnabled[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4958  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4959  					v->NoTimeForPrefetch[i][j][k] = CalculatePrefetchSchedule(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4960  							mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4961  							v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4962  							v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4963  							&myPipe,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4964  							v->DSCDelayPerState[i][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4965  							v->DPPCLKDelaySubtotal + v->DPPCLKDelayCNVCFormater,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4966  							v->DPPCLKDelaySCL,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4967  							v->DPPCLKDelaySCLLBOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4968  							v->DPPCLKDelayCNVCCursor,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4969  							v->DISPCLKDelaySubtotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4970  							v->SwathWidthYThisState[k] / v->HRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4971  							v->OutputFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4972  							v->MaxInterDCNTileRepeaters,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4973  							dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4974  							v->MaximumVStartup[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4975  							v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4976  							v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4977  							v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4978  							v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4979  							v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4980  							v->DynamicMetadataEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4981  							v->DynamicMetadataVMEnabled,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4982  							v->DynamicMetadataLinesBeforeActiveRequired[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4983  							v->DynamicMetadataTransmittedBytes[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4984  							v->UrgLatency[i],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4985  							v->ExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4986  							v->TimeCalc,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4987  							v->PDEAndMetaPTEBytesPerFrame[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4988  							v->MetaRowBytes[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4989  							v->DPTEBytesPerRow[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4990  							v->PrefetchLinesY[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4991  							v->SwathWidthYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4992  							v->BytePerPixelY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4993  							v->PrefillY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4994  							v->MaxNumSwY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4995  							v->PrefetchLinesC[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4996  							v->SwathWidthCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4997  							v->BytePerPixelC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4998  							v->PrefillC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  4999  							v->MaxNumSwC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5000  							v->swath_width_luma_ub_this_state[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5001  							v->swath_width_chroma_ub_this_state[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5002  							v->SwathHeightYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5003  							v->SwathHeightCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5004  							v->TWait,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5005  							v->ProgressiveToInterlaceUnitInOPP,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5006  							&v->DSTXAfterScaler[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5007  							&v->DSTYAfterScaler[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5008  							&v->LineTimesForPrefetch[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5009  							&v->PrefetchBW[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5010  							&v->LinesForMetaPTE[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5011  							&v->LinesForMetaAndDPTERow[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5012  							&v->VRatioPreY[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5013  							&v->VRatioPreC[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5014  							&v->RequiredPrefetchPixelDataBWLuma[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5015  							&v->RequiredPrefetchPixelDataBWChroma[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5016  							&v->NoTimeForDynamicMetadata[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5017  							&v->Tno_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5018  							&v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5019  							&v->Tdmdl_vm[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5020  							&v->Tdmdl[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5021  							&v->VUpdateOffsetPix[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5022  							&v->VUpdateWidthPix[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5023  							&v->VReadyOffsetPix[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5024  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5025  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5026  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5027  					CalculateUrgentBurstFactor(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5028  							v->swath_width_luma_ub_this_state[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5029  							v->swath_width_chroma_ub_this_state[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5030  							v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5031  							v->SwathHeightYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5032  							v->SwathHeightCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5033  							v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5034  							v->UrgentLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5035  							v->CursorBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5036  							v->CursorWidth[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5037  							v->CursorBPP[k][0],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5038  							v->VRatioPreY[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5039  							v->VRatioPreC[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5040  							v->BytePerPixelInDETY[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5041  							v->BytePerPixelInDETC[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5042  							v->DETBufferSizeYThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5043  							v->DETBufferSizeCThisState[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5044  							&v->UrgentBurstFactorCursorPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5045  							&v->UrgentBurstFactorLumaPre[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5046  							&v->UrgentBurstFactorChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5047  							&v->NoUrgentLatencyHidingPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5048  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5049  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5050  				v->MaximumReadBandwidthWithPrefetch = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5051  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5052  					v->cursor_bw_pre[k] = v->NumberOfCursors[k] * v->CursorWidth[k][0] * v->CursorBPP[k][0] / 8.0 / (v->HTotal[k] / v->PixelClock[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5053  							* v->VRatioPreY[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5054  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5055  					v->MaximumReadBandwidthWithPrefetch = v->MaximumReadBandwidthWithPrefetch
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5056  							+ dml_max4(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5057  									v->VActivePixelBandwidth[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5058  									v->VActiveCursorBandwidth[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5059  											+ v->NoOfDPP[i][j][k] * (v->meta_row_bandwidth[i][j][k] + v->dpte_row_bandwidth[i][j][k]),
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5060  									v->NoOfDPP[i][j][k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5061  									v->NoOfDPP[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5062  											* (v->RequiredPrefetchPixelDataBWLuma[i][j][k] * v->UrgentBurstFactorLumaPre[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5063  													+ v->RequiredPrefetchPixelDataBWChroma[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5064  															* v->UrgentBurstFactorChromaPre[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5065  											+ v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5066  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5067  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5068  				v->NotEnoughUrgentLatencyHidingPre = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5069  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5070  					if (v->NoUrgentLatencyHidingPre[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5071  						v->NotEnoughUrgentLatencyHidingPre = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5072  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5073  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5074  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5075  				v->PrefetchSupported[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5076  				if (v->BandwidthWithoutPrefetchSupported[i][j] == false || v->MaximumReadBandwidthWithPrefetch > v->ReturnBWPerState[i][j]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5077  						|| v->NotEnoughUrgentLatencyHidingPre == 1) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5078  					v->PrefetchSupported[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5079  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5080  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5081  					if (v->LineTimesForPrefetch[k] < 2.0 || v->LinesForMetaPTE[k] >= 32.0 || v->LinesForMetaAndDPTERow[k] >= 16.0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5082  							|| v->NoTimeForPrefetch[i][j][k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5083  						v->PrefetchSupported[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5084  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5085  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5086  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5087  				v->DynamicMetadataSupported[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5088  				for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5089  					if (v->NoTimeForDynamicMetadata[i][j][k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5090  						v->DynamicMetadataSupported[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5091  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5092  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5093  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5094  				v->VRatioInPrefetchSupported[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5095  				for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5096  					if (v->VRatioPreY[i][j][k] > 4.0 || v->VRatioPreC[i][j][k] > 4.0 || v->NoTimeForPrefetch[i][j][k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5097  						v->VRatioInPrefetchSupported[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5098  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5099  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5100  				v->AnyLinesForVMOrRowTooLarge = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5101  				for (k = 0; k < v->NumberOfActivePlanes; ++k) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5102  					if (v->LinesForMetaAndDPTERow[k] >= 16 || v->LinesForMetaPTE[k] >= 32) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5103  						v->AnyLinesForVMOrRowTooLarge = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5104  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5105  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5106  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5107  				if (v->PrefetchSupported[i][j] == true && v->VRatioInPrefetchSupported[i][j] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5108  					v->BandwidthAvailableForImmediateFlip = v->ReturnBWPerState[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5109  					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5110  						v->BandwidthAvailableForImmediateFlip = v->BandwidthAvailableForImmediateFlip
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5111  								- dml_max(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5112  										v->VActivePixelBandwidth[i][j][k] + v->VActiveCursorBandwidth[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5113  										v->NoOfDPP[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5114  												* (v->RequiredPrefetchPixelDataBWLuma[i][j][k] * v->UrgentBurstFactorLumaPre[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5115  														+ v->RequiredPrefetchPixelDataBWChroma[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5116  																* v->UrgentBurstFactorChromaPre[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5117  												+ v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5118  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5119  					v->TotImmediateFlipBytes = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5120  					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5121  						v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->NoOfDPP[i][j][k] * v->PDEAndMetaPTEBytesPerFrame[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5122  								+ v->MetaRowBytes[i][j][k] + v->DPTEBytesPerRow[i][j][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5123  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5124  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5125  					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5126  						CalculateFlipSchedule(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5127  								mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5128  								v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5129  								v->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5130  								v->ExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5131  								v->UrgLatency[i],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5132  								v->GPUVMMaxPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5133  								v->HostVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5134  								v->HostVMMaxNonCachedPageTableLevels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5135  								v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5136  								v->HostVMMinPageSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5137  								v->PDEAndMetaPTEBytesPerFrame[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5138  								v->MetaRowBytes[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5139  								v->DPTEBytesPerRow[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5140  								v->BandwidthAvailableForImmediateFlip,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5141  								v->TotImmediateFlipBytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5142  								v->SourcePixelFormat[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5143  								v->HTotal[k] / v->PixelClock[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5144  								v->VRatio[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5145  								v->VRatioChroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5146  								v->Tno_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5147  								v->DCCEnable[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5148  								v->dpte_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5149  								v->meta_row_height[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5150  								v->dpte_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5151  								v->meta_row_height_chroma[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5152  								&v->DestinationLinesToRequestVMInImmediateFlip[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5153  								&v->DestinationLinesToRequestRowInImmediateFlip[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5154  								&v->final_flip_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5155  								&v->ImmediateFlipSupportedForPipe[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5156  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5157  					v->total_dcn_read_bw_with_flip = 0.0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5158  					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5159  						v->total_dcn_read_bw_with_flip = v->total_dcn_read_bw_with_flip
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5160  								+ dml_max3(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5161  										v->NoOfDPP[i][j][k] * v->prefetch_vmrow_bw[k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5162  										v->NoOfDPP[i][j][k] * v->final_flip_bw[k] + v->VActivePixelBandwidth[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5163  												+ v->VActiveCursorBandwidth[i][j][k],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5164  										v->NoOfDPP[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5165  												* (v->final_flip_bw[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5166  														+ v->RequiredPrefetchPixelDataBWLuma[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5167  																* v->UrgentBurstFactorLumaPre[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5168  														+ v->RequiredPrefetchPixelDataBWChroma[i][j][k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5169  																* v->UrgentBurstFactorChromaPre[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5170  												+ v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5171  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5172  					v->ImmediateFlipSupportedForState[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5173  					if (v->total_dcn_read_bw_with_flip > v->ReturnBWPerState[i][j]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5174  						v->ImmediateFlipSupportedForState[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5175  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5176  					for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5177  						if (v->ImmediateFlipSupportedForPipe[k] == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5178  							v->ImmediateFlipSupportedForState[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5179  						}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5180  					}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5181  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5182  					v->ImmediateFlipSupportedForState[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5183  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5184  				if (v->MaxVStartup <= 13 || v->AnyLinesForVMOrRowTooLarge == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5185  					v->NextMaxVStartup = v->MaxMaxVStartup[i][j];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5186  					NextPrefetchModeState = NextPrefetchModeState + 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5187  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5188  					v->NextMaxVStartup = v->NextMaxVStartup - 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5189  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5190  			} while (!((v->PrefetchSupported[i][j] == true && v->DynamicMetadataSupported[i][j] == true && v->VRatioInPrefetchSupported[i][j] == true
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5191  					&& ((v->HostVMEnable == false && v->ImmediateFlipRequirement != dm_immediate_flip_required)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5192  							|| v->ImmediateFlipSupportedForState[i][j] == true))
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5193  					|| (v->NextMaxVStartup == v->MaxMaxVStartup[i][j] && NextPrefetchModeState > MaxPrefetchMode)));
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5194  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5195  			CalculateWatermarksAndDRAMSpeedChangeSupport(
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5196  					mode_lib,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5197  					v->PrefetchModePerState[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5198  					v->NumberOfActivePlanes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5199  					v->MaxLineBufferLines,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5200  					v->LineBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5201  					v->DPPOutputBufferPixels,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5202  					v->DETBufferSizeInKByte,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5203  					v->WritebackInterfaceBufferSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5204  					v->DCFCLKState[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5205  					v->ReturnBWPerState[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5206  					v->GPUVMEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5207  					v->dpte_group_bytes,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5208  					v->MetaChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5209  					v->UrgLatency[i],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5210  					v->ExtraLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5211  					v->WritebackLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5212  					v->WritebackChunkSize,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5213  					v->SOCCLKPerState[i],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5214  					v->FinalDRAMClockChangeLatency,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5215  					v->SRExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5216  					v->SREnterPlusExitTime,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5217  					v->ProjectedDCFCLKDeepSleep[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5218  					v->NoOfDPPThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5219  					v->DCCEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5220  					v->RequiredDPPCLKThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5221  					v->DETBufferSizeYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5222  					v->DETBufferSizeCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5223  					v->SwathHeightYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5224  					v->SwathHeightCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5225  					v->LBBitPerPixel,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5226  					v->SwathWidthYThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5227  					v->SwathWidthCThisState,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5228  					v->HRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5229  					v->HRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5230  					v->vtaps,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5231  					v->VTAPsChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5232  					v->VRatio,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5233  					v->VRatioChroma,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5234  					v->HTotal,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5235  					v->PixelClock,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5236  					v->BlendingAndTiming,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5237  					v->BytePerPixelInDETY,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5238  					v->BytePerPixelInDETC,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5239  					v->DSTXAfterScaler,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5240  					v->DSTYAfterScaler,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5241  					v->WritebackEnable,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5242  					v->WritebackPixelFormat,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5243  					v->WritebackDestinationWidth,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5244  					v->WritebackDestinationHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5245  					v->WritebackSourceHeight,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5246  					&v->DRAMClockChangeSupport[i][j],
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5247  					&v->UrgentWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5248  					&v->WritebackUrgentWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5249  					&v->DRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5250  					&v->WritebackDRAMClockChangeWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5251  					&v->StutterExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5252  					&v->StutterEnterPlusExitWatermark,
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5253  					&v->MinActiveDRAMClockChangeLatencySupported);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5254  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5255  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5256  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5257  	/*PTE Buffer Size Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5258  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5259  	for (i = 0; i < v->soc.num_states; i++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5260  		for (j = 0; j < 2; j++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5261  			v->PTEBufferSizeNotExceeded[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5262  			for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5263  				if (v->PTEBufferSizeNotExceededY[i][j][k] == false || v->PTEBufferSizeNotExceededC[i][j][k] == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5264  					v->PTEBufferSizeNotExceeded[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5265  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5266  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5267  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5268  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5269  	/*Cursor Support Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5270  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5271  	v->CursorSupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5272  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5273  		if (v->CursorWidth[k][0] > 0.0) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5274  			if (v->CursorBPP[k][0] == 64 && v->Cursor64BppSupport == false) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5275  				v->CursorSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5276  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5277  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5278  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5279  	/*Valid Pitch Check*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5280  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5281  	v->PitchSupport = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5282  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5283  		v->AlignedYPitch[k] = dml_ceil(dml_max(v->PitchY[k], v->SurfaceWidthY[k]), v->MacroTileWidthY[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5284  		if (v->DCCEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5285  			v->AlignedDCCMetaPitchY[k] = dml_ceil(dml_max(v->DCCMetaPitchY[k], v->SurfaceWidthY[k]), 64.0 * v->Read256BlockWidthY[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5286  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5287  			v->AlignedDCCMetaPitchY[k] = v->DCCMetaPitchY[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5288  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5289  		if (v->SourcePixelFormat[k] != dm_444_64 && v->SourcePixelFormat[k] != dm_444_32 && v->SourcePixelFormat[k] != dm_444_16 && v->SourcePixelFormat[k] != dm_mono_16
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5290  				&& v->SourcePixelFormat[k] != dm_rgbe && v->SourcePixelFormat[k] != dm_mono_8) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5291  			v->AlignedCPitch[k] = dml_ceil(dml_max(v->PitchC[k], v->SurfaceWidthC[k]), v->MacroTileWidthC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5292  			if (v->DCCEnable[k] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5293  				v->AlignedDCCMetaPitchC[k] = dml_ceil(dml_max(v->DCCMetaPitchC[k], v->SurfaceWidthC[k]), 64.0 * v->Read256BlockWidthC[k]);
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5294  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5295  				v->AlignedDCCMetaPitchC[k] = v->DCCMetaPitchC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5296  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5297  		} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5298  			v->AlignedCPitch[k] = v->PitchC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5299  			v->AlignedDCCMetaPitchC[k] = v->DCCMetaPitchC[k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5300  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5301  		if (v->AlignedYPitch[k] > v->PitchY[k] || v->AlignedCPitch[k] > v->PitchC[k] || v->AlignedDCCMetaPitchY[k] > v->DCCMetaPitchY[k]
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5302  				|| v->AlignedDCCMetaPitchC[k] > v->DCCMetaPitchC[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5303  			v->PitchSupport = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5304  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5305  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5306  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5307  	for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5308  		if (v->ViewportWidth[k] > v->SurfaceWidthY[k] || v->ViewportHeight[k] > v->SurfaceHeightY[k])
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5309  			ViewportExceedsSurface = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5310  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5311  		if (v->SourcePixelFormat[k] != dm_444_64 && v->SourcePixelFormat[k] != dm_444_32 && v->SourcePixelFormat[k] != dm_444_16
71f49c4898eef4 Ye Bin             2020-09-17  5312  				&& v->SourcePixelFormat[k] != dm_444_8 && v->SourcePixelFormat[k] != dm_rgbe) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5313  			if (v->ViewportWidthChroma[k] > v->SurfaceWidthC[k] || v->ViewportHeightChroma[k] > v->SurfaceHeightC[k]) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5314  				ViewportExceedsSurface = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5315  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5316  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5317  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5318  	/*Mode Support, Voltage State and SOC Configuration*/
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5319  
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5320  	for (i = v->soc.num_states - 1; i >= 0; i--) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5321  		for (j = 0; j < 2; j++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5322  			if (v->ScaleRatioAndTapsSupport == 1 && v->SourceFormatPixelAndScanSupport == 1 && v->ViewportSizeSupport[i][j] == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5323  					&& v->DIOSupport[i] == 1 && v->ODMCombine4To1SupportCheckOK[i] == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5324  					&& v->NotEnoughDSCUnits[i] == 0 && v->DSCCLKRequiredMoreThanSupported[i] == 0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5325  					&& v->DTBCLKRequiredMoreThanSupported[i] == 0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5326  					&& v->ROBSupport[i][j] == 1 && v->DISPCLK_DPPCLK_Support[i][j] == 1 && v->TotalAvailablePipesSupport[i][j] == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5327  					&& EnoughWritebackUnits == 1 && WritebackModeSupport == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5328  					&& v->WritebackLatencySupport == 1 && v->WritebackScaleRatioAndTapsSupport == 1 && v->CursorSupport == 1 && v->PitchSupport == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5329  					&& ViewportExceedsSurface == 0 && v->PrefetchSupported[i][j] == 1 && v->DynamicMetadataSupported[i][j] == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5330  					&& v->TotalVerticalActiveBandwidthSupport[i][j] == 1 && v->VRatioInPrefetchSupported[i][j] == 1
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5331  					&& v->PTEBufferSizeNotExceeded[i][j] == 1 && v->NonsupportedDSCInputBPC == 0
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5332  					&& ((v->HostVMEnable == 0 && v->ImmediateFlipRequirement != dm_immediate_flip_required)
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5333  							|| v->ImmediateFlipSupportedForState[i][j] == true)) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5334  				v->ModeSupport[i][j] = true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5335  			} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5336  				v->ModeSupport[i][j] = false;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5337  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5338  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5339  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5340  	{
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5341  		unsigned int MaximumMPCCombine = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5342  		for (i = v->soc.num_states; i >= 0; i--) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5343  			if (i == v->soc.num_states || v->ModeSupport[i][0] == true || v->ModeSupport[i][1] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5344  				v->VoltageLevel = i;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5345  				v->ModeIsSupported = v->ModeSupport[i][0] == true || v->ModeSupport[i][1] == true;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5346  				if (v->ModeSupport[i][1] == true) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5347  					MaximumMPCCombine = 1;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5348  				} else {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5349  					MaximumMPCCombine = 0;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5350  				}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5351  			}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5352  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5353  		v->ImmediateFlipSupport = v->ImmediateFlipSupportedForState[v->VoltageLevel][MaximumMPCCombine];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5354  		for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5355  			v->MPCCombineEnable[k] = v->MPCCombine[v->VoltageLevel][MaximumMPCCombine][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5356  			v->DPPPerPlane[k] = v->NoOfDPP[v->VoltageLevel][MaximumMPCCombine][k];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5357  		}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5358  		v->DCFCLK = v->DCFCLKState[v->VoltageLevel][MaximumMPCCombine];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5359  		v->DRAMSpeed = v->DRAMSpeedPerState[v->VoltageLevel];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5360  		v->FabricClock = v->FabricClockPerState[v->VoltageLevel];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5361  		v->SOCCLK = v->SOCCLKPerState[v->VoltageLevel];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5362  		v->ReturnBW = v->ReturnBWPerState[v->VoltageLevel][MaximumMPCCombine];
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5363  		v->maxMpcComb = MaximumMPCCombine;
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5364  	}
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5365  }
3accc8b91f9c9e Arnd Bergmann      2021-02-03  5366  __diag_pop()
6725a88f88a7e9 Bhawanpreet Lakha  2020-05-21  5367  

:::::: The code at line 3642 was first introduced by commit
:::::: 3accc8b91f9c9ee44543333d720caeb59670fff8 amdgpu: disable one frame size warning

:::::: TO: Arnd Bergmann <arnd@arndb.de>
:::::: CC: Arnd Bergmann <arnd@arndb.de>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36349 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-20  0:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-20  0:05 [arnd-playground:randconfig-v5.12 491/597] drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.c:3642:1: error: unknown type name 'ignored' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.