| .. | .. |
|---|
| 25 | 25 | |
|---|
| 26 | 26 | #include "display_mode_lib.h" |
|---|
| 27 | 27 | #include "dc_features.h" |
|---|
| 28 | +#include "dcn20/display_mode_vba_20.h" |
|---|
| 29 | +#include "dcn20/display_rq_dlg_calc_20.h" |
|---|
| 30 | +#include "dcn20/display_mode_vba_20v2.h" |
|---|
| 31 | +#include "dcn20/display_rq_dlg_calc_20v2.h" |
|---|
| 32 | +#include "dcn21/display_mode_vba_21.h" |
|---|
| 33 | +#include "dcn21/display_rq_dlg_calc_21.h" |
|---|
| 34 | +#ifdef CONFIG_DRM_AMD_DC_DCN3_0 |
|---|
| 35 | +#include "dcn30/display_mode_vba_30.h" |
|---|
| 36 | +#include "dcn30/display_rq_dlg_calc_30.h" |
|---|
| 37 | +#include "dml_logger.h" |
|---|
| 38 | +#endif |
|---|
| 28 | 39 | |
|---|
| 29 | | -extern const struct _vcs_dpi_ip_params_st dcn1_0_ip; |
|---|
| 30 | | -extern const struct _vcs_dpi_soc_bounding_box_st dcn1_0_soc; |
|---|
| 40 | +const struct dml_funcs dml20_funcs = { |
|---|
| 41 | + .validate = dml20_ModeSupportAndSystemConfigurationFull, |
|---|
| 42 | + .recalculate = dml20_recalculate, |
|---|
| 43 | + .rq_dlg_get_dlg_reg = dml20_rq_dlg_get_dlg_reg, |
|---|
| 44 | + .rq_dlg_get_rq_reg = dml20_rq_dlg_get_rq_reg |
|---|
| 45 | +}; |
|---|
| 31 | 46 | |
|---|
| 32 | | -static void set_soc_bounding_box(struct _vcs_dpi_soc_bounding_box_st *soc, enum dml_project project) |
|---|
| 47 | +const struct dml_funcs dml20v2_funcs = { |
|---|
| 48 | + .validate = dml20v2_ModeSupportAndSystemConfigurationFull, |
|---|
| 49 | + .recalculate = dml20v2_recalculate, |
|---|
| 50 | + .rq_dlg_get_dlg_reg = dml20v2_rq_dlg_get_dlg_reg, |
|---|
| 51 | + .rq_dlg_get_rq_reg = dml20v2_rq_dlg_get_rq_reg |
|---|
| 52 | +}; |
|---|
| 53 | + |
|---|
| 54 | +const struct dml_funcs dml21_funcs = { |
|---|
| 55 | + .validate = dml21_ModeSupportAndSystemConfigurationFull, |
|---|
| 56 | + .recalculate = dml21_recalculate, |
|---|
| 57 | + .rq_dlg_get_dlg_reg = dml21_rq_dlg_get_dlg_reg, |
|---|
| 58 | + .rq_dlg_get_rq_reg = dml21_rq_dlg_get_rq_reg |
|---|
| 59 | +}; |
|---|
| 60 | + |
|---|
| 61 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 62 | +const struct dml_funcs dml30_funcs = { |
|---|
| 63 | + .validate = dml30_ModeSupportAndSystemConfigurationFull, |
|---|
| 64 | + .recalculate = dml30_recalculate, |
|---|
| 65 | + .rq_dlg_get_dlg_reg = dml30_rq_dlg_get_dlg_reg, |
|---|
| 66 | + .rq_dlg_get_rq_reg = dml30_rq_dlg_get_rq_reg |
|---|
| 67 | +}; |
|---|
| 68 | +#endif |
|---|
| 69 | +void dml_init_instance(struct display_mode_lib *lib, |
|---|
| 70 | + const struct _vcs_dpi_soc_bounding_box_st *soc_bb, |
|---|
| 71 | + const struct _vcs_dpi_ip_params_st *ip_params, |
|---|
| 72 | + enum dml_project project) |
|---|
| 33 | 73 | { |
|---|
| 74 | + lib->soc = *soc_bb; |
|---|
| 75 | + lib->ip = *ip_params; |
|---|
| 76 | + lib->project = project; |
|---|
| 34 | 77 | switch (project) { |
|---|
| 35 | | - case DML_PROJECT_RAVEN1: |
|---|
| 36 | | - *soc = dcn1_0_soc; |
|---|
| 78 | + case DML_PROJECT_NAVI10: |
|---|
| 79 | + lib->funcs = dml20_funcs; |
|---|
| 37 | 80 | break; |
|---|
| 81 | + case DML_PROJECT_NAVI10v2: |
|---|
| 82 | + lib->funcs = dml20v2_funcs; |
|---|
| 83 | + break; |
|---|
| 84 | + case DML_PROJECT_DCN21: |
|---|
| 85 | + lib->funcs = dml21_funcs; |
|---|
| 86 | + break; |
|---|
| 87 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 88 | + case DML_PROJECT_DCN30: |
|---|
| 89 | + lib->funcs = dml30_funcs; |
|---|
| 90 | + break; |
|---|
| 91 | +#endif |
|---|
| 92 | + |
|---|
| 38 | 93 | default: |
|---|
| 39 | | - ASSERT(0); |
|---|
| 40 | 94 | break; |
|---|
| 41 | 95 | } |
|---|
| 42 | 96 | } |
|---|
| 43 | 97 | |
|---|
| 44 | | -static void set_ip_params(struct _vcs_dpi_ip_params_st *ip, enum dml_project project) |
|---|
| 98 | +const char *dml_get_status_message(enum dm_validation_status status) |
|---|
| 45 | 99 | { |
|---|
| 46 | | - switch (project) { |
|---|
| 47 | | - case DML_PROJECT_RAVEN1: |
|---|
| 48 | | - *ip = dcn1_0_ip; |
|---|
| 49 | | - break; |
|---|
| 50 | | - default: |
|---|
| 51 | | - ASSERT(0); |
|---|
| 52 | | - break; |
|---|
| 100 | + switch (status) { |
|---|
| 101 | + case DML_VALIDATION_OK: return "Validation OK"; |
|---|
| 102 | + case DML_FAIL_SCALE_RATIO_TAP: return "Scale ratio/tap"; |
|---|
| 103 | + case DML_FAIL_SOURCE_PIXEL_FORMAT: return "Source pixel format"; |
|---|
| 104 | + case DML_FAIL_VIEWPORT_SIZE: return "Viewport size"; |
|---|
| 105 | + case DML_FAIL_TOTAL_V_ACTIVE_BW: return "Total vertical active bandwidth"; |
|---|
| 106 | + case DML_FAIL_DIO_SUPPORT: return "DIO support"; |
|---|
| 107 | + case DML_FAIL_NOT_ENOUGH_DSC: return "Not enough DSC Units"; |
|---|
| 108 | + case DML_FAIL_DSC_CLK_REQUIRED: return "DSC clock required"; |
|---|
| 109 | + case DML_FAIL_URGENT_LATENCY: return "Urgent latency"; |
|---|
| 110 | + case DML_FAIL_REORDERING_BUFFER: return "Re-ordering buffer"; |
|---|
| 111 | + case DML_FAIL_DISPCLK_DPPCLK: return "Dispclk and Dppclk"; |
|---|
| 112 | + case DML_FAIL_TOTAL_AVAILABLE_PIPES: return "Total available pipes"; |
|---|
| 113 | + case DML_FAIL_NUM_OTG: return "Number of OTG"; |
|---|
| 114 | + case DML_FAIL_WRITEBACK_MODE: return "Writeback mode"; |
|---|
| 115 | + case DML_FAIL_WRITEBACK_LATENCY: return "Writeback latency"; |
|---|
| 116 | + case DML_FAIL_WRITEBACK_SCALE_RATIO_TAP: return "Writeback scale ratio/tap"; |
|---|
| 117 | + case DML_FAIL_CURSOR_SUPPORT: return "Cursor support"; |
|---|
| 118 | + case DML_FAIL_PITCH_SUPPORT: return "Pitch support"; |
|---|
| 119 | + case DML_FAIL_PTE_BUFFER_SIZE: return "PTE buffer size"; |
|---|
| 120 | + case DML_FAIL_DSC_INPUT_BPC: return "DSC input bpc"; |
|---|
| 121 | + case DML_FAIL_PREFETCH_SUPPORT: return "Prefetch support"; |
|---|
| 122 | + case DML_FAIL_V_RATIO_PREFETCH: return "Vertical ratio prefetch"; |
|---|
| 123 | + default: return "Unknown Status"; |
|---|
| 53 | 124 | } |
|---|
| 54 | 125 | } |
|---|
| 55 | | - |
|---|
| 56 | | -void dml_init_instance(struct display_mode_lib *lib, enum dml_project project) |
|---|
| 126 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 127 | +void dml_log_pipe_params( |
|---|
| 128 | + struct display_mode_lib *mode_lib, |
|---|
| 129 | + display_e2e_pipe_params_st *pipes, |
|---|
| 130 | + int pipe_cnt) |
|---|
| 57 | 131 | { |
|---|
| 58 | | - if (lib->project != project) { |
|---|
| 59 | | - set_soc_bounding_box(&lib->soc, project); |
|---|
| 60 | | - set_ip_params(&lib->ip, project); |
|---|
| 61 | | - lib->project = project; |
|---|
| 132 | + display_pipe_source_params_st *pipe_src; |
|---|
| 133 | + display_pipe_dest_params_st *pipe_dest; |
|---|
| 134 | + scaler_ratio_depth_st *scale_ratio_depth; |
|---|
| 135 | + scaler_taps_st *scale_taps; |
|---|
| 136 | + display_output_params_st *dout; |
|---|
| 137 | + display_clocks_and_cfg_st *clks_cfg; |
|---|
| 138 | + int i; |
|---|
| 139 | + |
|---|
| 140 | + for (i = 0; i < pipe_cnt; i++) { |
|---|
| 141 | + pipe_src = &(pipes[i].pipe.src); |
|---|
| 142 | + pipe_dest = &(pipes[i].pipe.dest); |
|---|
| 143 | + scale_ratio_depth = &(pipes[i].pipe.scale_ratio_depth); |
|---|
| 144 | + scale_taps = &(pipes[i].pipe.scale_taps); |
|---|
| 145 | + dout = &(pipes[i].dout); |
|---|
| 146 | + clks_cfg = &(pipes[i].clks_cfg); |
|---|
| 147 | + |
|---|
| 148 | + dml_print("DML PARAMS: =====================================\n"); |
|---|
| 149 | + dml_print("DML PARAMS: PIPE [%d] SOURCE PARAMS:\n", i); |
|---|
| 150 | + dml_print("DML PARAMS: source_format = %d\n", pipe_src->source_format); |
|---|
| 151 | + dml_print("DML PARAMS: dcc = %d\n", pipe_src->dcc); |
|---|
| 152 | + dml_print("DML PARAMS: dcc_rate = %d\n", pipe_src->dcc_rate); |
|---|
| 153 | + dml_print("DML PARAMS: dcc_use_global = %d\n", pipe_src->dcc_use_global); |
|---|
| 154 | + dml_print("DML PARAMS: vm = %d\n", pipe_src->vm); |
|---|
| 155 | + dml_print("DML PARAMS: gpuvm = %d\n", pipe_src->gpuvm); |
|---|
| 156 | + dml_print("DML PARAMS: hostvm = %d\n", pipe_src->hostvm); |
|---|
| 157 | + dml_print("DML PARAMS: gpuvm_levels_force_en = %d\n", pipe_src->gpuvm_levels_force_en); |
|---|
| 158 | + dml_print("DML PARAMS: gpuvm_levels_force = %d\n", pipe_src->gpuvm_levels_force); |
|---|
| 159 | + dml_print("DML PARAMS: source_scan = %d\n", pipe_src->source_scan); |
|---|
| 160 | + dml_print("DML PARAMS: sw_mode = %d\n", pipe_src->sw_mode); |
|---|
| 161 | + dml_print("DML PARAMS: macro_tile_size = %d\n", pipe_src->macro_tile_size); |
|---|
| 162 | + dml_print("DML PARAMS: viewport_width = %d\n", pipe_src->viewport_width); |
|---|
| 163 | + dml_print("DML PARAMS: viewport_height = %d\n", pipe_src->viewport_height); |
|---|
| 164 | + dml_print("DML PARAMS: viewport_y_y = %d\n", pipe_src->viewport_y_y); |
|---|
| 165 | + dml_print("DML PARAMS: viewport_y_c = %d\n", pipe_src->viewport_y_c); |
|---|
| 166 | + dml_print("DML PARAMS: viewport_width_c = %d\n", pipe_src->viewport_width_c); |
|---|
| 167 | + dml_print("DML PARAMS: viewport_height_c = %d\n", pipe_src->viewport_height_c); |
|---|
| 168 | + dml_print("DML PARAMS: data_pitch = %d\n", pipe_src->data_pitch); |
|---|
| 169 | + dml_print("DML PARAMS: data_pitch_c = %d\n", pipe_src->data_pitch_c); |
|---|
| 170 | + dml_print("DML PARAMS: meta_pitch = %d\n", pipe_src->meta_pitch); |
|---|
| 171 | + dml_print("DML PARAMS: meta_pitch_c = %d\n", pipe_src->meta_pitch_c); |
|---|
| 172 | + dml_print("DML PARAMS: cur0_src_width = %d\n", pipe_src->cur0_src_width); |
|---|
| 173 | + dml_print("DML PARAMS: cur0_bpp = %d\n", pipe_src->cur0_bpp); |
|---|
| 174 | + dml_print("DML PARAMS: cur1_src_width = %d\n", pipe_src->cur1_src_width); |
|---|
| 175 | + dml_print("DML PARAMS: cur1_bpp = %d\n", pipe_src->cur1_bpp); |
|---|
| 176 | + dml_print("DML PARAMS: num_cursors = %d\n", pipe_src->num_cursors); |
|---|
| 177 | + dml_print("DML PARAMS: is_hsplit = %d\n", pipe_src->is_hsplit); |
|---|
| 178 | + dml_print("DML PARAMS: hsplit_grp = %d\n", pipe_src->hsplit_grp); |
|---|
| 179 | + dml_print("DML PARAMS: dynamic_metadata_enable = %d\n", pipe_src->dynamic_metadata_enable); |
|---|
| 180 | + dml_print("DML PARAMS: dmdata_lines_before_active = %d\n", pipe_src->dynamic_metadata_lines_before_active); |
|---|
| 181 | + dml_print("DML PARAMS: dmdata_xmit_bytes = %d\n", pipe_src->dynamic_metadata_xmit_bytes); |
|---|
| 182 | + dml_print("DML PARAMS: immediate_flip = %d\n", pipe_src->immediate_flip); |
|---|
| 183 | + dml_print("DML PARAMS: v_total_min = %d\n", pipe_src->v_total_min); |
|---|
| 184 | + dml_print("DML PARAMS: v_total_max = %d\n", pipe_src->v_total_max); |
|---|
| 185 | + dml_print("DML PARAMS: =====================================\n"); |
|---|
| 186 | + |
|---|
| 187 | + dml_print("DML PARAMS: PIPE [%d] DESTINATION PARAMS:\n", i); |
|---|
| 188 | + dml_print("DML PARAMS: recout_width = %d\n", pipe_dest->recout_width); |
|---|
| 189 | + dml_print("DML PARAMS: recout_height = %d\n", pipe_dest->recout_height); |
|---|
| 190 | + dml_print("DML PARAMS: full_recout_width = %d\n", pipe_dest->full_recout_width); |
|---|
| 191 | + dml_print("DML PARAMS: full_recout_height = %d\n", pipe_dest->full_recout_height); |
|---|
| 192 | + dml_print("DML PARAMS: hblank_start = %d\n", pipe_dest->hblank_start); |
|---|
| 193 | + dml_print("DML PARAMS: hblank_end = %d\n", pipe_dest->hblank_end); |
|---|
| 194 | + dml_print("DML PARAMS: vblank_start = %d\n", pipe_dest->vblank_start); |
|---|
| 195 | + dml_print("DML PARAMS: vblank_end = %d\n", pipe_dest->vblank_end); |
|---|
| 196 | + dml_print("DML PARAMS: htotal = %d\n", pipe_dest->htotal); |
|---|
| 197 | + dml_print("DML PARAMS: vtotal = %d\n", pipe_dest->vtotal); |
|---|
| 198 | + dml_print("DML PARAMS: vactive = %d\n", pipe_dest->vactive); |
|---|
| 199 | + dml_print("DML PARAMS: hactive = %d\n", pipe_dest->hactive); |
|---|
| 200 | + dml_print("DML PARAMS: vstartup_start = %d\n", pipe_dest->vstartup_start); |
|---|
| 201 | + dml_print("DML PARAMS: vupdate_offset = %d\n", pipe_dest->vupdate_offset); |
|---|
| 202 | + dml_print("DML PARAMS: vupdate_width = %d\n", pipe_dest->vupdate_width); |
|---|
| 203 | + dml_print("DML PARAMS: vready_offset = %d\n", pipe_dest->vready_offset); |
|---|
| 204 | + dml_print("DML PARAMS: interlaced = %d\n", pipe_dest->interlaced); |
|---|
| 205 | + dml_print("DML PARAMS: pixel_rate_mhz = %3.2f\n", pipe_dest->pixel_rate_mhz); |
|---|
| 206 | + dml_print("DML PARAMS: sync_vblank_all_planes = %d\n", pipe_dest->synchronized_vblank_all_planes); |
|---|
| 207 | + dml_print("DML PARAMS: otg_inst = %d\n", pipe_dest->otg_inst); |
|---|
| 208 | + dml_print("DML PARAMS: odm_combine = %d\n", pipe_dest->odm_combine); |
|---|
| 209 | + dml_print("DML PARAMS: use_maximum_vstartup = %d\n", pipe_dest->use_maximum_vstartup); |
|---|
| 210 | + dml_print("DML PARAMS: vtotal_max = %d\n", pipe_dest->vtotal_max); |
|---|
| 211 | + dml_print("DML PARAMS: vtotal_min = %d\n", pipe_dest->vtotal_min); |
|---|
| 212 | + dml_print("DML PARAMS: =====================================\n"); |
|---|
| 213 | + |
|---|
| 214 | + dml_print("DML PARAMS: PIPE [%d] SCALER PARAMS:\n", i); |
|---|
| 215 | + dml_print("DML PARAMS: hscl_ratio = %3.4f\n", scale_ratio_depth->hscl_ratio); |
|---|
| 216 | + dml_print("DML PARAMS: vscl_ratio = %3.4f\n", scale_ratio_depth->vscl_ratio); |
|---|
| 217 | + dml_print("DML PARAMS: hscl_ratio_c = %3.4f\n", scale_ratio_depth->hscl_ratio_c); |
|---|
| 218 | + dml_print("DML PARAMS: vscl_ratio_c = %3.4f\n", scale_ratio_depth->vscl_ratio_c); |
|---|
| 219 | + dml_print("DML PARAMS: vinit = %3.4f\n", scale_ratio_depth->vinit); |
|---|
| 220 | + dml_print("DML PARAMS: vinit_c = %3.4f\n", scale_ratio_depth->vinit_c); |
|---|
| 221 | + dml_print("DML PARAMS: vinit_bot = %3.4f\n", scale_ratio_depth->vinit_bot); |
|---|
| 222 | + dml_print("DML PARAMS: vinit_bot_c = %3.4f\n", scale_ratio_depth->vinit_bot_c); |
|---|
| 223 | + dml_print("DML PARAMS: lb_depth = %d\n", scale_ratio_depth->lb_depth); |
|---|
| 224 | + dml_print("DML PARAMS: scl_enable = %d\n", scale_ratio_depth->scl_enable); |
|---|
| 225 | + dml_print("DML PARAMS: htaps = %d\n", scale_taps->htaps); |
|---|
| 226 | + dml_print("DML PARAMS: vtaps = %d\n", scale_taps->vtaps); |
|---|
| 227 | + dml_print("DML PARAMS: htaps_c = %d\n", scale_taps->htaps_c); |
|---|
| 228 | + dml_print("DML PARAMS: vtaps_c = %d\n", scale_taps->vtaps_c); |
|---|
| 229 | + dml_print("DML PARAMS: =====================================\n"); |
|---|
| 230 | + |
|---|
| 231 | + dml_print("DML PARAMS: PIPE [%d] DISPLAY OUTPUT PARAMS:\n", i); |
|---|
| 232 | + dml_print("DML PARAMS: output_type = %d\n", dout->output_type); |
|---|
| 233 | + dml_print("DML PARAMS: output_format = %d\n", dout->output_format); |
|---|
| 234 | + dml_print("DML PARAMS: output_bpc = %d\n", dout->output_bpc); |
|---|
| 235 | + dml_print("DML PARAMS: output_bpp = %3.4f\n", dout->output_bpp); |
|---|
| 236 | + dml_print("DML PARAMS: dp_lanes = %d\n", dout->dp_lanes); |
|---|
| 237 | + dml_print("DML PARAMS: dsc_enable = %d\n", dout->dsc_enable); |
|---|
| 238 | + dml_print("DML PARAMS: dsc_slices = %d\n", dout->dsc_slices); |
|---|
| 239 | + dml_print("DML PARAMS: wb_enable = %d\n", dout->wb_enable); |
|---|
| 240 | + dml_print("DML PARAMS: num_active_wb = %d\n", dout->num_active_wb); |
|---|
| 241 | + dml_print("DML PARAMS: =====================================\n"); |
|---|
| 242 | + |
|---|
| 243 | + dml_print("DML PARAMS: PIPE [%d] CLOCK CONFIG PARAMS:\n", i); |
|---|
| 244 | + dml_print("DML PARAMS: voltage = %d\n", clks_cfg->voltage); |
|---|
| 245 | + dml_print("DML PARAMS: dppclk_mhz = %3.2f\n", clks_cfg->dppclk_mhz); |
|---|
| 246 | + dml_print("DML PARAMS: refclk_mhz = %3.2f\n", clks_cfg->refclk_mhz); |
|---|
| 247 | + dml_print("DML PARAMS: dispclk_mhz = %3.2f\n", clks_cfg->dispclk_mhz); |
|---|
| 248 | + dml_print("DML PARAMS: dcfclk_mhz = %3.2f\n", clks_cfg->dcfclk_mhz); |
|---|
| 249 | + dml_print("DML PARAMS: socclk_mhz = %3.2f\n", clks_cfg->socclk_mhz); |
|---|
| 250 | + dml_print("DML PARAMS: =====================================\n"); |
|---|
| 62 | 251 | } |
|---|
| 63 | 252 | } |
|---|
| 64 | 253 | |
|---|
| 254 | +void dml_log_mode_support_params(struct display_mode_lib *mode_lib) |
|---|
| 255 | +{ |
|---|
| 256 | + int i; |
|---|
| 257 | + |
|---|
| 258 | + for (i = mode_lib->vba.soc.num_states; i >= 0; i--) { |
|---|
| 259 | + dml_print("DML SUPPORT: ===============================================\n"); |
|---|
| 260 | + dml_print("DML SUPPORT: Voltage State %d\n", i); |
|---|
| 261 | + dml_print("DML SUPPORT: Mode Supported : %s\n", mode_lib->vba.ModeSupport[i][0] ? "Supported" : "NOT Supported"); |
|---|
| 262 | + dml_print("DML SUPPORT: Mode Supported (pipe split) : %s\n", mode_lib->vba.ModeSupport[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 263 | + dml_print("DML SUPPORT: Scale Ratio And Taps : %s\n", mode_lib->vba.ScaleRatioAndTapsSupport ? "Supported" : "NOT Supported"); |
|---|
| 264 | + dml_print("DML SUPPORT: Source Format Pixel And Scan : %s\n", mode_lib->vba.SourceFormatPixelAndScanSupport ? "Supported" : "NOT Supported"); |
|---|
| 265 | + dml_print("DML SUPPORT: Viewport Size : [%s, %s]\n", mode_lib->vba.ViewportSizeSupport[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.ViewportSizeSupport[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 266 | + dml_print("DML SUPPORT: DIO Support : %s\n", mode_lib->vba.DIOSupport[i] ? "Supported" : "NOT Supported"); |
|---|
| 267 | + dml_print("DML SUPPORT: ODM Combine 4To1 Support Check : %s\n", mode_lib->vba.ODMCombine4To1SupportCheckOK[i] ? "Supported" : "NOT Supported"); |
|---|
| 268 | + dml_print("DML SUPPORT: DSC Units : %s\n", mode_lib->vba.NotEnoughDSCUnits[i] ? "Not Supported" : "Supported"); |
|---|
| 269 | + dml_print("DML SUPPORT: DSCCLK Required : %s\n", mode_lib->vba.DSCCLKRequiredMoreThanSupported[i] ? "Not Supported" : "Supported"); |
|---|
| 270 | + dml_print("DML SUPPORT: DTBCLK Required : %s\n", mode_lib->vba.DTBCLKRequiredMoreThanSupported[i] ? "Not Supported" : "Supported"); |
|---|
| 271 | + dml_print("DML SUPPORT: Re-ordering Buffer : [%s, %s]\n", mode_lib->vba.ROBSupport[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.ROBSupport[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 272 | + dml_print("DML SUPPORT: DISPCLK and DPPCLK : [%s, %s]\n", mode_lib->vba.DISPCLK_DPPCLK_Support[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.DISPCLK_DPPCLK_Support[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 273 | + dml_print("DML SUPPORT: Total Available Pipes : [%s, %s]\n", mode_lib->vba.TotalAvailablePipesSupport[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.TotalAvailablePipesSupport[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 274 | + dml_print("DML SUPPORT: Writeback Latency : %s\n", mode_lib->vba.WritebackLatencySupport ? "Supported" : "NOT Supported"); |
|---|
| 275 | + dml_print("DML SUPPORT: Writeback Scale Ratio And Taps : %s\n", mode_lib->vba.WritebackScaleRatioAndTapsSupport ? "Supported" : "NOT Supported"); |
|---|
| 276 | + dml_print("DML SUPPORT: Cursor : %s\n", mode_lib->vba.CursorSupport ? "Supported" : "NOT Supported"); |
|---|
| 277 | + dml_print("DML SUPPORT: Pitch : %s\n", mode_lib->vba.PitchSupport ? "Supported" : "NOT Supported"); |
|---|
| 278 | + dml_print("DML SUPPORT: Prefetch : [%s, %s]\n", mode_lib->vba.PrefetchSupported[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.PrefetchSupported[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 279 | + dml_print("DML SUPPORT: Dynamic Metadata : [%s, %s]\n", mode_lib->vba.DynamicMetadataSupported[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.DynamicMetadataSupported[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 280 | + dml_print("DML SUPPORT: Total Vertical Active Bandwidth : [%s, %s]\n", mode_lib->vba.TotalVerticalActiveBandwidthSupport[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.TotalVerticalActiveBandwidthSupport[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 281 | + dml_print("DML SUPPORT: VRatio In Prefetch : [%s, %s]\n", mode_lib->vba.VRatioInPrefetchSupported[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.VRatioInPrefetchSupported[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 282 | + dml_print("DML SUPPORT: PTE Buffer Size Not Exceeded : [%s, %s]\n", mode_lib->vba.PTEBufferSizeNotExceeded[i][0] ? "Supported" : "NOT Supported", mode_lib->vba.PTEBufferSizeNotExceeded[i][1] ? "Supported" : "NOT Supported"); |
|---|
| 283 | + dml_print("DML SUPPORT: DSC Input BPC : %s\n", mode_lib->vba.NonsupportedDSCInputBPC ? "Not Supported" : "Supported"); |
|---|
| 284 | + dml_print("DML SUPPORT: HostVMEnable : %d\n", mode_lib->vba.HostVMEnable); |
|---|
| 285 | + dml_print("DML SUPPORT: ImmediateFlipSupportedForState : [%d, %d]\n", mode_lib->vba.ImmediateFlipSupportedForState[i][0], mode_lib->vba.ImmediateFlipSupportedForState[i][1]); |
|---|
| 286 | + } |
|---|
| 287 | +} |
|---|
| 288 | +#endif |
|---|