From: kernel test robot <lkp@intel.com>
To: Ao Zhong <hacc1225@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
Alex Deucher <alexander.deucher@amd.com>,
Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c:3900:72: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode'
Date: Mon, 6 Feb 2023 15:29:14 +0800 [thread overview]
Message-ID: <202302061508.SaSd0vyR-lkp@intel.com> (raw)
Hi Ao,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d2d11f342b179f1894a901f143ec7c008caba43e
commit: 79b72db63392d35a4dbcd4743b95cb668691f790 drm/amd/display: add DCN support for ARM64
date: 3 months ago
config: arm64-randconfig-r002-20230205 (https://download.01.org/0day-ci/archive/20230206/202302061508.SaSd0vyR-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=79b72db63392d35a4dbcd4743b95cb668691f790
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 79b72db63392d35a4dbcd4743b95cb668691f790
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c: In function 'dml20_ModeSupportAndSystemConfigurationFull':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c:3900:72: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
3900 | locals->ODMCombineEnablePerState[i][k] = false;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c:3904:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
3904 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c:3907:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
3907 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c:3960:80: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
3960 | locals->ODMCombineEnablePerState[i][k] = false;
| ^
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.c: In function 'dml20v2_ModeSupportAndSystemConfigurationFull':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.c:4011:72: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4011 | locals->ODMCombineEnablePerState[i][k] = false;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.c:4015:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4015 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.c:4018:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4018 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.c:4021:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4021 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.c:4074:80: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4074 | locals->ODMCombineEnablePerState[i][k] = false;
| ^
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c: In function 'dml21_ModeSupportAndSystemConfigurationFull':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c:4105:72: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4105 | locals->ODMCombineEnablePerState[i][k] = false;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c:4109:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4109 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c:4112:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4112 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c:4115:88: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4115 | locals->ODMCombineEnablePerState[i][k] = true;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c:4168:80: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
4168 | locals->ODMCombineEnablePerState[i][k] = false;
| ^
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.c:5233:60: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' [-Wenum-conversion]
5233 | mode_lib->vba.ODMCombineEnabled[k] = false;
| ^
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_rq_dlg_calc_31.c: In function 'dml_rq_dlg_get_dlg_params':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_rq_dlg_calc_31.c:905:14: warning: variable 'scl_enable' set but not used [-Wunused-but-set-variable]
905 | bool scl_enable;
| ^~~~~~~~~~
--
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/dcn30_fpu.c:618: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Finds dummy_latency_index when MCLK switching using firmware based
--
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_optc.c:41: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Enable CRTC
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_optc.c:76: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
*For the below, I'm not sure how your GSL parameters are stored in your env,
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_optc.c:85: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* There are (MAX_OPTC+1)/2 gsl groups available for use.
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_link_encoder.c: In function 'dcn10_link_encoder_update_mst_stream_allocation_table':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_link_encoder.c:1223:18: warning: variable 'value0' set but not used [-Wunused-but-set-variable]
1223 | uint32_t value0 = 0;
| ^~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/inc/core_types.h:32,
from drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_link_encoder.c:28:
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h: At top level:
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:137:22: warning: 'SYNAPTICS_DEVICE_ID' defined but not used [-Wunused-const-variable=]
137 | static const uint8_t SYNAPTICS_DEVICE_ID[] = "SYNA";
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:134:17: warning: 'DP_SINK_BRANCH_DEV_NAME_7580' defined but not used [-Wunused-const-variable=]
134 | static const u8 DP_SINK_BRANCH_DEV_NAME_7580[] = "7580\x80u";
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:132:22: warning: 'DP_SINK_DEVICE_STR_ID_2' defined but not used [-Wunused-const-variable=]
132 | static const uint8_t DP_SINK_DEVICE_STR_ID_2[] = {7, 1, 8, 7, 5};
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:131:22: warning: 'DP_SINK_DEVICE_STR_ID_1' defined but not used [-Wunused-const-variable=]
131 | static const uint8_t DP_SINK_DEVICE_STR_ID_1[] = {7, 1, 8, 7, 3};
| ^~~~~~~~~~~~~~~~~~~~~~~
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn201/dcn201_hwseq.c: In function 'dcn201_pipe_control_lock':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn201/dcn201_hwseq.c:544:22: warning: variable 'hubp' set but not used [-Wunused-but-set-variable]
544 | struct hubp *hubp = NULL;
| ^~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/inc/core_types.h:32,
from drivers/gpu/drm/amd/amdgpu/../display/dc/basics/dc_common.h:29,
from drivers/gpu/drm/amd/amdgpu/../display/dc/dcn201/dcn201_hwseq.c:27:
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h: At top level:
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:137:22: warning: 'SYNAPTICS_DEVICE_ID' defined but not used [-Wunused-const-variable=]
137 | static const uint8_t SYNAPTICS_DEVICE_ID[] = "SYNA";
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:134:17: warning: 'DP_SINK_BRANCH_DEV_NAME_7580' defined but not used [-Wunused-const-variable=]
134 | static const u8 DP_SINK_BRANCH_DEV_NAME_7580[] = "7580\x80u";
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:132:22: warning: 'DP_SINK_DEVICE_STR_ID_2' defined but not used [-Wunused-const-variable=]
132 | static const uint8_t DP_SINK_DEVICE_STR_ID_2[] = {7, 1, 8, 7, 5};
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:131:22: warning: 'DP_SINK_DEVICE_STR_ID_1' defined but not used [-Wunused-const-variable=]
131 | static const uint8_t DP_SINK_DEVICE_STR_ID_1[] = {7, 1, 8, 7, 3};
| ^~~~~~~~~~~~~~~~~~~~~~~
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:52: warning: Function parameter or member 'oppn10' not described in 'opp1_set_truncation'
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:52: warning: Function parameter or member 'params' not described in 'opp1_set_truncation'
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:52: warning: expecting prototype for set_truncation(). Prototype was for opp1_set_truncation() instead
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:161: warning: Function parameter or member 'oppn10' not described in 'opp1_set_pixel_encoding'
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:161: warning: Function parameter or member 'params' not described in 'opp1_set_pixel_encoding'
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:161: warning: expecting prototype for set_pixel_encoding(). Prototype was for opp1_set_pixel_encoding() instead
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_opp.c:183: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Set Clamping
--
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:45: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* apply_front_porch_workaround TODO FPGA still need?
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:136: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* program_timing_generator used by mode timing set
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:391: warning: Function parameter or member 'optc' not described in 'optc1_set_timing_double_buffer'
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:391: warning: Function parameter or member 'enable' not described in 'optc1_set_timing_double_buffer'
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:404: warning: Function parameter or member 'optc' not described in 'optc1_unblank_crtc'
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:404: warning: expecting prototype for unblank_crtc(). Prototype was for optc1_unblank_crtc() instead
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:427: warning: Function parameter or member 'optc' not described in 'optc1_blank_crtc'
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:427: warning: expecting prototype for blank_crtc(). Prototype was for optc1_blank_crtc() instead
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:496: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Enable CRTC
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn10/dcn10_optc.c:897: warning: Cannot understand *****************************************************************************
on line 897 - I thought it was a doc line
--
drivers/gpu/drm/amd/amdgpu/../display/dc/dcn201/dcn201_dpp.c: In function 'dpp201_get_optimal_number_of_taps':
>> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn201/dcn201_dpp.c:188:18: warning: variable 'pixel_width' set but not used [-Wunused-but-set-variable]
188 | uint32_t pixel_width;
| ^~~~~~~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/dc/inc/core_types.h:32,
from drivers/gpu/drm/amd/amdgpu/../display/dc/dcn201/dcn201_dpp.c:28:
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h: At top level:
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:137:22: warning: 'SYNAPTICS_DEVICE_ID' defined but not used [-Wunused-const-variable=]
137 | static const uint8_t SYNAPTICS_DEVICE_ID[] = "SYNA";
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:134:17: warning: 'DP_SINK_BRANCH_DEV_NAME_7580' defined but not used [-Wunused-const-variable=]
134 | static const u8 DP_SINK_BRANCH_DEV_NAME_7580[] = "7580\x80u";
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:132:22: warning: 'DP_SINK_DEVICE_STR_ID_2' defined but not used [-Wunused-const-variable=]
132 | static const uint8_t DP_SINK_DEVICE_STR_ID_2[] = {7, 1, 8, 7, 5};
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/include/ddc_service_types.h:131:22: warning: 'DP_SINK_DEVICE_STR_ID_1' defined but not used [-Wunused-const-variable=]
131 | static const uint8_t DP_SINK_DEVICE_STR_ID_1[] = {7, 1, 8, 7, 3};
| ^~~~~~~~~~~~~~~~~~~~~~~
..
vim +3900 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c
728c06986a4f38 Harry Wentland 2019-02-22 3285
728c06986a4f38 Harry Wentland 2019-02-22 3286 void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_lib)
728c06986a4f38 Harry Wentland 2019-02-22 3287 {
728c06986a4f38 Harry Wentland 2019-02-22 3288 struct vba_vars_st *locals = &mode_lib->vba;
728c06986a4f38 Harry Wentland 2019-02-22 3289
728c06986a4f38 Harry Wentland 2019-02-22 3290 int i;
728c06986a4f38 Harry Wentland 2019-02-22 3291 unsigned int j, k, m;
728c06986a4f38 Harry Wentland 2019-02-22 3292
728c06986a4f38 Harry Wentland 2019-02-22 3293 /*MODE SUPPORT, VOLTAGE STATE AND SOC CONFIGURATION*/
728c06986a4f38 Harry Wentland 2019-02-22 3294
728c06986a4f38 Harry Wentland 2019-02-22 3295 /*Scale Ratio, taps Support Check*/
728c06986a4f38 Harry Wentland 2019-02-22 3296
728c06986a4f38 Harry Wentland 2019-02-22 3297 mode_lib->vba.ScaleRatioAndTapsSupport = true;
728c06986a4f38 Harry Wentland 2019-02-22 3298 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3299 if (mode_lib->vba.ScalerEnabled[k] == false
728c06986a4f38 Harry Wentland 2019-02-22 3300 && ((mode_lib->vba.SourcePixelFormat[k] != dm_444_64
728c06986a4f38 Harry Wentland 2019-02-22 3301 && mode_lib->vba.SourcePixelFormat[k] != dm_444_32
728c06986a4f38 Harry Wentland 2019-02-22 3302 && mode_lib->vba.SourcePixelFormat[k] != dm_444_16
728c06986a4f38 Harry Wentland 2019-02-22 3303 && mode_lib->vba.SourcePixelFormat[k] != dm_mono_16
728c06986a4f38 Harry Wentland 2019-02-22 3304 && mode_lib->vba.SourcePixelFormat[k] != dm_mono_8)
728c06986a4f38 Harry Wentland 2019-02-22 3305 || mode_lib->vba.HRatio[k] != 1.0
728c06986a4f38 Harry Wentland 2019-02-22 3306 || mode_lib->vba.htaps[k] != 1.0
728c06986a4f38 Harry Wentland 2019-02-22 3307 || mode_lib->vba.VRatio[k] != 1.0
728c06986a4f38 Harry Wentland 2019-02-22 3308 || mode_lib->vba.vtaps[k] != 1.0)) {
728c06986a4f38 Harry Wentland 2019-02-22 3309 mode_lib->vba.ScaleRatioAndTapsSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3310 } else if (mode_lib->vba.vtaps[k] < 1.0 || mode_lib->vba.vtaps[k] > 8.0
728c06986a4f38 Harry Wentland 2019-02-22 3311 || mode_lib->vba.htaps[k] < 1.0 || mode_lib->vba.htaps[k] > 8.0
728c06986a4f38 Harry Wentland 2019-02-22 3312 || (mode_lib->vba.htaps[k] > 1.0
728c06986a4f38 Harry Wentland 2019-02-22 3313 && (mode_lib->vba.htaps[k] % 2) == 1)
728c06986a4f38 Harry Wentland 2019-02-22 3314 || mode_lib->vba.HRatio[k] > mode_lib->vba.MaxHSCLRatio
728c06986a4f38 Harry Wentland 2019-02-22 3315 || mode_lib->vba.VRatio[k] > mode_lib->vba.MaxVSCLRatio
728c06986a4f38 Harry Wentland 2019-02-22 3316 || mode_lib->vba.HRatio[k] > mode_lib->vba.htaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3317 || mode_lib->vba.VRatio[k] > mode_lib->vba.vtaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3318 || (mode_lib->vba.SourcePixelFormat[k] != dm_444_64
728c06986a4f38 Harry Wentland 2019-02-22 3319 && mode_lib->vba.SourcePixelFormat[k] != dm_444_32
728c06986a4f38 Harry Wentland 2019-02-22 3320 && mode_lib->vba.SourcePixelFormat[k] != dm_444_16
728c06986a4f38 Harry Wentland 2019-02-22 3321 && mode_lib->vba.SourcePixelFormat[k] != dm_mono_16
728c06986a4f38 Harry Wentland 2019-02-22 3322 && mode_lib->vba.SourcePixelFormat[k] != dm_mono_8
728c06986a4f38 Harry Wentland 2019-02-22 3323 && (mode_lib->vba.HRatio[k] / 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3324 > mode_lib->vba.HTAPsChroma[k]
728c06986a4f38 Harry Wentland 2019-02-22 3325 || mode_lib->vba.VRatio[k] / 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3326 > mode_lib->vba.VTAPsChroma[k]))) {
728c06986a4f38 Harry Wentland 2019-02-22 3327 mode_lib->vba.ScaleRatioAndTapsSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3328 }
728c06986a4f38 Harry Wentland 2019-02-22 3329 }
728c06986a4f38 Harry Wentland 2019-02-22 3330 /*Source Format, Pixel Format and Scan Support Check*/
728c06986a4f38 Harry Wentland 2019-02-22 3331
728c06986a4f38 Harry Wentland 2019-02-22 3332 mode_lib->vba.SourceFormatPixelAndScanSupport = true;
728c06986a4f38 Harry Wentland 2019-02-22 3333 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3334 if ((mode_lib->vba.SurfaceTiling[k] == dm_sw_linear
728c06986a4f38 Harry Wentland 2019-02-22 3335 && mode_lib->vba.SourceScan[k] != dm_horz)
728c06986a4f38 Harry Wentland 2019-02-22 3336 || ((mode_lib->vba.SurfaceTiling[k] == dm_sw_4kb_d
728c06986a4f38 Harry Wentland 2019-02-22 3337 || mode_lib->vba.SurfaceTiling[k] == dm_sw_4kb_d_x
728c06986a4f38 Harry Wentland 2019-02-22 3338 || mode_lib->vba.SurfaceTiling[k] == dm_sw_64kb_d
728c06986a4f38 Harry Wentland 2019-02-22 3339 || mode_lib->vba.SurfaceTiling[k] == dm_sw_64kb_d_t
728c06986a4f38 Harry Wentland 2019-02-22 3340 || mode_lib->vba.SurfaceTiling[k] == dm_sw_64kb_d_x
728c06986a4f38 Harry Wentland 2019-02-22 3341 || mode_lib->vba.SurfaceTiling[k] == dm_sw_var_d
728c06986a4f38 Harry Wentland 2019-02-22 3342 || mode_lib->vba.SurfaceTiling[k] == dm_sw_var_d_x)
728c06986a4f38 Harry Wentland 2019-02-22 3343 && mode_lib->vba.SourcePixelFormat[k] != dm_444_64)
728c06986a4f38 Harry Wentland 2019-02-22 3344 || (mode_lib->vba.SurfaceTiling[k] == dm_sw_64kb_r_x
728c06986a4f38 Harry Wentland 2019-02-22 3345 && (mode_lib->vba.SourcePixelFormat[k] == dm_mono_8
728c06986a4f38 Harry Wentland 2019-02-22 3346 || mode_lib->vba.SourcePixelFormat[k]
728c06986a4f38 Harry Wentland 2019-02-22 3347 == dm_420_8
728c06986a4f38 Harry Wentland 2019-02-22 3348 || mode_lib->vba.SourcePixelFormat[k]
728c06986a4f38 Harry Wentland 2019-02-22 3349 == dm_420_10))
728c06986a4f38 Harry Wentland 2019-02-22 3350 || (((mode_lib->vba.SurfaceTiling[k] == dm_sw_gfx7_2d_thin_gl
728c06986a4f38 Harry Wentland 2019-02-22 3351 || mode_lib->vba.SurfaceTiling[k]
51f2af1d839e95 Charlene Liu 2019-12-16 3352 == dm_sw_gfx7_2d_thin_l_vp)
728c06986a4f38 Harry Wentland 2019-02-22 3353 && !((mode_lib->vba.SourcePixelFormat[k]
728c06986a4f38 Harry Wentland 2019-02-22 3354 == dm_444_64
728c06986a4f38 Harry Wentland 2019-02-22 3355 || mode_lib->vba.SourcePixelFormat[k]
728c06986a4f38 Harry Wentland 2019-02-22 3356 == dm_444_32)
728c06986a4f38 Harry Wentland 2019-02-22 3357 && mode_lib->vba.SourceScan[k]
728c06986a4f38 Harry Wentland 2019-02-22 3358 == dm_horz
728c06986a4f38 Harry Wentland 2019-02-22 3359 && mode_lib->vba.SupportGFX7CompatibleTilingIn32bppAnd64bpp
728c06986a4f38 Harry Wentland 2019-02-22 3360 == true
728c06986a4f38 Harry Wentland 2019-02-22 3361 && mode_lib->vba.DCCEnable[k]
728c06986a4f38 Harry Wentland 2019-02-22 3362 == false))
728c06986a4f38 Harry Wentland 2019-02-22 3363 || (mode_lib->vba.DCCEnable[k] == true
728c06986a4f38 Harry Wentland 2019-02-22 3364 && (mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3365 == dm_sw_linear
728c06986a4f38 Harry Wentland 2019-02-22 3366 || mode_lib->vba.SourcePixelFormat[k]
728c06986a4f38 Harry Wentland 2019-02-22 3367 == dm_420_8
728c06986a4f38 Harry Wentland 2019-02-22 3368 || mode_lib->vba.SourcePixelFormat[k]
728c06986a4f38 Harry Wentland 2019-02-22 3369 == dm_420_10)))) {
728c06986a4f38 Harry Wentland 2019-02-22 3370 mode_lib->vba.SourceFormatPixelAndScanSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3371 }
728c06986a4f38 Harry Wentland 2019-02-22 3372 }
728c06986a4f38 Harry Wentland 2019-02-22 3373 /*Bandwidth Support Check*/
728c06986a4f38 Harry Wentland 2019-02-22 3374
728c06986a4f38 Harry Wentland 2019-02-22 3375 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3376 if (mode_lib->vba.SourcePixelFormat[k] == dm_444_64) {
728c06986a4f38 Harry Wentland 2019-02-22 3377 locals->BytePerPixelInDETY[k] = 8.0;
728c06986a4f38 Harry Wentland 2019-02-22 3378 locals->BytePerPixelInDETC[k] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3379 } else if (mode_lib->vba.SourcePixelFormat[k] == dm_444_32) {
728c06986a4f38 Harry Wentland 2019-02-22 3380 locals->BytePerPixelInDETY[k] = 4.0;
728c06986a4f38 Harry Wentland 2019-02-22 3381 locals->BytePerPixelInDETC[k] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3382 } else if (mode_lib->vba.SourcePixelFormat[k] == dm_444_16
728c06986a4f38 Harry Wentland 2019-02-22 3383 || mode_lib->vba.SourcePixelFormat[k] == dm_mono_16) {
728c06986a4f38 Harry Wentland 2019-02-22 3384 locals->BytePerPixelInDETY[k] = 2.0;
728c06986a4f38 Harry Wentland 2019-02-22 3385 locals->BytePerPixelInDETC[k] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3386 } else if (mode_lib->vba.SourcePixelFormat[k] == dm_mono_8) {
728c06986a4f38 Harry Wentland 2019-02-22 3387 locals->BytePerPixelInDETY[k] = 1.0;
728c06986a4f38 Harry Wentland 2019-02-22 3388 locals->BytePerPixelInDETC[k] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3389 } else if (mode_lib->vba.SourcePixelFormat[k] == dm_420_8) {
728c06986a4f38 Harry Wentland 2019-02-22 3390 locals->BytePerPixelInDETY[k] = 1.0;
728c06986a4f38 Harry Wentland 2019-02-22 3391 locals->BytePerPixelInDETC[k] = 2.0;
728c06986a4f38 Harry Wentland 2019-02-22 3392 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3393 locals->BytePerPixelInDETY[k] = 4.0 / 3;
728c06986a4f38 Harry Wentland 2019-02-22 3394 locals->BytePerPixelInDETC[k] = 8.0 / 3;
728c06986a4f38 Harry Wentland 2019-02-22 3395 }
728c06986a4f38 Harry Wentland 2019-02-22 3396 if (mode_lib->vba.SourceScan[k] == dm_horz) {
728c06986a4f38 Harry Wentland 2019-02-22 3397 locals->SwathWidthYSingleDPP[k] = mode_lib->vba.ViewportWidth[k];
728c06986a4f38 Harry Wentland 2019-02-22 3398 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3399 locals->SwathWidthYSingleDPP[k] = mode_lib->vba.ViewportHeight[k];
728c06986a4f38 Harry Wentland 2019-02-22 3400 }
728c06986a4f38 Harry Wentland 2019-02-22 3401 }
728c06986a4f38 Harry Wentland 2019-02-22 3402 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3403 locals->ReadBandwidthLuma[k] = locals->SwathWidthYSingleDPP[k] * dml_ceil(locals->BytePerPixelInDETY[k], 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3404 / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]) * mode_lib->vba.VRatio[k];
728c06986a4f38 Harry Wentland 2019-02-22 3405 locals->ReadBandwidthChroma[k] = locals->SwathWidthYSingleDPP[k] / 2 * dml_ceil(locals->BytePerPixelInDETC[k], 2.0)
728c06986a4f38 Harry Wentland 2019-02-22 3406 / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]) * mode_lib->vba.VRatio[k] / 2.0;
728c06986a4f38 Harry Wentland 2019-02-22 3407 locals->ReadBandwidth[k] = locals->ReadBandwidthLuma[k] + locals->ReadBandwidthChroma[k];
728c06986a4f38 Harry Wentland 2019-02-22 3408 }
728c06986a4f38 Harry Wentland 2019-02-22 3409 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3410 if (mode_lib->vba.WritebackEnable[k] == true
728c06986a4f38 Harry Wentland 2019-02-22 3411 && mode_lib->vba.WritebackPixelFormat[k] == dm_444_32) {
728c06986a4f38 Harry Wentland 2019-02-22 3412 locals->WriteBandwidth[k] = mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3413 * mode_lib->vba.WritebackDestinationHeight[k]
728c06986a4f38 Harry Wentland 2019-02-22 3414 / (mode_lib->vba.WritebackSourceHeight[k]
728c06986a4f38 Harry Wentland 2019-02-22 3415 * mode_lib->vba.HTotal[k]
728c06986a4f38 Harry Wentland 2019-02-22 3416 / mode_lib->vba.PixelClock[k]) * 4.0;
728c06986a4f38 Harry Wentland 2019-02-22 3417 } else if (mode_lib->vba.WritebackEnable[k] == true
728c06986a4f38 Harry Wentland 2019-02-22 3418 && mode_lib->vba.WritebackPixelFormat[k] == dm_420_10) {
728c06986a4f38 Harry Wentland 2019-02-22 3419 locals->WriteBandwidth[k] = mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3420 * mode_lib->vba.WritebackDestinationHeight[k]
728c06986a4f38 Harry Wentland 2019-02-22 3421 / (mode_lib->vba.WritebackSourceHeight[k]
728c06986a4f38 Harry Wentland 2019-02-22 3422 * mode_lib->vba.HTotal[k]
728c06986a4f38 Harry Wentland 2019-02-22 3423 / mode_lib->vba.PixelClock[k]) * 3.0;
728c06986a4f38 Harry Wentland 2019-02-22 3424 } else if (mode_lib->vba.WritebackEnable[k] == true) {
728c06986a4f38 Harry Wentland 2019-02-22 3425 locals->WriteBandwidth[k] = mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3426 * mode_lib->vba.WritebackDestinationHeight[k]
728c06986a4f38 Harry Wentland 2019-02-22 3427 / (mode_lib->vba.WritebackSourceHeight[k]
728c06986a4f38 Harry Wentland 2019-02-22 3428 * mode_lib->vba.HTotal[k]
728c06986a4f38 Harry Wentland 2019-02-22 3429 / mode_lib->vba.PixelClock[k]) * 1.5;
728c06986a4f38 Harry Wentland 2019-02-22 3430 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3431 locals->WriteBandwidth[k] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3432 }
728c06986a4f38 Harry Wentland 2019-02-22 3433 }
728c06986a4f38 Harry Wentland 2019-02-22 3434 mode_lib->vba.DCCEnabledInAnyPlane = false;
728c06986a4f38 Harry Wentland 2019-02-22 3435 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3436 if (mode_lib->vba.DCCEnable[k] == true) {
728c06986a4f38 Harry Wentland 2019-02-22 3437 mode_lib->vba.DCCEnabledInAnyPlane = true;
728c06986a4f38 Harry Wentland 2019-02-22 3438 }
728c06986a4f38 Harry Wentland 2019-02-22 3439 }
8ee0fea4baf90e Dmytro Laktyushkin 2021-03-04 3440 mode_lib->vba.UrgentLatency = mode_lib->vba.UrgentLatencyPixelDataOnly;
728c06986a4f38 Harry Wentland 2019-02-22 3441 for (i = 0; i <= mode_lib->vba.soc.num_states; i++) {
728c06986a4f38 Harry Wentland 2019-02-22 3442 locals->FabricAndDRAMBandwidthPerState[i] = dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3443 mode_lib->vba.DRAMSpeedPerState[i] * mode_lib->vba.NumberOfChannels
728c06986a4f38 Harry Wentland 2019-02-22 3444 * mode_lib->vba.DRAMChannelWidth,
728c06986a4f38 Harry Wentland 2019-02-22 3445 mode_lib->vba.FabricClockPerState[i]
728c06986a4f38 Harry Wentland 2019-02-22 3446 * mode_lib->vba.FabricDatapathToDCNDataReturn) / 1000;
728c06986a4f38 Harry Wentland 2019-02-22 3447 locals->ReturnBWToDCNPerState = dml_min(locals->ReturnBusWidth * locals->DCFCLKPerState[i],
728c06986a4f38 Harry Wentland 2019-02-22 3448 locals->FabricAndDRAMBandwidthPerState[i] * 1000)
728c06986a4f38 Harry Wentland 2019-02-22 3449 * locals->PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelDataOnly / 100;
728c06986a4f38 Harry Wentland 2019-02-22 3450
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3451 locals->ReturnBWPerState[i][0] = locals->ReturnBWToDCNPerState;
728c06986a4f38 Harry Wentland 2019-02-22 3452
728c06986a4f38 Harry Wentland 2019-02-22 3453 if (locals->DCCEnabledInAnyPlane == true && locals->ReturnBWToDCNPerState > locals->DCFCLKPerState[i] * locals->ReturnBusWidth / 4) {
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3454 locals->ReturnBWPerState[i][0] = dml_min(locals->ReturnBWPerState[i][0],
728c06986a4f38 Harry Wentland 2019-02-22 3455 locals->ReturnBWToDCNPerState * 4 * (1 - locals->UrgentLatency /
728c06986a4f38 Harry Wentland 2019-02-22 3456 ((locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024
728c06986a4f38 Harry Wentland 2019-02-22 3457 / (locals->ReturnBWToDCNPerState - locals->DCFCLKPerState[i]
728c06986a4f38 Harry Wentland 2019-02-22 3458 * locals->ReturnBusWidth / 4) + locals->UrgentLatency)));
728c06986a4f38 Harry Wentland 2019-02-22 3459 }
728c06986a4f38 Harry Wentland 2019-02-22 3460 locals->CriticalPoint = 2 * locals->ReturnBusWidth * locals->DCFCLKPerState[i] *
728c06986a4f38 Harry Wentland 2019-02-22 3461 locals->UrgentLatency / (locals->ReturnBWToDCNPerState * locals->UrgentLatency
728c06986a4f38 Harry Wentland 2019-02-22 3462 + (locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024);
728c06986a4f38 Harry Wentland 2019-02-22 3463
728c06986a4f38 Harry Wentland 2019-02-22 3464 if (locals->DCCEnabledInAnyPlane && locals->CriticalPoint > 1 && locals->CriticalPoint < 4) {
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3465 locals->ReturnBWPerState[i][0] = dml_min(locals->ReturnBWPerState[i][0],
728c06986a4f38 Harry Wentland 2019-02-22 3466 4 * locals->ReturnBWToDCNPerState *
728c06986a4f38 Harry Wentland 2019-02-22 3467 (locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024
728c06986a4f38 Harry Wentland 2019-02-22 3468 * locals->ReturnBusWidth * locals->DCFCLKPerState[i] * locals->UrgentLatency /
728c06986a4f38 Harry Wentland 2019-02-22 3469 dml_pow((locals->ReturnBWToDCNPerState * locals->UrgentLatency
728c06986a4f38 Harry Wentland 2019-02-22 3470 + (locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024), 2));
728c06986a4f38 Harry Wentland 2019-02-22 3471 }
728c06986a4f38 Harry Wentland 2019-02-22 3472
728c06986a4f38 Harry Wentland 2019-02-22 3473 locals->ReturnBWToDCNPerState = dml_min(locals->ReturnBusWidth *
728c06986a4f38 Harry Wentland 2019-02-22 3474 locals->DCFCLKPerState[i], locals->FabricAndDRAMBandwidthPerState[i] * 1000);
728c06986a4f38 Harry Wentland 2019-02-22 3475
728c06986a4f38 Harry Wentland 2019-02-22 3476 if (locals->DCCEnabledInAnyPlane == true && locals->ReturnBWToDCNPerState > locals->DCFCLKPerState[i] * locals->ReturnBusWidth / 4) {
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3477 locals->ReturnBWPerState[i][0] = dml_min(locals->ReturnBWPerState[i][0],
728c06986a4f38 Harry Wentland 2019-02-22 3478 locals->ReturnBWToDCNPerState * 4 * (1 - locals->UrgentLatency /
728c06986a4f38 Harry Wentland 2019-02-22 3479 ((locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024
728c06986a4f38 Harry Wentland 2019-02-22 3480 / (locals->ReturnBWToDCNPerState - locals->DCFCLKPerState[i]
728c06986a4f38 Harry Wentland 2019-02-22 3481 * locals->ReturnBusWidth / 4) + locals->UrgentLatency)));
728c06986a4f38 Harry Wentland 2019-02-22 3482 }
728c06986a4f38 Harry Wentland 2019-02-22 3483 locals->CriticalPoint = 2 * locals->ReturnBusWidth * locals->DCFCLKPerState[i] *
728c06986a4f38 Harry Wentland 2019-02-22 3484 locals->UrgentLatency / (locals->ReturnBWToDCNPerState * locals->UrgentLatency
728c06986a4f38 Harry Wentland 2019-02-22 3485 + (locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024);
728c06986a4f38 Harry Wentland 2019-02-22 3486
728c06986a4f38 Harry Wentland 2019-02-22 3487 if (locals->DCCEnabledInAnyPlane && locals->CriticalPoint > 1 && locals->CriticalPoint < 4) {
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3488 locals->ReturnBWPerState[i][0] = dml_min(locals->ReturnBWPerState[i][0],
728c06986a4f38 Harry Wentland 2019-02-22 3489 4 * locals->ReturnBWToDCNPerState *
728c06986a4f38 Harry Wentland 2019-02-22 3490 (locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024
728c06986a4f38 Harry Wentland 2019-02-22 3491 * locals->ReturnBusWidth * locals->DCFCLKPerState[i] * locals->UrgentLatency /
728c06986a4f38 Harry Wentland 2019-02-22 3492 dml_pow((locals->ReturnBWToDCNPerState * locals->UrgentLatency
728c06986a4f38 Harry Wentland 2019-02-22 3493 + (locals->ROBBufferSizeInKByte - locals->PixelChunkSizeInKByte) * 1024), 2));
728c06986a4f38 Harry Wentland 2019-02-22 3494 }
728c06986a4f38 Harry Wentland 2019-02-22 3495 }
728c06986a4f38 Harry Wentland 2019-02-22 3496 /*Writeback Latency support check*/
728c06986a4f38 Harry Wentland 2019-02-22 3497
728c06986a4f38 Harry Wentland 2019-02-22 3498 mode_lib->vba.WritebackLatencySupport = true;
728c06986a4f38 Harry Wentland 2019-02-22 3499 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3500 if (mode_lib->vba.WritebackEnable[k] == true) {
728c06986a4f38 Harry Wentland 2019-02-22 3501 if (mode_lib->vba.WritebackPixelFormat[k] == dm_444_32) {
728c06986a4f38 Harry Wentland 2019-02-22 3502 if (locals->WriteBandwidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3503 > (mode_lib->vba.WritebackInterfaceLumaBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3504 + mode_lib->vba.WritebackInterfaceChromaBufferSize)
728c06986a4f38 Harry Wentland 2019-02-22 3505 / mode_lib->vba.WritebackLatency) {
728c06986a4f38 Harry Wentland 2019-02-22 3506 mode_lib->vba.WritebackLatencySupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3507 }
728c06986a4f38 Harry Wentland 2019-02-22 3508 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3509 if (locals->WriteBandwidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3510 > 1.5
728c06986a4f38 Harry Wentland 2019-02-22 3511 * dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3512 mode_lib->vba.WritebackInterfaceLumaBufferSize,
728c06986a4f38 Harry Wentland 2019-02-22 3513 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3514 * mode_lib->vba.WritebackInterfaceChromaBufferSize)
728c06986a4f38 Harry Wentland 2019-02-22 3515 / mode_lib->vba.WritebackLatency) {
728c06986a4f38 Harry Wentland 2019-02-22 3516 mode_lib->vba.WritebackLatencySupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3517 }
728c06986a4f38 Harry Wentland 2019-02-22 3518 }
728c06986a4f38 Harry Wentland 2019-02-22 3519 }
728c06986a4f38 Harry Wentland 2019-02-22 3520 }
728c06986a4f38 Harry Wentland 2019-02-22 3521 /*Re-ordering Buffer Support Check*/
728c06986a4f38 Harry Wentland 2019-02-22 3522
728c06986a4f38 Harry Wentland 2019-02-22 3523 for (i = 0; i <= mode_lib->vba.soc.num_states; i++) {
728c06986a4f38 Harry Wentland 2019-02-22 3524 locals->UrgentRoundTripAndOutOfOrderLatencyPerState[i] =
728c06986a4f38 Harry Wentland 2019-02-22 3525 (mode_lib->vba.RoundTripPingLatencyCycles + 32.0) / mode_lib->vba.DCFCLKPerState[i]
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3526 + locals->UrgentOutOfOrderReturnPerChannel * mode_lib->vba.NumberOfChannels / locals->ReturnBWPerState[i][0];
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3527 if ((mode_lib->vba.ROBBufferSizeInKByte - mode_lib->vba.PixelChunkSizeInKByte) * 1024.0 / locals->ReturnBWPerState[i][0]
728c06986a4f38 Harry Wentland 2019-02-22 3528 > locals->UrgentRoundTripAndOutOfOrderLatencyPerState[i]) {
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3529 locals->ROBSupport[i][0] = true;
728c06986a4f38 Harry Wentland 2019-02-22 3530 } else {
5fc11598166db9 Dmytro Laktyushkin 2019-10-30 3531 locals->ROBSupport[i][0] = false;
728c06986a4f38 Harry Wentland 2019-02-22 3532 }
728c06986a4f38 Harry Wentland 2019-02-22 3533 }
728c06986a4f38 Harry Wentland 2019-02-22 3534 /*Writeback Mode Support Check*/
728c06986a4f38 Harry Wentland 2019-02-22 3535
728c06986a4f38 Harry Wentland 2019-02-22 3536 mode_lib->vba.TotalNumberOfActiveWriteback = 0;
728c06986a4f38 Harry Wentland 2019-02-22 3537 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3538 if (mode_lib->vba.WritebackEnable[k] == true) {
728c06986a4f38 Harry Wentland 2019-02-22 3539 if (mode_lib->vba.ActiveWritebacksPerPlane[k] == 0)
728c06986a4f38 Harry Wentland 2019-02-22 3540 mode_lib->vba.ActiveWritebacksPerPlane[k] = 1;
728c06986a4f38 Harry Wentland 2019-02-22 3541 mode_lib->vba.TotalNumberOfActiveWriteback =
728c06986a4f38 Harry Wentland 2019-02-22 3542 mode_lib->vba.TotalNumberOfActiveWriteback
728c06986a4f38 Harry Wentland 2019-02-22 3543 + mode_lib->vba.ActiveWritebacksPerPlane[k];
728c06986a4f38 Harry Wentland 2019-02-22 3544 }
728c06986a4f38 Harry Wentland 2019-02-22 3545 }
728c06986a4f38 Harry Wentland 2019-02-22 3546 mode_lib->vba.WritebackModeSupport = true;
728c06986a4f38 Harry Wentland 2019-02-22 3547 if (mode_lib->vba.TotalNumberOfActiveWriteback > mode_lib->vba.MaxNumWriteback) {
728c06986a4f38 Harry Wentland 2019-02-22 3548 mode_lib->vba.WritebackModeSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3549 }
728c06986a4f38 Harry Wentland 2019-02-22 3550 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3551 if (mode_lib->vba.WritebackEnable[k] == true
728c06986a4f38 Harry Wentland 2019-02-22 3552 && mode_lib->vba.Writeback10bpc420Supported != true
728c06986a4f38 Harry Wentland 2019-02-22 3553 && mode_lib->vba.WritebackPixelFormat[k] == dm_420_10) {
728c06986a4f38 Harry Wentland 2019-02-22 3554 mode_lib->vba.WritebackModeSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3555 }
728c06986a4f38 Harry Wentland 2019-02-22 3556 }
728c06986a4f38 Harry Wentland 2019-02-22 3557 /*Writeback Scale Ratio and Taps Support Check*/
728c06986a4f38 Harry Wentland 2019-02-22 3558
728c06986a4f38 Harry Wentland 2019-02-22 3559 mode_lib->vba.WritebackScaleRatioAndTapsSupport = true;
728c06986a4f38 Harry Wentland 2019-02-22 3560 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3561 if (mode_lib->vba.WritebackEnable[k] == true) {
728c06986a4f38 Harry Wentland 2019-02-22 3562 if (mode_lib->vba.WritebackLumaAndChromaScalingSupported == false
728c06986a4f38 Harry Wentland 2019-02-22 3563 && (mode_lib->vba.WritebackHRatio[k] != 1.0
728c06986a4f38 Harry Wentland 2019-02-22 3564 || mode_lib->vba.WritebackVRatio[k] != 1.0)) {
728c06986a4f38 Harry Wentland 2019-02-22 3565 mode_lib->vba.WritebackScaleRatioAndTapsSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3566 }
728c06986a4f38 Harry Wentland 2019-02-22 3567 if (mode_lib->vba.WritebackHRatio[k] > mode_lib->vba.WritebackMaxHSCLRatio
728c06986a4f38 Harry Wentland 2019-02-22 3568 || mode_lib->vba.WritebackVRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3569 > mode_lib->vba.WritebackMaxVSCLRatio
728c06986a4f38 Harry Wentland 2019-02-22 3570 || mode_lib->vba.WritebackHRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3571 < mode_lib->vba.WritebackMinHSCLRatio
728c06986a4f38 Harry Wentland 2019-02-22 3572 || mode_lib->vba.WritebackVRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3573 < mode_lib->vba.WritebackMinVSCLRatio
728c06986a4f38 Harry Wentland 2019-02-22 3574 || mode_lib->vba.WritebackLumaHTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3575 > mode_lib->vba.WritebackMaxHSCLTaps
728c06986a4f38 Harry Wentland 2019-02-22 3576 || mode_lib->vba.WritebackLumaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3577 > mode_lib->vba.WritebackMaxVSCLTaps
728c06986a4f38 Harry Wentland 2019-02-22 3578 || mode_lib->vba.WritebackHRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3579 > mode_lib->vba.WritebackLumaHTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3580 || mode_lib->vba.WritebackVRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3581 > mode_lib->vba.WritebackLumaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3582 || (mode_lib->vba.WritebackLumaHTaps[k] > 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3583 && ((mode_lib->vba.WritebackLumaHTaps[k] % 2)
728c06986a4f38 Harry Wentland 2019-02-22 3584 == 1))
728c06986a4f38 Harry Wentland 2019-02-22 3585 || (mode_lib->vba.WritebackPixelFormat[k] != dm_444_32
728c06986a4f38 Harry Wentland 2019-02-22 3586 && (mode_lib->vba.WritebackChromaHTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3587 > mode_lib->vba.WritebackMaxHSCLTaps
728c06986a4f38 Harry Wentland 2019-02-22 3588 || mode_lib->vba.WritebackChromaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3589 > mode_lib->vba.WritebackMaxVSCLTaps
728c06986a4f38 Harry Wentland 2019-02-22 3590 || 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3591 * mode_lib->vba.WritebackHRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3592 > mode_lib->vba.WritebackChromaHTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3593 || 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3594 * mode_lib->vba.WritebackVRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3595 > mode_lib->vba.WritebackChromaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3596 || (mode_lib->vba.WritebackChromaHTaps[k] > 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3597 && ((mode_lib->vba.WritebackChromaHTaps[k] % 2) == 1))))) {
728c06986a4f38 Harry Wentland 2019-02-22 3598 mode_lib->vba.WritebackScaleRatioAndTapsSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3599 }
728c06986a4f38 Harry Wentland 2019-02-22 3600 if (mode_lib->vba.WritebackVRatio[k] < 1.0) {
728c06986a4f38 Harry Wentland 2019-02-22 3601 mode_lib->vba.WritebackLumaVExtra =
728c06986a4f38 Harry Wentland 2019-02-22 3602 dml_max(1.0 - 2.0 / dml_ceil(1.0 / mode_lib->vba.WritebackVRatio[k], 1.0), 0.0);
728c06986a4f38 Harry Wentland 2019-02-22 3603 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3604 mode_lib->vba.WritebackLumaVExtra = -1;
728c06986a4f38 Harry Wentland 2019-02-22 3605 }
728c06986a4f38 Harry Wentland 2019-02-22 3606 if ((mode_lib->vba.WritebackPixelFormat[k] == dm_444_32
728c06986a4f38 Harry Wentland 2019-02-22 3607 && mode_lib->vba.WritebackLumaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3608 > (mode_lib->vba.WritebackLineBufferLumaBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3609 + mode_lib->vba.WritebackLineBufferChromaBufferSize)
728c06986a4f38 Harry Wentland 2019-02-22 3610 / 3.0
728c06986a4f38 Harry Wentland 2019-02-22 3611 / mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3612 - mode_lib->vba.WritebackLumaVExtra)
728c06986a4f38 Harry Wentland 2019-02-22 3613 || (mode_lib->vba.WritebackPixelFormat[k] == dm_420_8
728c06986a4f38 Harry Wentland 2019-02-22 3614 && mode_lib->vba.WritebackLumaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3615 > mode_lib->vba.WritebackLineBufferLumaBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3616 * 8.0 / 10.0 / mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3617 - mode_lib->vba.WritebackLumaVExtra)
728c06986a4f38 Harry Wentland 2019-02-22 3618 || (mode_lib->vba.WritebackPixelFormat[k] == dm_420_10
728c06986a4f38 Harry Wentland 2019-02-22 3619 && mode_lib->vba.WritebackLumaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3620 > mode_lib->vba.WritebackLineBufferLumaBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3621 * 8.0 / 10.0
728c06986a4f38 Harry Wentland 2019-02-22 3622 / mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3623 - mode_lib->vba.WritebackLumaVExtra)) {
728c06986a4f38 Harry Wentland 2019-02-22 3624 mode_lib->vba.WritebackScaleRatioAndTapsSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3625 }
728c06986a4f38 Harry Wentland 2019-02-22 3626 if (2.0 * mode_lib->vba.WritebackVRatio[k] < 1) {
728c06986a4f38 Harry Wentland 2019-02-22 3627 mode_lib->vba.WritebackChromaVExtra = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3628 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3629 mode_lib->vba.WritebackChromaVExtra = -1;
728c06986a4f38 Harry Wentland 2019-02-22 3630 }
728c06986a4f38 Harry Wentland 2019-02-22 3631 if ((mode_lib->vba.WritebackPixelFormat[k] == dm_420_8
728c06986a4f38 Harry Wentland 2019-02-22 3632 && mode_lib->vba.WritebackChromaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3633 > mode_lib->vba.WritebackLineBufferChromaBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3634 * 8.0 / 10.0 / mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3635 - mode_lib->vba.WritebackChromaVExtra)
728c06986a4f38 Harry Wentland 2019-02-22 3636 || (mode_lib->vba.WritebackPixelFormat[k] == dm_420_10
728c06986a4f38 Harry Wentland 2019-02-22 3637 && mode_lib->vba.WritebackChromaVTaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3638 > mode_lib->vba.WritebackLineBufferChromaBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3639 * 8.0 / 10.0
728c06986a4f38 Harry Wentland 2019-02-22 3640 / mode_lib->vba.WritebackDestinationWidth[k]
728c06986a4f38 Harry Wentland 2019-02-22 3641 - mode_lib->vba.WritebackChromaVExtra)) {
728c06986a4f38 Harry Wentland 2019-02-22 3642 mode_lib->vba.WritebackScaleRatioAndTapsSupport = false;
728c06986a4f38 Harry Wentland 2019-02-22 3643 }
728c06986a4f38 Harry Wentland 2019-02-22 3644 }
728c06986a4f38 Harry Wentland 2019-02-22 3645 }
728c06986a4f38 Harry Wentland 2019-02-22 3646 /*Maximum DISPCLK/DPPCLK Support check*/
728c06986a4f38 Harry Wentland 2019-02-22 3647
728c06986a4f38 Harry Wentland 2019-02-22 3648 mode_lib->vba.WritebackRequiredDISPCLK = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3649 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3650 if (mode_lib->vba.WritebackEnable[k] == true) {
728c06986a4f38 Harry Wentland 2019-02-22 3651 mode_lib->vba.WritebackRequiredDISPCLK =
728c06986a4f38 Harry Wentland 2019-02-22 3652 dml_max(
728c06986a4f38 Harry Wentland 2019-02-22 3653 mode_lib->vba.WritebackRequiredDISPCLK,
728c06986a4f38 Harry Wentland 2019-02-22 3654 CalculateWriteBackDISPCLK(
728c06986a4f38 Harry Wentland 2019-02-22 3655 mode_lib->vba.WritebackPixelFormat[k],
728c06986a4f38 Harry Wentland 2019-02-22 3656 mode_lib->vba.PixelClock[k],
728c06986a4f38 Harry Wentland 2019-02-22 3657 mode_lib->vba.WritebackHRatio[k],
728c06986a4f38 Harry Wentland 2019-02-22 3658 mode_lib->vba.WritebackVRatio[k],
728c06986a4f38 Harry Wentland 2019-02-22 3659 mode_lib->vba.WritebackLumaHTaps[k],
728c06986a4f38 Harry Wentland 2019-02-22 3660 mode_lib->vba.WritebackLumaVTaps[k],
728c06986a4f38 Harry Wentland 2019-02-22 3661 mode_lib->vba.WritebackChromaHTaps[k],
728c06986a4f38 Harry Wentland 2019-02-22 3662 mode_lib->vba.WritebackChromaVTaps[k],
728c06986a4f38 Harry Wentland 2019-02-22 3663 mode_lib->vba.WritebackDestinationWidth[k],
728c06986a4f38 Harry Wentland 2019-02-22 3664 mode_lib->vba.HTotal[k],
728c06986a4f38 Harry Wentland 2019-02-22 3665 mode_lib->vba.WritebackChromaLineBufferWidth));
728c06986a4f38 Harry Wentland 2019-02-22 3666 }
728c06986a4f38 Harry Wentland 2019-02-22 3667 }
728c06986a4f38 Harry Wentland 2019-02-22 3668 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3669 if (mode_lib->vba.HRatio[k] > 1.0) {
728c06986a4f38 Harry Wentland 2019-02-22 3670 locals->PSCL_FACTOR[k] = dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3671 mode_lib->vba.MaxDCHUBToPSCLThroughput,
728c06986a4f38 Harry Wentland 2019-02-22 3672 mode_lib->vba.MaxPSCLToLBThroughput
728c06986a4f38 Harry Wentland 2019-02-22 3673 * mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3674 / dml_ceil(
728c06986a4f38 Harry Wentland 2019-02-22 3675 mode_lib->vba.htaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3676 / 6.0,
728c06986a4f38 Harry Wentland 2019-02-22 3677 1.0));
728c06986a4f38 Harry Wentland 2019-02-22 3678 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3679 locals->PSCL_FACTOR[k] = dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3680 mode_lib->vba.MaxDCHUBToPSCLThroughput,
728c06986a4f38 Harry Wentland 2019-02-22 3681 mode_lib->vba.MaxPSCLToLBThroughput);
728c06986a4f38 Harry Wentland 2019-02-22 3682 }
728c06986a4f38 Harry Wentland 2019-02-22 3683 if (locals->BytePerPixelInDETC[k] == 0.0) {
728c06986a4f38 Harry Wentland 2019-02-22 3684 locals->PSCL_FACTOR_CHROMA[k] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3685 locals->MinDPPCLKUsingSingleDPP[k] =
728c06986a4f38 Harry Wentland 2019-02-22 3686 mode_lib->vba.PixelClock[k]
728c06986a4f38 Harry Wentland 2019-02-22 3687 * dml_max3(
728c06986a4f38 Harry Wentland 2019-02-22 3688 mode_lib->vba.vtaps[k] / 6.0
728c06986a4f38 Harry Wentland 2019-02-22 3689 * dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3690 1.0,
728c06986a4f38 Harry Wentland 2019-02-22 3691 mode_lib->vba.HRatio[k]),
728c06986a4f38 Harry Wentland 2019-02-22 3692 mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3693 * mode_lib->vba.VRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3694 / locals->PSCL_FACTOR[k],
728c06986a4f38 Harry Wentland 2019-02-22 3695 1.0);
728c06986a4f38 Harry Wentland 2019-02-22 3696 if ((mode_lib->vba.htaps[k] > 6.0 || mode_lib->vba.vtaps[k] > 6.0)
728c06986a4f38 Harry Wentland 2019-02-22 3697 && locals->MinDPPCLKUsingSingleDPP[k]
728c06986a4f38 Harry Wentland 2019-02-22 3698 < 2.0 * mode_lib->vba.PixelClock[k]) {
728c06986a4f38 Harry Wentland 2019-02-22 3699 locals->MinDPPCLKUsingSingleDPP[k] = 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3700 * mode_lib->vba.PixelClock[k];
728c06986a4f38 Harry Wentland 2019-02-22 3701 }
728c06986a4f38 Harry Wentland 2019-02-22 3702 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3703 if (mode_lib->vba.HRatio[k] / 2.0 > 1.0) {
728c06986a4f38 Harry Wentland 2019-02-22 3704 locals->PSCL_FACTOR_CHROMA[k] =
728c06986a4f38 Harry Wentland 2019-02-22 3705 dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3706 mode_lib->vba.MaxDCHUBToPSCLThroughput,
728c06986a4f38 Harry Wentland 2019-02-22 3707 mode_lib->vba.MaxPSCLToLBThroughput
728c06986a4f38 Harry Wentland 2019-02-22 3708 * mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3709 / 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3710 / dml_ceil(
728c06986a4f38 Harry Wentland 2019-02-22 3711 mode_lib->vba.HTAPsChroma[k]
728c06986a4f38 Harry Wentland 2019-02-22 3712 / 6.0,
728c06986a4f38 Harry Wentland 2019-02-22 3713 1.0));
728c06986a4f38 Harry Wentland 2019-02-22 3714 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3715 locals->PSCL_FACTOR_CHROMA[k] = dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3716 mode_lib->vba.MaxDCHUBToPSCLThroughput,
728c06986a4f38 Harry Wentland 2019-02-22 3717 mode_lib->vba.MaxPSCLToLBThroughput);
728c06986a4f38 Harry Wentland 2019-02-22 3718 }
728c06986a4f38 Harry Wentland 2019-02-22 3719 locals->MinDPPCLKUsingSingleDPP[k] =
728c06986a4f38 Harry Wentland 2019-02-22 3720 mode_lib->vba.PixelClock[k]
728c06986a4f38 Harry Wentland 2019-02-22 3721 * dml_max5(
728c06986a4f38 Harry Wentland 2019-02-22 3722 mode_lib->vba.vtaps[k] / 6.0
728c06986a4f38 Harry Wentland 2019-02-22 3723 * dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3724 1.0,
728c06986a4f38 Harry Wentland 2019-02-22 3725 mode_lib->vba.HRatio[k]),
728c06986a4f38 Harry Wentland 2019-02-22 3726 mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3727 * mode_lib->vba.VRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3728 / locals->PSCL_FACTOR[k],
728c06986a4f38 Harry Wentland 2019-02-22 3729 mode_lib->vba.VTAPsChroma[k]
728c06986a4f38 Harry Wentland 2019-02-22 3730 / 6.0
728c06986a4f38 Harry Wentland 2019-02-22 3731 * dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3732 1.0,
728c06986a4f38 Harry Wentland 2019-02-22 3733 mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3734 / 2.0),
728c06986a4f38 Harry Wentland 2019-02-22 3735 mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3736 * mode_lib->vba.VRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3737 / 4.0
728c06986a4f38 Harry Wentland 2019-02-22 3738 / locals->PSCL_FACTOR_CHROMA[k],
728c06986a4f38 Harry Wentland 2019-02-22 3739 1.0);
728c06986a4f38 Harry Wentland 2019-02-22 3740 if ((mode_lib->vba.htaps[k] > 6.0 || mode_lib->vba.vtaps[k] > 6.0
728c06986a4f38 Harry Wentland 2019-02-22 3741 || mode_lib->vba.HTAPsChroma[k] > 6.0
728c06986a4f38 Harry Wentland 2019-02-22 3742 || mode_lib->vba.VTAPsChroma[k] > 6.0)
728c06986a4f38 Harry Wentland 2019-02-22 3743 && locals->MinDPPCLKUsingSingleDPP[k]
728c06986a4f38 Harry Wentland 2019-02-22 3744 < 2.0 * mode_lib->vba.PixelClock[k]) {
728c06986a4f38 Harry Wentland 2019-02-22 3745 locals->MinDPPCLKUsingSingleDPP[k] = 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3746 * mode_lib->vba.PixelClock[k];
728c06986a4f38 Harry Wentland 2019-02-22 3747 }
728c06986a4f38 Harry Wentland 2019-02-22 3748 }
728c06986a4f38 Harry Wentland 2019-02-22 3749 }
728c06986a4f38 Harry Wentland 2019-02-22 3750 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3751 Calculate256BBlockSizes(
728c06986a4f38 Harry Wentland 2019-02-22 3752 mode_lib->vba.SourcePixelFormat[k],
728c06986a4f38 Harry Wentland 2019-02-22 3753 mode_lib->vba.SurfaceTiling[k],
728c06986a4f38 Harry Wentland 2019-02-22 3754 dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
728c06986a4f38 Harry Wentland 2019-02-22 3755 dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
728c06986a4f38 Harry Wentland 2019-02-22 3756 &locals->Read256BlockHeightY[k],
728c06986a4f38 Harry Wentland 2019-02-22 3757 &locals->Read256BlockHeightC[k],
728c06986a4f38 Harry Wentland 2019-02-22 3758 &locals->Read256BlockWidthY[k],
728c06986a4f38 Harry Wentland 2019-02-22 3759 &locals->Read256BlockWidthC[k]);
728c06986a4f38 Harry Wentland 2019-02-22 3760 if (mode_lib->vba.SourceScan[k] == dm_horz) {
728c06986a4f38 Harry Wentland 2019-02-22 3761 locals->MaxSwathHeightY[k] = locals->Read256BlockHeightY[k];
728c06986a4f38 Harry Wentland 2019-02-22 3762 locals->MaxSwathHeightC[k] = locals->Read256BlockHeightC[k];
728c06986a4f38 Harry Wentland 2019-02-22 3763 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3764 locals->MaxSwathHeightY[k] = locals->Read256BlockWidthY[k];
728c06986a4f38 Harry Wentland 2019-02-22 3765 locals->MaxSwathHeightC[k] = locals->Read256BlockWidthC[k];
728c06986a4f38 Harry Wentland 2019-02-22 3766 }
728c06986a4f38 Harry Wentland 2019-02-22 3767 if ((mode_lib->vba.SourcePixelFormat[k] == dm_444_64
728c06986a4f38 Harry Wentland 2019-02-22 3768 || mode_lib->vba.SourcePixelFormat[k] == dm_444_32
728c06986a4f38 Harry Wentland 2019-02-22 3769 || mode_lib->vba.SourcePixelFormat[k] == dm_444_16
728c06986a4f38 Harry Wentland 2019-02-22 3770 || mode_lib->vba.SourcePixelFormat[k] == dm_mono_16
728c06986a4f38 Harry Wentland 2019-02-22 3771 || mode_lib->vba.SourcePixelFormat[k] == dm_mono_8)) {
728c06986a4f38 Harry Wentland 2019-02-22 3772 if (mode_lib->vba.SurfaceTiling[k] == dm_sw_linear
728c06986a4f38 Harry Wentland 2019-02-22 3773 || (mode_lib->vba.SourcePixelFormat[k] == dm_444_64
728c06986a4f38 Harry Wentland 2019-02-22 3774 && (mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3775 == dm_sw_4kb_s
728c06986a4f38 Harry Wentland 2019-02-22 3776 || mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3777 == dm_sw_4kb_s_x
728c06986a4f38 Harry Wentland 2019-02-22 3778 || mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3779 == dm_sw_64kb_s
728c06986a4f38 Harry Wentland 2019-02-22 3780 || mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3781 == dm_sw_64kb_s_t
728c06986a4f38 Harry Wentland 2019-02-22 3782 || mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3783 == dm_sw_64kb_s_x
728c06986a4f38 Harry Wentland 2019-02-22 3784 || mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3785 == dm_sw_var_s
728c06986a4f38 Harry Wentland 2019-02-22 3786 || mode_lib->vba.SurfaceTiling[k]
728c06986a4f38 Harry Wentland 2019-02-22 3787 == dm_sw_var_s_x)
728c06986a4f38 Harry Wentland 2019-02-22 3788 && mode_lib->vba.SourceScan[k] == dm_horz)) {
728c06986a4f38 Harry Wentland 2019-02-22 3789 locals->MinSwathHeightY[k] = locals->MaxSwathHeightY[k];
728c06986a4f38 Harry Wentland 2019-02-22 3790 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3791 locals->MinSwathHeightY[k] = locals->MaxSwathHeightY[k]
728c06986a4f38 Harry Wentland 2019-02-22 3792 / 2.0;
728c06986a4f38 Harry Wentland 2019-02-22 3793 }
728c06986a4f38 Harry Wentland 2019-02-22 3794 locals->MinSwathHeightC[k] = locals->MaxSwathHeightC[k];
728c06986a4f38 Harry Wentland 2019-02-22 3795 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3796 if (mode_lib->vba.SurfaceTiling[k] == dm_sw_linear) {
728c06986a4f38 Harry Wentland 2019-02-22 3797 locals->MinSwathHeightY[k] = locals->MaxSwathHeightY[k];
728c06986a4f38 Harry Wentland 2019-02-22 3798 locals->MinSwathHeightC[k] = locals->MaxSwathHeightC[k];
728c06986a4f38 Harry Wentland 2019-02-22 3799 } else if (mode_lib->vba.SourcePixelFormat[k] == dm_420_8
728c06986a4f38 Harry Wentland 2019-02-22 3800 && mode_lib->vba.SourceScan[k] == dm_horz) {
728c06986a4f38 Harry Wentland 2019-02-22 3801 locals->MinSwathHeightY[k] = locals->MaxSwathHeightY[k]
728c06986a4f38 Harry Wentland 2019-02-22 3802 / 2.0;
728c06986a4f38 Harry Wentland 2019-02-22 3803 locals->MinSwathHeightC[k] = locals->MaxSwathHeightC[k];
728c06986a4f38 Harry Wentland 2019-02-22 3804 } else if (mode_lib->vba.SourcePixelFormat[k] == dm_420_10
728c06986a4f38 Harry Wentland 2019-02-22 3805 && mode_lib->vba.SourceScan[k] == dm_horz) {
728c06986a4f38 Harry Wentland 2019-02-22 3806 locals->MinSwathHeightC[k] = locals->MaxSwathHeightC[k]
728c06986a4f38 Harry Wentland 2019-02-22 3807 / 2.0;
728c06986a4f38 Harry Wentland 2019-02-22 3808 locals->MinSwathHeightY[k] = locals->MaxSwathHeightY[k];
728c06986a4f38 Harry Wentland 2019-02-22 3809 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3810 locals->MinSwathHeightY[k] = locals->MaxSwathHeightY[k];
728c06986a4f38 Harry Wentland 2019-02-22 3811 locals->MinSwathHeightC[k] = locals->MaxSwathHeightC[k];
728c06986a4f38 Harry Wentland 2019-02-22 3812 }
728c06986a4f38 Harry Wentland 2019-02-22 3813 }
728c06986a4f38 Harry Wentland 2019-02-22 3814 if (mode_lib->vba.SurfaceTiling[k] == dm_sw_linear) {
728c06986a4f38 Harry Wentland 2019-02-22 3815 mode_lib->vba.MaximumSwathWidthSupport = 8192.0;
728c06986a4f38 Harry Wentland 2019-02-22 3816 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3817 mode_lib->vba.MaximumSwathWidthSupport = 5120.0;
728c06986a4f38 Harry Wentland 2019-02-22 3818 }
728c06986a4f38 Harry Wentland 2019-02-22 3819 mode_lib->vba.MaximumSwathWidthInDETBuffer =
728c06986a4f38 Harry Wentland 2019-02-22 3820 dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3821 mode_lib->vba.MaximumSwathWidthSupport,
4469201b19354a Chaitanya Dhere 2021-04-20 3822 mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3823 / (locals->BytePerPixelInDETY[k]
728c06986a4f38 Harry Wentland 2019-02-22 3824 * locals->MinSwathHeightY[k]
728c06986a4f38 Harry Wentland 2019-02-22 3825 + locals->BytePerPixelInDETC[k]
728c06986a4f38 Harry Wentland 2019-02-22 3826 / 2.0
728c06986a4f38 Harry Wentland 2019-02-22 3827 * locals->MinSwathHeightC[k]));
728c06986a4f38 Harry Wentland 2019-02-22 3828 if (locals->BytePerPixelInDETC[k] == 0.0) {
728c06986a4f38 Harry Wentland 2019-02-22 3829 mode_lib->vba.MaximumSwathWidthInLineBuffer =
728c06986a4f38 Harry Wentland 2019-02-22 3830 mode_lib->vba.LineBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3831 * dml_max(mode_lib->vba.HRatio[k], 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3832 / mode_lib->vba.LBBitPerPixel[k]
728c06986a4f38 Harry Wentland 2019-02-22 3833 / (mode_lib->vba.vtaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3834 + dml_max(
728c06986a4f38 Harry Wentland 2019-02-22 3835 dml_ceil(
728c06986a4f38 Harry Wentland 2019-02-22 3836 mode_lib->vba.VRatio[k],
728c06986a4f38 Harry Wentland 2019-02-22 3837 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3838 - 2,
728c06986a4f38 Harry Wentland 2019-02-22 3839 0.0));
728c06986a4f38 Harry Wentland 2019-02-22 3840 } else {
728c06986a4f38 Harry Wentland 2019-02-22 3841 mode_lib->vba.MaximumSwathWidthInLineBuffer =
728c06986a4f38 Harry Wentland 2019-02-22 3842 dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3843 mode_lib->vba.LineBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3844 * dml_max(
728c06986a4f38 Harry Wentland 2019-02-22 3845 mode_lib->vba.HRatio[k],
728c06986a4f38 Harry Wentland 2019-02-22 3846 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3847 / mode_lib->vba.LBBitPerPixel[k]
728c06986a4f38 Harry Wentland 2019-02-22 3848 / (mode_lib->vba.vtaps[k]
728c06986a4f38 Harry Wentland 2019-02-22 3849 + dml_max(
728c06986a4f38 Harry Wentland 2019-02-22 3850 dml_ceil(
728c06986a4f38 Harry Wentland 2019-02-22 3851 mode_lib->vba.VRatio[k],
728c06986a4f38 Harry Wentland 2019-02-22 3852 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3853 - 2,
728c06986a4f38 Harry Wentland 2019-02-22 3854 0.0)),
728c06986a4f38 Harry Wentland 2019-02-22 3855 2.0 * mode_lib->vba.LineBufferSize
728c06986a4f38 Harry Wentland 2019-02-22 3856 * dml_max(
728c06986a4f38 Harry Wentland 2019-02-22 3857 mode_lib->vba.HRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3858 / 2.0,
728c06986a4f38 Harry Wentland 2019-02-22 3859 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3860 / mode_lib->vba.LBBitPerPixel[k]
728c06986a4f38 Harry Wentland 2019-02-22 3861 / (mode_lib->vba.VTAPsChroma[k]
728c06986a4f38 Harry Wentland 2019-02-22 3862 + dml_max(
728c06986a4f38 Harry Wentland 2019-02-22 3863 dml_ceil(
728c06986a4f38 Harry Wentland 2019-02-22 3864 mode_lib->vba.VRatio[k]
728c06986a4f38 Harry Wentland 2019-02-22 3865 / 2.0,
728c06986a4f38 Harry Wentland 2019-02-22 3866 1.0)
728c06986a4f38 Harry Wentland 2019-02-22 3867 - 2,
728c06986a4f38 Harry Wentland 2019-02-22 3868 0.0)));
728c06986a4f38 Harry Wentland 2019-02-22 3869 }
728c06986a4f38 Harry Wentland 2019-02-22 3870 locals->MaximumSwathWidth[k] = dml_min(
728c06986a4f38 Harry Wentland 2019-02-22 3871 mode_lib->vba.MaximumSwathWidthInDETBuffer,
728c06986a4f38 Harry Wentland 2019-02-22 3872 mode_lib->vba.MaximumSwathWidthInLineBuffer);
728c06986a4f38 Harry Wentland 2019-02-22 3873 }
728c06986a4f38 Harry Wentland 2019-02-22 3874 for (i = 0; i <= mode_lib->vba.soc.num_states; i++) {
728c06986a4f38 Harry Wentland 2019-02-22 3875 for (j = 0; j < 2; j++) {
728c06986a4f38 Harry Wentland 2019-02-22 3876 mode_lib->vba.MaxDispclkRoundedDownToDFSGranularity = RoundToDFSGranularityDown(
728c06986a4f38 Harry Wentland 2019-02-22 3877 mode_lib->vba.MaxDispclk[i],
728c06986a4f38 Harry Wentland 2019-02-22 3878 mode_lib->vba.DISPCLKDPPCLKVCOSpeed);
728c06986a4f38 Harry Wentland 2019-02-22 3879 mode_lib->vba.MaxDppclkRoundedDownToDFSGranularity = RoundToDFSGranularityDown(
728c06986a4f38 Harry Wentland 2019-02-22 3880 mode_lib->vba.MaxDppclk[i],
728c06986a4f38 Harry Wentland 2019-02-22 3881 mode_lib->vba.DISPCLKDPPCLKVCOSpeed);
728c06986a4f38 Harry Wentland 2019-02-22 3882 locals->RequiredDISPCLK[i][j] = 0.0;
728c06986a4f38 Harry Wentland 2019-02-22 3883 locals->DISPCLK_DPPCLK_Support[i][j] = true;
728c06986a4f38 Harry Wentland 2019-02-22 3884 for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
728c06986a4f38 Harry Wentland 2019-02-22 3885 mode_lib->vba.PlaneRequiredDISPCLKWithoutODMCombine =
728c06986a4f38 Harry Wentland 2019-02-22 3886 mode_lib->vba.PixelClock[k] * (1.0 + mode_lib->vba.DISPCLKDPPCLKDSCCLKDownSpreading / 100.0)
728c06986a4f38 Harry Wentland 2019-02-22 3887 * (1.0 + mode_lib->vba.DISPCLKRampingMargin / 100.0);
728c06986a4f38 Harry Wentland 2019-02-22 3888 if (mode_lib->vba.PlaneRequiredDISPCLKWithoutODMCombine >= mode_lib->vba.MaxDispclk[i]
728c06986a4f38 Harry Wentland 2019-02-22 3889 && i == mode_lib->vba.soc.num_states)
728c06986a4f38 Harry Wentland 2019-02-22 3890 mode_lib->vba.PlaneRequiredDISPCLKWithoutODMCombine = mode_lib->vba.PixelClock[k]
728c06986a4f38 Harry Wentland 2019-02-22 3891 * (1 + mode_lib->vba.DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
728c06986a4f38 Harry Wentland 2019-02-22 3892
728c06986a4f38 Harry Wentland 2019-02-22 3893 mode_lib->vba.PlaneRequiredDISPCLKWithODMCombine = mode_lib->vba.PixelClock[k] / 2
728c06986a4f38 Harry Wentland 2019-02-22 3894 * (1 + mode_lib->vba.DISPCLKDPPCLKDSCCLKDownSpreading / 100.0) * (1 + mode_lib->vba.DISPCLKRampingMargin / 100.0);
728c06986a4f38 Harry Wentland 2019-02-22 3895 if (mode_lib->vba.PlaneRequiredDISPCLKWithODMCombine >= mode_lib->vba.MaxDispclk[i]
728c06986a4f38 Harry Wentland 2019-02-22 3896 && i == mode_lib->vba.soc.num_states)
728c06986a4f38 Harry Wentland 2019-02-22 3897 mode_lib->vba.PlaneRequiredDISPCLKWithODMCombine = mode_lib->vba.PixelClock[k] / 2
728c06986a4f38 Harry Wentland 2019-02-22 3898 * (1 + mode_lib->vba.DISPCLKDPPCLKDSCCLKDownSpreading / 100.0);
d478667253f988 Wenjing Liu 2020-01-13 3899
728c06986a4f38 Harry Wentland 2019-02-22 @3900 locals->ODMCombineEnablePerState[i][k] = false;
:::::: The code at line 3900 was first introduced by commit
:::::: 728c06986a4f386c7ec5e5170716e30b610c6d32 drm/amd/display: Add DCN2 changes to DML
:::::: TO: Harry Wentland <harry.wentland@amd.com>
:::::: CC: Alex Deucher <alexander.deucher@amd.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next reply other threads:[~2023-02-06 7:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 7:29 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-03-03 4:47 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.c:3900:72: warning: implicit conversion from 'enum <anonymous>' to 'enum odm_combine_mode' kernel test robot
2022-12-26 7:39 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202302061508.SaSd0vyR-lkp@intel.com \
--to=lkp@intel.com \
--cc=Rodrigo.Siqueira@amd.com \
--cc=alexander.deucher@amd.com \
--cc=hacc1225@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.