Lines Matching refs:k

42 	int k;  in scaler_settings_calculation()  local
43 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in scaler_settings_calculation()
45 if (v->source_scan[k] == dcn_bw_hor) { in scaler_settings_calculation()
46 v->h_ratio[k] = v->viewport_width[k] / v->scaler_rec_out_width[k]; in scaler_settings_calculation()
47 v->v_ratio[k] = v->viewport_height[k] / v->scaler_recout_height[k]; in scaler_settings_calculation()
50 v->h_ratio[k] = v->viewport_height[k] / v->scaler_rec_out_width[k]; in scaler_settings_calculation()
51 v->v_ratio[k] = v->viewport_width[k] / v->scaler_recout_height[k]; in scaler_settings_calculation()
55 if (v->source_scan[k] == dcn_bw_hor) { in scaler_settings_calculation()
56 …v->h_ratio[k] =dcn_bw_max2(v->viewport_width[k] / v->scaler_rec_out_width[k], v->viewport_height[k in scaler_settings_calculation()
59 …v->h_ratio[k] =dcn_bw_max2(v->viewport_height[k] / v->scaler_rec_out_width[k], v->viewport_width[k in scaler_settings_calculation()
61 v->v_ratio[k] = v->h_ratio[k]; in scaler_settings_calculation()
63 if (v->interlace_output[k] == 1.0) { in scaler_settings_calculation()
64 v->v_ratio[k] = 2.0 * v->v_ratio[k]; in scaler_settings_calculation()
66 if (v->underscan_output[k] == 1.0) { in scaler_settings_calculation()
67 v->h_ratio[k] = v->h_ratio[k] * v->under_scan_factor; in scaler_settings_calculation()
68 v->v_ratio[k] = v->v_ratio[k] * v->under_scan_factor; in scaler_settings_calculation()
73 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in scaler_settings_calculation()
74 if (v->h_ratio[k] > 1.0) { in scaler_settings_calculation()
75 …v->acceptable_quality_hta_ps =dcn_bw_min2(v->max_hscl_taps, 2.0 *dcn_bw_ceil2(v->h_ratio[k], 1.0)); in scaler_settings_calculation()
77 else if (v->h_ratio[k] < 1.0) { in scaler_settings_calculation()
84 v->htaps[k] = v->override_hta_ps[k]; in scaler_settings_calculation()
87 v->htaps[k] = v->acceptable_quality_hta_ps; in scaler_settings_calculation()
89 if (v->v_ratio[k] > 1.0) { in scaler_settings_calculation()
90 …v->acceptable_quality_vta_ps =dcn_bw_min2(v->max_vscl_taps, 2.0 *dcn_bw_ceil2(v->v_ratio[k], 1.0)); in scaler_settings_calculation()
92 else if (v->v_ratio[k] < 1.0) { in scaler_settings_calculation()
99 v->vtaps[k] = v->override_vta_ps[k]; in scaler_settings_calculation()
102 v->vtaps[k] = v->acceptable_quality_vta_ps; in scaler_settings_calculation()
104 …f (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_3… in scaler_settings_calculation()
105 v->vta_pschroma[k] = 0.0; in scaler_settings_calculation()
106 v->hta_pschroma[k] = 0.0; in scaler_settings_calculation()
110 v->vta_pschroma[k] = v->override_vta_pschroma[k]; in scaler_settings_calculation()
111 v->hta_pschroma[k] = v->override_hta_pschroma[k]; in scaler_settings_calculation()
114 v->vta_pschroma[k] = v->acceptable_quality_vta_ps; in scaler_settings_calculation()
115 v->hta_pschroma[k] = v->acceptable_quality_hta_ps; in scaler_settings_calculation()
125 int k; in mode_support_and_system_configuration() local
131 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
132k] > v->max_hscl_ratio || v->v_ratio[k] > v->max_vscl_ratio || v->h_ratio[k] > v->htaps[k] || v->v… in mode_support_and_system_configuration()
139 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
140k] == dcn_bw_sw_linear && v->source_scan[k] != dcn_bw_hor) || ((v->source_surface_mode[k] == dcn_b… in mode_support_and_system_configuration()
146 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
147 if (v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
148 v->swath_width_ysingle_dpp[k] = v->viewport_width[k]; in mode_support_and_system_configuration()
151 v->swath_width_ysingle_dpp[k] = v->viewport_height[k]; in mode_support_and_system_configuration()
153 if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) { in mode_support_and_system_configuration()
154 v->byte_per_pixel_in_dety[k] = 8.0; in mode_support_and_system_configuration()
155 v->byte_per_pixel_in_detc[k] = 0.0; in mode_support_and_system_configuration()
157 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) { in mode_support_and_system_configuration()
158 v->byte_per_pixel_in_dety[k] = 4.0; in mode_support_and_system_configuration()
159 v->byte_per_pixel_in_detc[k] = 0.0; in mode_support_and_system_configuration()
161 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) { in mode_support_and_system_configuration()
162 v->byte_per_pixel_in_dety[k] = 2.0; in mode_support_and_system_configuration()
163 v->byte_per_pixel_in_detc[k] = 0.0; in mode_support_and_system_configuration()
165 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) { in mode_support_and_system_configuration()
166 v->byte_per_pixel_in_dety[k] = 1.0; in mode_support_and_system_configuration()
167 v->byte_per_pixel_in_detc[k] = 2.0; in mode_support_and_system_configuration()
170 v->byte_per_pixel_in_dety[k] = 4.0f / 3.0f; in mode_support_and_system_configuration()
171 v->byte_per_pixel_in_detc[k] = 8.0f / 3.0f; in mode_support_and_system_configuration()
175 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
176k] = v->swath_width_ysingle_dpp[k] * (dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) * v->v_ratio… in mode_support_and_system_configuration()
177 if (v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
178 v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 256); in mode_support_and_system_configuration()
180k] != dcn_bw_hor && (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] ==… in mode_support_and_system_configuration()
181 v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 64); in mode_support_and_system_configuration()
183k] == dcn_bw_hor && (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] =… in mode_support_and_system_configuration()
184 v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 256); in mode_support_and_system_configuration()
187 v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 512); in mode_support_and_system_configuration()
189 …yte_per_second = v->total_read_bandwidth_consumed_gbyte_per_second + v->read_bandwidth[k] / 1000.0; in mode_support_and_system_configuration()
192 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
193 if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444) { in mode_support_and_system_configuration()
194 v->write_bandwidth[k] = v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0; in mode_support_and_system_configuration()
196 else if (v->output[k] == dcn_bw_writeback) { in mode_support_and_system_configuration()
197 v->write_bandwidth[k] = v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 1.5; in mode_support_and_system_configuration()
200 v->write_bandwidth[k] = 0.0; in mode_support_and_system_configuration()
202 …e_per_second = v->total_write_bandwidth_consumed_gbyte_per_second + v->write_bandwidth[k] / 1000.0; in mode_support_and_system_configuration()
206 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
207 if (v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
241 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
242 …if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444 && v->scaler_rec_out_wid… in mode_support_and_system_configuration()
245 …else if (v->output[k] == dcn_bw_writeback && v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel… in mode_support_and_system_configuration()
262 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
263 if (v->output[k] == dcn_bw_dp && v->dsc_capability == dcn_bw_yes) { in mode_support_and_system_configuration()
264 if (v->output_format[k] == dcn_bw_420) { in mode_support_and_system_configuration()
265 v->required_output_bw = v->pixel_clock[k] / 2.0; in mode_support_and_system_configuration()
268 v->required_output_bw = v->pixel_clock[k]; in mode_support_and_system_configuration()
271 else if (v->output_format[k] == dcn_bw_420) { in mode_support_and_system_configuration()
272 v->required_output_bw = v->pixel_clock[k] * 3.0 / 2.0; in mode_support_and_system_configuration()
275 v->required_output_bw = v->pixel_clock[k] * 3.0; in mode_support_and_system_configuration()
277 if (v->output[k] == dcn_bw_hdmi) { in mode_support_and_system_configuration()
278 v->required_phyclk[k] = v->required_output_bw; in mode_support_and_system_configuration()
279 switch (v->output_deep_color[k]) { in mode_support_and_system_configuration()
281 v->required_phyclk[k] = v->required_phyclk[k] * 5.0 / 4; in mode_support_and_system_configuration()
284 v->required_phyclk[k] = v->required_phyclk[k] * 3.0 / 2; in mode_support_and_system_configuration()
289 v->required_phyclk[k] = v->required_phyclk[k] / 3.0; in mode_support_and_system_configuration()
291 else if (v->output[k] == dcn_bw_dp) { in mode_support_and_system_configuration()
292 v->required_phyclk[k] = v->required_output_bw / 4.0; in mode_support_and_system_configuration()
295 v->required_phyclk[k] = 0.0; in mode_support_and_system_configuration()
300 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
301 …if (v->required_phyclk[k] > v->phyclk_per_state[i] || (v->output[k] == dcn_bw_hdmi && v->required_… in mode_support_and_system_configuration()
309 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
310 if (v->output[k] == dcn_bw_writeback) { in mode_support_and_system_configuration()
322 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
323 if (v->h_ratio[k] > 1.0) { in mode_support_and_system_configuration()
324 …v->pscl_factor[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_… in mode_support_and_system_configuration()
327 v->pscl_factor[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput); in mode_support_and_system_configuration()
329 if (v->byte_per_pixel_in_detc[k] == 0.0) { in mode_support_and_system_configuration()
330 v->pscl_factor_chroma[k] = 0.0; in mode_support_and_system_configuration()
331 …gle_dpp[k] = v->pixel_clock[k] *dcn_bw_max3(v->vtaps[k] / 6.0 *dcn_bw_min2(1.0, v->h_ratio[k]), v-… in mode_support_and_system_configuration()
334 if (v->h_ratio[k] / 2.0 > 1.0) { in mode_support_and_system_configuration()
335 …ctor_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_rat… in mode_support_and_system_configuration()
338 …v->pscl_factor_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput); in mode_support_and_system_configuration()
340k] = v->pixel_clock[k] *dcn_bw_max5(v->vtaps[k] / 6.0 *dcn_bw_min2(1.0, v->h_ratio[k]), v->h_ratio… in mode_support_and_system_configuration()
343 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
344 … ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_3… in mode_support_and_system_configuration()
345 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
346 v->read256_block_height_y[k] = 1.0; in mode_support_and_system_configuration()
348 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) { in mode_support_and_system_configuration()
349 v->read256_block_height_y[k] = 4.0; in mode_support_and_system_configuration()
352 v->read256_block_height_y[k] = 8.0; in mode_support_and_system_configuration()
354 …v->read256_block_width_y[k] = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->read256_… in mode_support_and_system_configuration()
355 v->read256_block_height_c[k] = 0.0; in mode_support_and_system_configuration()
356 v->read256_block_width_c[k] = 0.0; in mode_support_and_system_configuration()
359 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
360 v->read256_block_height_y[k] = 1.0; in mode_support_and_system_configuration()
361 v->read256_block_height_c[k] = 1.0; in mode_support_and_system_configuration()
363 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) { in mode_support_and_system_configuration()
364 v->read256_block_height_y[k] = 16.0; in mode_support_and_system_configuration()
365 v->read256_block_height_c[k] = 8.0; in mode_support_and_system_configuration()
368 v->read256_block_height_y[k] = 8.0; in mode_support_and_system_configuration()
369 v->read256_block_height_c[k] = 8.0; in mode_support_and_system_configuration()
371 …v->read256_block_width_y[k] = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->read256_… in mode_support_and_system_configuration()
372 …v->read256_block_width_c[k] = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->read256_… in mode_support_and_system_configuration()
374 if (v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
375 v->max_swath_height_y[k] = v->read256_block_height_y[k]; in mode_support_and_system_configuration()
376 v->max_swath_height_c[k] = v->read256_block_height_c[k]; in mode_support_and_system_configuration()
379 v->max_swath_height_y[k] = v->read256_block_width_y[k]; in mode_support_and_system_configuration()
380 v->max_swath_height_c[k] = v->read256_block_width_c[k]; in mode_support_and_system_configuration()
382 … ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_3… in mode_support_and_system_configuration()
383k] == dcn_bw_sw_linear || (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 && (v->source_surface_mo… in mode_support_and_system_configuration()
384 v->min_swath_height_y[k] = v->max_swath_height_y[k]; in mode_support_and_system_configuration()
387 v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0; in mode_support_and_system_configuration()
389 v->min_swath_height_c[k] = v->max_swath_height_c[k]; in mode_support_and_system_configuration()
392 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
393 v->min_swath_height_y[k] = v->max_swath_height_y[k]; in mode_support_and_system_configuration()
394 v->min_swath_height_c[k] = v->max_swath_height_c[k]; in mode_support_and_system_configuration()
396 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 && v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
397 v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0; in mode_support_and_system_configuration()
399 v->min_swath_height_c[k] = v->max_swath_height_c[k]; in mode_support_and_system_configuration()
402 v->min_swath_height_c[k] = v->max_swath_height_c[k] / 2.0; in mode_support_and_system_configuration()
405 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10 && v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
406 v->min_swath_height_c[k] = v->max_swath_height_c[k] / 2.0; in mode_support_and_system_configuration()
408 v->min_swath_height_y[k] = v->max_swath_height_y[k]; in mode_support_and_system_configuration()
411 v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0; in mode_support_and_system_configuration()
415 v->min_swath_height_y[k] = v->max_swath_height_y[k]; in mode_support_and_system_configuration()
416 v->min_swath_height_c[k] = v->max_swath_height_c[k]; in mode_support_and_system_configuration()
419 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
425k] /dcn_bw_min2(v->maximum_swath_width, v->det_buffer_size_in_kbyte * 1024.0 / 2.0 / (v->byte_per_… in mode_support_and_system_configuration()
426 if (v->byte_per_pixel_in_detc[k] == 0.0) { in mode_support_and_system_configuration()
427 …s[k] +dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k], 1.0) - 2, 0.0)) * v->swath_width_ysingle_dpp[k] /dcn… in mode_support_and_system_configuration()
430k] +dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k], 1.0) - 2, 0.0)) * v->swath_width_ysingle_dpp[k] /dcn_b… in mode_support_and_system_configuration()
432 …v->number_of_dpp_required_for_det_and_lb_size[k] =dcn_bw_max2(v->number_of_dpp_required_for_det_si… in mode_support_and_system_configuration()
439 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
440 …>min_dispclk_using_single_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] * … in mode_support_and_system_configuration()
442 …min_dispclk_using_dual_dpp =dcn_bw_max2(v->pixel_clock[k] / 2.0, v->min_dppclk_using_single_dpp[k]… in mode_support_and_system_configuration()
445 …v->min_dispclk_using_dual_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] / … in mode_support_and_system_configuration()
451 …spclk[i], (j + 1) * v->max_dppclk[i]) && v->number_of_dpp_required_for_det_and_lb_size[k] <= 1.0) { in mode_support_and_system_configuration()
452 v->no_of_dpp[i][j][k] = 1.0; in mode_support_and_system_configuration()
456 v->no_of_dpp[i][j][k] = 2.0; in mode_support_and_system_configuration()
460 v->no_of_dpp[i][j][k] = 2.0; in mode_support_and_system_configuration()
464 … v->total_number_of_active_dpp[i][j] = v->total_number_of_active_dpp[i][j] + v->no_of_dpp[i][j][k]; in mode_support_and_system_configuration()
470 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
471 …>min_dispclk_using_single_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] * … in mode_support_and_system_configuration()
472 …v->min_dispclk_using_dual_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] / … in mode_support_and_system_configuration()
477 if (v->number_of_dpp_required_for_det_and_lb_size[k] <= 1.0) { in mode_support_and_system_configuration()
478 v->no_of_dpp[i][j][k] = 1.0; in mode_support_and_system_configuration()
485 v->no_of_dpp[i][j][k] = 2.0; in mode_support_and_system_configuration()
491 … v->total_number_of_active_dpp[i][j] = v->total_number_of_active_dpp[i][j] + v->no_of_dpp[i][j][k]; in mode_support_and_system_configuration()
499 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
500 if (v->number_of_dpp_required_for_det_and_lb_size[k] > 2.0) { in mode_support_and_system_configuration()
518 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
521 v->swath_width_yper_state[i][j][k] = v->swath_width_ysingle_dpp[k] / v->no_of_dpp[i][j][k]; in mode_support_and_system_configuration()
522 …_granularity_y = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->max_swath_height_y[k]; in mode_support_and_system_configuration()
523 …state[i][j][k] - 1.0, v->swath_width_granularity_y) + v->swath_width_granularity_y) * v->byte_per_… in mode_support_and_system_configuration()
524 if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) { in mode_support_and_system_configuration()
527 if (v->max_swath_height_c[k] > 0.0) { in mode_support_and_system_configuration()
528 …_granularity_c = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->max_swath_height_c[k]; in mode_support_and_system_configuration()
529 …te[i][j][k] / 2.0 - 1.0, v->swath_width_granularity_c) + v->swath_width_granularity_c) * v->byte_p… in mode_support_and_system_configuration()
530 if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) { in mode_support_and_system_configuration()
535 v->swath_height_yper_state[i][j][k] = v->max_swath_height_y[k]; in mode_support_and_system_configuration()
536 v->swath_height_cper_state[i][j][k] = v->max_swath_height_c[k]; in mode_support_and_system_configuration()
539 v->swath_height_yper_state[i][j][k] = v->min_swath_height_y[k]; in mode_support_and_system_configuration()
540 v->swath_height_cper_state[i][j][k] = v->min_swath_height_c[k]; in mode_support_and_system_configuration()
542 if (v->byte_per_pixel_in_detc[k] == 0.0) { in mode_support_and_system_configuration()
543 …_buffer_size_in_kbyte * 1024.0 / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k]; in mode_support_and_system_configuration()
546 else if (v->swath_height_yper_state[i][j][k] <= v->swath_height_cper_state[i][j][k]) { in mode_support_and_system_configuration()
547 …r_size_in_kbyte * 1024.0 / 2.0 / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k]; in mode_support_and_system_configuration()
548 …size_in_kbyte * 1024.0 / 2.0 / v->byte_per_pixel_in_detc[k] / (v->swath_width_yper_state[i][j][k] … in mode_support_and_system_configuration()
551 …_in_kbyte * 1024.0 * 2.0 / 3.0 / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k]; in mode_support_and_system_configuration()
552 …size_in_kbyte * 1024.0 / 3.0 / v->byte_per_pixel_in_dety[k] / (v->swath_width_yper_state[i][j][k] … in mode_support_and_system_configuration()
554 …r_size / v->lb_bit_per_pixel[k] / (v->swath_width_yper_state[i][j][k] /dcn_bw_max2(v->h_ratio[k], … in mode_support_and_system_configuration()
555 …in_dety[k] * v->pscl_factor[k] / v->return_bw_per_state[i], v->effective_lb_latency_hiding_source_… in mode_support_and_system_configuration()
556 if (v->byte_per_pixel_in_detc[k] == 0.0) { in mode_support_and_system_configuration()
557k] = v->effective_detlb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effec… in mode_support_and_system_configuration()
560 …->lb_bit_per_pixel[k] / (v->swath_width_yper_state[i][j][k] / 2.0 / dcn_bw_max2(v->h_ratio[k] / 2.… in mode_support_and_system_configuration()
561 …tc[k] * v->pscl_factor_chroma[k] / v->return_bw_per_state[i], v->effective_lb_latency_hiding_sourc… in mode_support_and_system_configuration()
562k] = dcn_bw_min2(v->effective_detlb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k in mode_support_and_system_configuration()
570 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
571 if (v->urgent_latency_support_us_per_state[i][j][k] < v->urgent_latency / 1.0) { in mode_support_and_system_configuration()
582 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
583 if (v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
584 …l_number_of_dcc_active_dpp[i][j] = v->total_number_of_dcc_active_dpp[i][j] + v->no_of_dpp[i][j][k]; in mode_support_and_system_configuration()
592 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
593 …v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, v->pixel_clock[k] / 16… in mode_support_and_system_configuration()
594 if (v->byte_per_pixel_in_detc[k] == 0.0) { in mode_support_and_system_configuration()
595 if (v->v_ratio[k] <= 1.0) { in mode_support_and_system_configuration()
596 …dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 64.0 * v->h_ratio[k] * v->pixel_clock[k] / v->no… in mode_support_and_system_configuration()
599 …lk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 64.0 * v->pscl_factor[k] * v… in mode_support_and_system_configuration()
603 if (v->v_ratio[k] <= 1.0) { in mode_support_and_system_configuration()
604 …dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 32.0 * v->h_ratio[k] * v->pixel_clock[k] / v->no… in mode_support_and_system_configuration()
607 …lk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 32.0 * v->pscl_factor[k] * v… in mode_support_and_system_configuration()
609 if (v->v_ratio[k] / 2.0 <= 1.0) { in mode_support_and_system_configuration()
610 …_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 32.0 * v->h_ratio[k] / 2.0 * v->pixel_clock[k] / v-… in mode_support_and_system_configuration()
613 …deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 32.0 * v->pscl_factor_chroma[k]… in mode_support_and_system_configuration()
617 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
618 if (v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
619 v->meta_req_height_y = 8.0 * v->read256_block_height_y[k]; in mode_support_and_system_configuration()
620 …v->meta_req_width_y = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->meta_req_… in mode_support_and_system_configuration()
621 …v->meta_surface_width_y =dcn_bw_ceil2(v->viewport_width[k] / v->no_of_dpp[i][j][k] - 1.0, v->meta_… in mode_support_and_system_configuration()
622 …v->meta_surface_height_y =dcn_bw_ceil2(v->viewport_height[k] - 1.0, v->meta_req_height_y) + v->met… in mode_support_and_system_configuration()
624 …_width_y * v->meta_surface_height_y *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 256.0 - 409… in mode_support_and_system_configuration()
629 if (v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
630 …ta_surface_width_y * v->meta_req_height_y *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 256.0; in mode_support_and_system_configuration()
633 …ta_surface_height_y * v->meta_req_width_y *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 256.0; in mode_support_and_system_configuration()
641 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
645 …[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mo… in mode_support_and_system_configuration()
647 v->macro_tile_block_height_y = 4.0 * v->read256_block_height_y[k]; in mode_support_and_system_configuration()
649k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_m… in mode_support_and_system_configuration()
651 v->macro_tile_block_height_y = 16.0 * v->read256_block_height_y[k]; in mode_support_and_system_configuration()
655 v->macro_tile_block_height_y = 32.0 * v->read256_block_height_y[k]; in mode_support_and_system_configuration()
661 v->data_pte_req_height_y = 16.0 * v->read256_block_height_y[k]; in mode_support_and_system_configuration()
663 …v->data_pte_req_width_y = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->data_pte_re… in mode_support_and_system_configuration()
664 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
665k] / v->no_of_dpp[i][j][k] *dcn_bw_min2(128.0, dcn_bw_pow(2.0,dcn_bw_floor2(dcn_bw_log(v->pte_buff… in mode_support_and_system_configuration()
667 else if (v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
668 …v->dpte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] - 1.0… in mode_support_and_system_configuration()
671 …v->dpte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] - 1.0) / v->data_pte_req_hei… in mode_support_and_system_configuration()
677 … ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_3… in mode_support_and_system_configuration()
678 if (v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
679 v->meta_req_height_c = 8.0 * v->read256_block_height_c[k]; in mode_support_and_system_configuration()
680 …v->meta_req_width_c = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->meta_req_… in mode_support_and_system_configuration()
681 …v->meta_surface_width_c =dcn_bw_ceil2(v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0 - 1.0, v-… in mode_support_and_system_configuration()
682 …v->meta_surface_height_c =dcn_bw_ceil2(v->viewport_height[k] / 2.0 - 1.0, v->meta_req_height_c) + … in mode_support_and_system_configuration()
684 …_width_c * v->meta_surface_height_c *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 256.0 - 409… in mode_support_and_system_configuration()
689 if (v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
690 …ta_surface_width_c * v->meta_req_height_c *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 256.0; in mode_support_and_system_configuration()
693 …ta_surface_height_c * v->meta_req_width_c *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 256.0; in mode_support_and_system_configuration()
701 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
705 …[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mo… in mode_support_and_system_configuration()
707 v->macro_tile_block_height_c = 4.0 * v->read256_block_height_c[k]; in mode_support_and_system_configuration()
709k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_m… in mode_support_and_system_configuration()
711 v->macro_tile_block_height_c = 16.0 * v->read256_block_height_c[k]; in mode_support_and_system_configuration()
715 v->macro_tile_block_height_c = 32.0 * v->read256_block_height_c[k]; in mode_support_and_system_configuration()
717 … = v->macro_tile_block_size_bytes_c /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->macro_ti… in mode_support_and_system_configuration()
722 v->data_pte_req_height_c = 16.0 * v->read256_block_height_c[k]; in mode_support_and_system_configuration()
724 …v->data_pte_req_width_c = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->data_pte_re… in mode_support_and_system_configuration()
725 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in mode_support_and_system_configuration()
726k] / v->no_of_dpp[i][j][k] / 2.0 * dcn_bw_min2(128.0, dcn_bw_pow(2.0,dcn_bw_floor2(dcn_bw_log(v->p… in mode_support_and_system_configuration()
728 else if (v->source_scan[k] == dcn_bw_hor) { in mode_support_and_system_configuration()
729 …v->dpte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0… in mode_support_and_system_configuration()
732 …v->dpte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] / 2.0 - 1.0) / v->data_pte_r… in mode_support_and_system_configuration()
744 v->dpte_bytes_per_row[k] = v->dpte_bytes_per_row_y + v->dpte_bytes_per_row_c; in mode_support_and_system_configuration()
745 v->meta_pte_bytes_per_frame[k] = v->meta_pte_bytes_per_frame_y + v->meta_pte_bytes_per_frame_c; in mode_support_and_system_configuration()
746 v->meta_row_bytes[k] = v->meta_row_bytes_y + v->meta_row_bytes_c; in mode_support_and_system_configuration()
747 …v->v_init_y = (v->v_ratio[k] + v->vtaps[k] + 1.0 + v->interlace_output[k] * 0.5 * v->v_ratio[k]) /… in mode_support_and_system_configuration()
748 v->prefill_y[k] =dcn_bw_floor2(v->v_init_y, 1.0); in mode_support_and_system_configuration()
749 …v->max_num_sw_y[k] =dcn_bw_ceil2((v->prefill_y[k] - 1.0) / v->swath_height_yper_state[i][j][k], 1.… in mode_support_and_system_configuration()
750 if (v->prefill_y[k] > 1.0) { in mode_support_and_system_configuration()
751 v->max_partial_sw_y =dcn_bw_mod((v->prefill_y[k] - 2.0), v->swath_height_yper_state[i][j][k]); in mode_support_and_system_configuration()
754 …ial_sw_y =dcn_bw_mod((v->prefill_y[k] + v->swath_height_yper_state[i][j][k] - 2.0), v->swath_heigh… in mode_support_and_system_configuration()
757 …v->prefetch_lines_y[k] = v->max_num_sw_y[k] * v->swath_height_yper_state[i][j][k] + v->max_partial… in mode_support_and_system_configuration()
758 … ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_3… in mode_support_and_system_configuration()
759 …v->v_init_c = (v->v_ratio[k] / 2.0 + v->vtaps[k] + 1.0 + v->interlace_output[k] * 0.5 * v->v_ratio… in mode_support_and_system_configuration()
760 v->prefill_c[k] =dcn_bw_floor2(v->v_init_c, 1.0); in mode_support_and_system_configuration()
761 …v->max_num_sw_c[k] =dcn_bw_ceil2((v->prefill_c[k] - 1.0) / v->swath_height_cper_state[i][j][k], 1.… in mode_support_and_system_configuration()
762 if (v->prefill_c[k] > 1.0) { in mode_support_and_system_configuration()
763 v->max_partial_sw_c =dcn_bw_mod((v->prefill_c[k] - 2.0), v->swath_height_cper_state[i][j][k]); in mode_support_and_system_configuration()
766 …ial_sw_c =dcn_bw_mod((v->prefill_c[k] + v->swath_height_cper_state[i][j][k] - 2.0), v->swath_heigh… in mode_support_and_system_configuration()
769 …v->prefetch_lines_c[k] = v->max_num_sw_c[k] * v->swath_height_cper_state[i][j][k] + v->max_partial… in mode_support_and_system_configuration()
772 v->prefetch_lines_c[k] = 0.0; in mode_support_and_system_configuration()
774 …st_x_after_scaler = 90.0 * v->pixel_clock[k] / (v->required_dispclk[i][j] / (j + 1)) + 42.0 * v->p… in mode_support_and_system_configuration()
775 if (v->no_of_dpp[i][j][k] > 1.0) { in mode_support_and_system_configuration()
776 v->dst_x_after_scaler = v->dst_x_after_scaler + v->scaler_rec_out_width[k] / 2.0; in mode_support_and_system_configuration()
778 if (v->output_format[k] == dcn_bw_420) { in mode_support_and_system_configuration()
785 v->v_update_offset[k][j] = dcn_bw_ceil2(v->htotal[k] / 4.0, 1.0); in mode_support_and_system_configuration()
787 …_width[k][j] = (14.0 / v->projected_dcfclk_deep_sleep + 12.0 / (v->required_dispclk[i][j] / (j + 1… in mode_support_and_system_configuration()
788k][j] = dcn_bw_max2(150.0 / (v->required_dispclk[i][j] / (j + 1)), v->total_repeater_delay + 20.0 … in mode_support_and_system_configuration()
789 …v->time_setup = (v->v_update_offset[k][j] + v->v_update_width[k][j] + v->v_ready_offset[k][j]) / v… in mode_support_and_system_configuration()
795 v->maximum_vstartup = v->vtotal[k] - v->vactive[k] - 1.0; in mode_support_and_system_configuration()
798 v->maximum_vstartup = v->v_sync_plus_back_porch[k] - 1.0; in mode_support_and_system_configuration()
802k] = v->maximum_vstartup - v->urgent_latency / (v->htotal[k] / v->pixel_clock[k]) - (v->time_calc … in mode_support_and_system_configuration()
803 …v->line_times_for_prefetch[k] =dcn_bw_floor2(4.0 * (v->line_times_for_prefetch[k] + 0.125), 1.0) /… in mode_support_and_system_configuration()
804k] = (v->meta_pte_bytes_per_frame[k] + 2.0 * v->meta_row_bytes[k] + 2.0 * v->dpte_bytes_per_row[k]… in mode_support_and_system_configuration()
806 if (v->pte_enable == dcn_bw_yes && v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
808 v->meta_pte_bytes_frame[k] / v->prefetch_bw[k], in mode_support_and_system_configuration()
810 v->htotal[k] / v->pixel_clock[k] / 4.0); in mode_support_and_system_configuration()
812 v->time_for_meta_pte_without_immediate_flip = v->htotal[k] / v->pixel_clock[k] / 4.0; in mode_support_and_system_configuration()
815 if (v->pte_enable == dcn_bw_yes || v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
817 v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) / v->prefetch_bw[k], in mode_support_and_system_configuration()
818 v->htotal[k] / v->pixel_clock[k] - v->time_for_meta_pte_without_immediate_flip, in mode_support_and_system_configuration()
822 v->htotal[k] / v->pixel_clock[k] - v->time_for_meta_pte_without_immediate_flip, in mode_support_and_system_configuration()
826 …e_without_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_pte_without_immediate_flip / (v… in mode_support_and_system_configuration()
827 …hout_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_and_dpte_row_without_immediate_flip … in mode_support_and_system_configuration()
830 …lines_for_meta_pte_without_immediate_flip[k] < 32.0 && v->lines_for_meta_and_dpte_row_without_imme… in mode_support_and_system_configuration()
836 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
837 …te_flip = v->bw_available_for_immediate_flip -dcn_bw_max2(v->read_bandwidth[k], v->prefetch_bw[k]); in mode_support_and_system_configuration()
839 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
840 v->total_immediate_flip_bytes[k] = 0.0; in mode_support_and_system_configuration()
841 …if ((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv42… in mode_support_and_system_configuration()
842 …diate_flip_bytes[k] = v->total_immediate_flip_bytes[k] + v->meta_pte_bytes_per_frame[k] + v->meta_… in mode_support_and_system_configuration()
845 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
846 if (v->pte_enable == dcn_bw_yes && v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
847k] / v->prefetch_bw[k], v->meta_pte_bytes_per_frame[k] * v->total_immediate_flip_bytes[k] / (v->bw… in mode_support_and_system_configuration()
850 v->time_for_meta_pte_with_immediate_flip = v->htotal[k] / v->pixel_clock[k] / 4.0; in mode_support_and_system_configuration()
852 if (v->pte_enable == dcn_bw_yes || v->dcc_enable[k] == dcn_bw_yes) { in mode_support_and_system_configuration()
853k] + v->dpte_bytes_per_row[k]) / v->prefetch_bw[k], (v->meta_row_bytes[k] + v->dpte_bytes_per_row[ in mode_support_and_system_configuration()
856 …v->time_for_meta_and_dpte_row_with_immediate_flip =dcn_bw_max2(v->htotal[k] / v->pixel_clock[k] - … in mode_support_and_system_configuration()
858 …a_pte_with_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_pte_with_immediate_flip / (v->… in mode_support_and_system_configuration()
859 …w_with_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_and_dpte_row_with_immediate_flip /… in mode_support_and_system_configuration()
860 …line_times_for_prefetch[k] - v->lines_for_meta_pte_with_immediate_flip[k] - v->lines_for_meta_and_… in mode_support_and_system_configuration()
861 …e_times_for_prefetch[k] - v->lines_for_meta_pte_without_immediate_flip[k] - v->lines_for_meta_and_… in mode_support_and_system_configuration()
863 …v->v_ratio_pre_ywith_immediate_flip[i][j][k] = v->prefetch_lines_y[k] / v->line_times_to_request_p… in mode_support_and_system_configuration()
864 if ((v->swath_height_yper_state[i][j][k] > 4.0)) { in mode_support_and_system_configuration()
865 …if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_y[k] - 3.0) / 2… in mode_support_and_system_configuration()
866k] =dcn_bw_max2(v->v_ratio_pre_ywith_immediate_flip[i][j][k], (v->max_num_sw_y[k] * v->swath_heigh… in mode_support_and_system_configuration()
869 v->v_ratio_pre_ywith_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
872 …v->v_ratio_pre_cwith_immediate_flip[i][j][k] = v->prefetch_lines_c[k] / v->line_times_to_request_p… in mode_support_and_system_configuration()
873 if ((v->swath_height_cper_state[i][j][k] > 4.0)) { in mode_support_and_system_configuration()
874 …if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_c[k] - 3.0) / 2… in mode_support_and_system_configuration()
875k] =dcn_bw_max2(v->v_ratio_pre_cwith_immediate_flip[i][j][k], (v->max_num_sw_c[k] * v->swath_heigh… in mode_support_and_system_configuration()
878 v->v_ratio_pre_cwith_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
881k] = v->no_of_dpp[i][j][k] * (v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_dat… in mode_support_and_system_configuration()
884 v->v_ratio_pre_ywith_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
885 v->v_ratio_pre_cwith_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
886 v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
889 …v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = v->prefetch_lines_y[k] / v->line_times_to_reques… in mode_support_and_system_configuration()
890 if ((v->swath_height_yper_state[i][j][k] > 4.0)) { in mode_support_and_system_configuration()
891 …if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_y[k] - 3.0) … in mode_support_and_system_configuration()
892k] =dcn_bw_max2(v->v_ratio_pre_ywithout_immediate_flip[i][j][k], (v->max_num_sw_y[k] * v->swath_he… in mode_support_and_system_configuration()
895 v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
898 …v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = v->prefetch_lines_c[k] / v->line_times_to_reques… in mode_support_and_system_configuration()
899 if ((v->swath_height_cper_state[i][j][k] > 4.0)) { in mode_support_and_system_configuration()
900 …if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_c[k] - 3.0) … in mode_support_and_system_configuration()
901k] =dcn_bw_max2(v->v_ratio_pre_cwithout_immediate_flip[i][j][k], (v->max_num_sw_c[k] * v->swath_he… in mode_support_and_system_configuration()
904 v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
907k] = v->no_of_dpp[i][j][k] * (v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_dat… in mode_support_and_system_configuration()
910 v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
911 v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
912 v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k] = 999999.0; in mode_support_and_system_configuration()
916 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
917 …if ((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv42… in mode_support_and_system_configuration()
918k], v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k]) +dcn_bw_max2(v->meta_pte_byte… in mode_support_and_system_configuration()
921 …diate_flip +dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_without_immediate… in mode_support_and_system_configuration()
925 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
926 …diate_flip +dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_without_immediate… in mode_support_and_system_configuration()
932 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
933 …mes_for_prefetch[k] < 2.0 || v->lines_for_meta_pte_with_immediate_flip[k] >= 8.0 || v->lines_for_m… in mode_support_and_system_configuration()
941 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
942 …_for_prefetch[k] < 2.0 || v->lines_for_meta_pte_without_immediate_flip[k] >= 8.0 || v->lines_for_m… in mode_support_and_system_configuration()
951 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
952k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10) && (v->v_ratio_pre… in mode_support_and_system_configuration()
957 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
958 …((v->v_ratio_pre_ywithout_immediate_flip[i][j][k] > 4.0 || v->v_ratio_pre_cwithout_immediate_flip[… in mode_support_and_system_configuration()
1010 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in mode_support_and_system_configuration()
1011 v->dpp_per_plane_per_ratio[j][k] = v->no_of_dpp[v->voltage_level][j][k]; in mode_support_and_system_configuration()
1020 int k; in display_pipe_configuration() local
1025 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in display_pipe_configuration()
1026 …e_dpp_per_ratio[j] = v->total_number_of_active_dpp_per_ratio[j] + v->dpp_per_plane_per_ratio[j][k]; in display_pipe_configuration()
1037 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in display_pipe_configuration()
1038 v->dpp_per_plane[k] = v->dpp_per_plane_per_ratio[v->dispclk_dppclk_ratio - 1][k]; in display_pipe_configuration()
1040 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in display_pipe_configuration()
1041 if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) { in display_pipe_configuration()
1045 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) { in display_pipe_configuration()
1049 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) { in display_pipe_configuration()
1053 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) { in display_pipe_configuration()
1061 … ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_3… in display_pipe_configuration()
1062 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in display_pipe_configuration()
1065 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) { in display_pipe_configuration()
1076 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in display_pipe_configuration()
1080 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) { in display_pipe_configuration()
1091 if (v->source_scan[k] == dcn_bw_hor) { in display_pipe_configuration()
1099 … ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_3… in display_pipe_configuration()
1100k] == dcn_bw_sw_linear || (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 && (v->source_surface_mo… in display_pipe_configuration()
1109 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in display_pipe_configuration()
1113 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 && v->source_scan[k] == dcn_bw_hor) { in display_pipe_configuration()
1122 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10 && v->source_scan[k] == dcn_bw_hor) { in display_pipe_configuration()
1136 if (v->source_scan[k] == dcn_bw_hor) { in display_pipe_configuration()
1137 v->swath_width = v->viewport_width[k] / v->dpp_per_plane[k]; in display_pipe_configuration()
1140 v->swath_width = v->viewport_height[k] / v->dpp_per_plane[k]; in display_pipe_configuration()
1144 if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) { in display_pipe_configuration()
1150 if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) { in display_pipe_configuration()
1155 v->swath_height_y[k] = v->maximum_swath_height_y; in display_pipe_configuration()
1156 v->swath_height_c[k] = v->maximum_swath_height_c; in display_pipe_configuration()
1159 v->swath_height_y[k] = v->minimum_swath_height_y; in display_pipe_configuration()
1160 v->swath_height_c[k] = v->minimum_swath_height_c; in display_pipe_configuration()
1162 if (v->swath_height_c[k] == 0.0) { in display_pipe_configuration()
1163 v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0; in display_pipe_configuration()
1164 v->det_buffer_size_c[k] = 0.0; in display_pipe_configuration()
1166 else if (v->swath_height_y[k] <= v->swath_height_c[k]) { in display_pipe_configuration()
1167 v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0 / 2.0; in display_pipe_configuration()
1168 v->det_buffer_size_c[k] = v->det_buffer_size_in_kbyte * 1024.0 / 2.0; in display_pipe_configuration()
1171 v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0 * 2.0 / 3.0; in display_pipe_configuration()
1172 v->det_buffer_size_c[k] = v->det_buffer_size_in_kbyte * 1024.0 / 3.0; in display_pipe_configuration()
1178 int k; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation() local
1183 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1184 if (v->h_ratio[k] > 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1185 …->pscl_throughput[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v-… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1188 v->pscl_throughput[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1190 … v->pixel_clock[k] *dcn_bw_max3(v->vtaps[k] / 6.0 *dcn_bw_min2(1.0, v->h_ratio[k]), v->h_ratio[k] … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1191 …if ((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv42… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1192 v->pscl_throughput_chroma[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1196 if (v->h_ratio[k] > 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1197 …hput_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_rat… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1200 …v->pscl_throughput_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_through… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1202 …ck[k] *dcn_bw_max3(v->vta_pschroma[k] / 6.0 *dcn_bw_min2(1.0, v->h_ratio[k] / 2.0), v->h_ratio[k] … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1206 …ppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k] / v->dpp… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1207 …ppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k] / v->dpp… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1210 …w_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[ in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1211 …w_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[ in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1228 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1229 if (v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1249 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1250 if (v->source_scan[k] == dcn_bw_hor) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1251 v->swath_width_y[k] = v->viewport_width[k] / v->dpp_per_plane[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1254 v->swath_width_y[k] = v->viewport_height[k] / v->dpp_per_plane[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1257 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1258 if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1259 v->byte_per_pixel_dety[k] = 8.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1260 v->byte_per_pixel_detc[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1262 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1263 v->byte_per_pixel_dety[k] = 4.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1264 v->byte_per_pixel_detc[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1266 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1267 v->byte_per_pixel_dety[k] = 2.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1268 v->byte_per_pixel_detc[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1270 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1271 v->byte_per_pixel_dety[k] = 1.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1272 v->byte_per_pixel_detc[k] = 2.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1275 v->byte_per_pixel_dety[k] = 4.0f / 3.0f; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1276 v->byte_per_pixel_detc[k] = 8.0f / 3.0f; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1280 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1281 …uma[k] = v->swath_width_y[k] * v->dpp_per_plane[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) /… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1282 …[k] = v->swath_width_y[k] / 2.0 * v->dpp_per_plane[k] *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1283 …v->total_data_read_bandwidth + v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1287 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1288 v->total_active_dpp = v->total_active_dpp + v->dpp_per_plane[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1289 if (v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1290 v->total_dcc_active_dpp = v->total_dcc_active_dpp + v->dpp_per_plane[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1295 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1296 if (v->v_ratio[k] <= 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1297 …isplay_pipe_line_delivery_time_luma[k] = v->swath_width_y[k] * v->dpp_per_plane[k] / v->h_ratio[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1300 …v->display_pipe_line_delivery_time_luma[k] = v->swath_width_y[k] / v->pscl_throughput[k] / v->dppc… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1302 …th_y[k] * v->swath_height_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / (v->return_bw * v->… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1303 …ra_watermark, v->data_fabric_line_delivery_time_luma - v->display_pipe_line_delivery_time_luma[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1304 if (v->byte_per_pixel_detc[k] == 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1305 v->display_pipe_line_delivery_time_chroma[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1308 if (v->v_ratio[k] / 2.0 <= 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1309 …pe_line_delivery_time_chroma[k] = v->swath_width_y[k] / 2.0 * v->dpp_per_plane[k] / (v->h_ratio[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1312 …v->display_pipe_line_delivery_time_chroma[k] = v->swath_width_y[k] / 2.0 / v->pscl_throughput_chro… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1314 …[k] / 2.0 * v->swath_height_c[k] *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / (v->return_bw * v… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1315 …atermark, v->data_fabric_line_delivery_time_chroma - v->display_pipe_line_delivery_time_chroma[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1328 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1329 if (v->output[k] == dcn_bw_writeback) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1341 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1342 v->lines_in_dety[k] = v->det_buffer_size_y[k] / v->byte_per_pixel_dety[k] / v->swath_width_y[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1343 …v->lines_in_dety_rounded_down_to_swath[k] =dcn_bw_floor2(v->lines_in_dety[k], v->swath_height_y[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1344 …>full_det_buffering_time_y[k] = v->lines_in_dety_rounded_down_to_swath[k] * (v->htotal[k] / v->pix… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1345 if (v->byte_per_pixel_detc[k] > 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1346 …v->lines_in_detc[k] = v->det_buffer_size_c[k] / v->byte_per_pixel_detc[k] / (v->swath_width_y[k] /… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1347 …v->lines_in_detc_rounded_down_to_swath[k] =dcn_bw_floor2(v->lines_in_detc[k], v->swath_height_c[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1348 …>full_det_buffering_time_c[k] = v->lines_in_detc_rounded_down_to_swath[k] * (v->htotal[k] / v->pix… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1351 v->lines_in_detc[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1352 v->lines_in_detc_rounded_down_to_swath[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1353 v->full_det_buffering_time_c[k] = 999999.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1357 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1358 if (v->full_det_buffering_time_y[k] < v->min_full_det_buffering_time) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1359 v->min_full_det_buffering_time = v->full_det_buffering_time_y[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1360 v->frame_time_for_min_full_det_buffering_time = v->vtotal[k] * v->htotal[k] / v->pixel_clock[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1362 if (v->full_det_buffering_time_c[k] < v->min_full_det_buffering_time) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1363 v->min_full_det_buffering_time = v->full_det_buffering_time_c[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1364 v->frame_time_for_min_full_det_buffering_time = v->vtotal[k] * v->htotal[k] / v->pixel_clock[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1368 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1369 if (v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1370 …cond + v->read_bandwidth_plane_luma[k] / v->dcc_rate[k] / 1000.0 + v->read_bandwidth_plane_chroma[ in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1373 …idth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0 + v->read_bandwidth_plane_chroma[ in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1375 if (v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1376 …_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0 / 256.0 + v->read_bandwidth_plane_chr… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1379 …_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0 / 512.0 + v->read_bandwidth_plane_chr… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1391 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1393 v->v_blank_time = (v->vtotal[k] - v->vactive[k]) * v->htotal[k] / v->pixel_clock[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1403 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1404 if (v->byte_per_pixel_detc[k] > 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1405k] =dcn_bw_max2(1.1 * v->swath_width_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 32.0 / v… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1408 …ep_per_plane[k] = 1.1 * v->swath_width_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 64.0 /… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1410 …v->dcfclk_deep_sleep_per_plane[k] =dcn_bw_max2(v->dcfclk_deep_sleep_per_plane[k], v->pixel_clock[k in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1413 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1414 v->dcf_clk_deep_sleep =dcn_bw_max2(v->dcf_clk_deep_sleep, v->dcfclk_deep_sleep_per_plane[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1422 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1423k] +dcn_bw_min2(v->lines_in_dety[k] * v->dppclk * v->byte_per_pixel_dety[k] * v->pscl_throughput[k in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1424k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effective_det_plus_lb_lines_luma * v->swath_width_y[k in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1425 if (v->byte_per_pixel_detc[k] > 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1426k] +dcn_bw_min2(v->lines_in_detc[k] * v->dppclk * v->byte_per_pixel_detc[k] * v->pscl_throughput_c… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1427k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0) - v->effective_det_plus_lb_lines_chroma * (v->swat… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1428 …v->urgent_latency_support_us[k] =dcn_bw_min2(v->urgent_latency_support_us_luma, v->urgent_latency_… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1431 v->urgent_latency_support_us[k] = v->urgent_latency_support_us_luma; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1435 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1436 …latency_support_us =dcn_bw_min2(v->min_urgent_latency_support_us, v->urgent_latency_support_us[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1443 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1444 … ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_3… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1445 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1448 else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1457 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1461 else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1470 if (v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1471 …v->meta_request_width_y = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / (8.0 * v->b… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1472 …v->meta_surf_width_y =dcn_bw_ceil2(v->swath_width_y[k] - 1.0, v->meta_request_width_y) + v->meta_r… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1473 …v->meta_surf_height_y =dcn_bw_ceil2(v->viewport_height[k] - 1.0, 8.0 * v->block_height256_bytes_y)… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1475 …a_surf_width_y * v->meta_surf_height_y *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 256.0 - 409… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1480 if (v->source_scan[k] == dcn_bw_hor) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1481 …f_width_y * 8.0 * v->block_height256_bytes_y *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 256.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1484 …meta_surf_height_y * v->meta_request_width_y *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 256.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1492 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1496 …[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mo… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1500k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_m… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1514 …v->pixel_pte_req_width_y = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / v->pixel_pte_req… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1515 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1516 …dth_y[k] *dcn_bw_min2(128.0, dcn_bw_pow(2.0,dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_request… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1518 else if (v->source_scan[k] == dcn_bw_hor) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1519 …v->pixel_pte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->swath_width_y[k] - 1.0) / v->pixel_pte_req… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1522 …v->pixel_pte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] - 1.0) / v->pixel_pte_r… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1528 … ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_3… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1529 if (v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1530 …v->meta_request_width_c = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / (8.0 * v->b… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1531 …v->meta_surf_width_c =dcn_bw_ceil2(v->swath_width_y[k] / 2.0 - 1.0, v->meta_request_width_c) + v->… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1532 …v->meta_surf_height_c =dcn_bw_ceil2(v->viewport_height[k] / 2.0 - 1.0, 8.0 * v->block_height256_by… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1534 …a_surf_width_c * v->meta_surf_height_c *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 256.0 - 409… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1539 if (v->source_scan[k] == dcn_bw_hor) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1540 …f_width_c * 8.0 * v->block_height256_bytes_c *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 256.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1543 …meta_surf_height_c * v->meta_request_width_c *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 256.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1551 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1555 …[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mo… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1559k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_m… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1573 …v->pixel_pte_req_width_c = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / v->pixel_pte_req… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1574 if (v->source_surface_mode[k] == dcn_bw_sw_linear) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1575 …y[k] / 2.0 * dcn_bw_min2(128.0, dcn_bw_pow(2.0,dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_requ… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1577 else if (v->source_scan[k] == dcn_bw_hor) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1578 …v->pixel_pte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->swath_width_y[k] / 2.0 - 1.0) / v->pixel_p… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1581 …v->pixel_pte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] / 2.0 - 1.0) / v->pixel… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1593 v->pixel_pte_bytes_per_row[k] = v->pixel_pte_bytes_per_row_y + v->pixel_pte_bytes_per_row_c; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1594 v->meta_pte_bytes_frame[k] = v->meta_pte_bytes_frame_y + v->meta_pte_bytes_frame_c; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1595 v->meta_row_byte[k] = v->meta_row_byte_y + v->meta_row_byte_c; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1596 …v->v_init_pre_fill_y[k] =dcn_bw_floor2((v->v_ratio[k] + v->vtaps[k] + 1.0 + v->interlace_output[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1597 …v->max_num_swath_y[k] =dcn_bw_ceil2((v->v_init_pre_fill_y[k] - 1.0) / v->swath_height_y[k], 1.0) +… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1598 if (v->v_init_pre_fill_y[k] > 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1599 v->max_partial_swath_y =dcn_bw_mod((v->v_init_pre_fill_y[k] - 2.0), v->swath_height_y[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1602 …partial_swath_y =dcn_bw_mod((v->v_init_pre_fill_y[k] + v->swath_height_y[k] - 2.0), v->swath_heigh… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1605 …v->prefetch_source_lines_y[k] = v->max_num_swath_y[k] * v->swath_height_y[k] + v->max_partial_swat… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1606 … ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_3… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1607 …v->v_init_pre_fill_c[k] =dcn_bw_floor2((v->v_ratio[k] / 2.0 + v->vtaps[k] + 1.0 + v->interlace_out… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1608 …v->max_num_swath_c[k] =dcn_bw_ceil2((v->v_init_pre_fill_c[k] - 1.0) / v->swath_height_c[k], 1.0) +… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1609 if (v->v_init_pre_fill_c[k] > 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1610 v->max_partial_swath_c =dcn_bw_mod((v->v_init_pre_fill_c[k] - 2.0), v->swath_height_c[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1613 …partial_swath_c =dcn_bw_mod((v->v_init_pre_fill_c[k] + v->swath_height_c[k] - 2.0), v->swath_heigh… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1618 v->max_num_swath_c[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1621 …v->prefetch_source_lines_c[k] = v->max_num_swath_c[k] * v->swath_height_c[k] + v->max_partial_swat… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1624 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1626 v->max_vstartup_lines[k] = v->vtotal[k] - v->vactive[k] - 1.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1629 v->max_vstartup_lines[k] = v->v_sync_plus_back_porch[k] - 1.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1642 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1643 …v->dstx_after_scaler = 90.0 * v->pixel_clock[k] / v->dppclk + 42.0 * v->pixel_clock[k] / v->dispcl… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1644 if (v->dpp_per_plane[k] > 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1645 v->dstx_after_scaler = v->dstx_after_scaler + v->scaler_rec_out_width[k] / 2.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1647 if (v->output_format[k] == dcn_bw_420) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1653 v->v_update_offset_pix[k] = dcn_bw_ceil2(v->htotal[k] / 4.0, 1.0); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1655 …v->v_update_width_pix[k] = (14.0 / v->dcf_clk_deep_sleep + 12.0 / v->dppclk + v->total_repeater_de… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1656 …fset_pix[k] = dcn_bw_max2(150.0 / v->dppclk, v->total_repeater_delay_time + 20.0 / v->dcf_clk_deep… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1657 …v->t_setup = (v->v_update_offset_pix[k] + v->v_update_width_pix[k] + v->v_ready_offset_pix[k]) / v… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1658 v->v_startup[k] =dcn_bw_min2(v->v_startup_lines, v->max_vstartup_lines[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1668k] =dcn_bw_floor2(4.0 * (v->v_startup[k] - v->t_wait / (v->htotal[k] / v->pixel_clock[k]) - (v->t_… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1669 if (v->destination_lines_for_prefetch[k] > 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1670k] = (v->meta_pte_bytes_frame[k] + 2.0 * v->meta_row_byte[k] + 2.0 * v->pixel_pte_bytes_per_row[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1673 v->prefetch_bandwidth[k] = 999999.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1677 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1678 …ip -dcn_bw_max2(v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k], v->prefetch_b… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1681 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1682 …upported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_for… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1683 …t_immediate_flip_bytes + v->meta_pte_bytes_frame[k] + v->meta_row_byte[k] + v->pixel_pte_bytes_per… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1687 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1688 if (v->pte_enable == dcn_bw_yes && v->dcc_enable[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1689 …upported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_for… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1690k] / v->prefetch_bandwidth[k], v->meta_pte_bytes_frame[k] * v->tot_immediate_flip_bytes / (v->band… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1693 …_bw_max3(v->meta_pte_bytes_frame[k] / v->prefetch_bandwidth[k], v->urgent_extra_latency, v->htotal… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1697 v->time_for_fetching_meta_pte = v->htotal[k] / v->pixel_clock[k] / 4.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1699 …n_lines_to_request_vm_inv_blank[k] =dcn_bw_floor2(4.0 * (v->time_for_fetching_meta_pte / (v->htota… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1700 if ((v->pte_enable == dcn_bw_yes || v->dcc_enable[k] == dcn_bw_yes)) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1701 …upported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_for… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1702k] + v->pixel_pte_bytes_per_row[k]) / v->prefetch_bandwidth[k], (v->meta_row_byte[k] + v->pixel_pt… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1705 …->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / v->prefetch_bandwidth[k], v->urgent_extra_la… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1709 …->urgent_extra_latency - v->time_for_fetching_meta_pte, v->htotal[k] / v->pixel_clock[k] - v->time… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1711 …nes_to_request_row_in_vblank[k] =dcn_bw_floor2(4.0 * (v->time_for_fetching_row_in_vblank / (v->hto… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1712 …ation_lines_for_prefetch[k] - v->destination_lines_to_request_vm_inv_blank[k] - v->destination_lin… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1714 …v->v_ratio_prefetch_y[k] = v->prefetch_source_lines_y[k] / v->lines_to_request_prefetch_pixel_data; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1715 if ((v->swath_height_y[k] > 4.0)) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1716 if (v->lines_to_request_prefetch_pixel_data > (v->v_init_pre_fill_y[k] - 3.0) / 2.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1717k] =dcn_bw_max2(v->v_ratio_prefetch_y[k], v->max_num_swath_y[k] * v->swath_height_y[k] / (v->lines… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1720 v->v_ratio_prefetch_y[k] = 999999.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1725 v->v_ratio_prefetch_y[k] = 999999.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1727 v->v_ratio_prefetch_y[k] =dcn_bw_max2(v->v_ratio_prefetch_y[k], 1.0); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1729 …v->v_ratio_prefetch_c[k] = v->prefetch_source_lines_c[k] / v->lines_to_request_prefetch_pixel_data; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1730 if ((v->swath_height_c[k] > 4.0)) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1731 if (v->lines_to_request_prefetch_pixel_data > (v->v_init_pre_fill_c[k] - 3.0) / 2.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1732k] =dcn_bw_max2(v->v_ratio_prefetch_c[k], v->max_num_swath_c[k] * v->swath_height_c[k] / (v->lines… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1735 v->v_ratio_prefetch_c[k] = 999999.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1740 v->v_ratio_prefetch_c[k] = 999999.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1742 v->v_ratio_prefetch_c[k] =dcn_bw_max2(v->v_ratio_prefetch_c[k], 1.0); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1744k] * (v->prefetch_source_lines_y[k] / v->lines_to_request_prefetch_pixel_data *dcn_bw_ceil2(v->byt… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1749 …ax_rd_bandwidth +dcn_bw_max2(v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k], … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1750 …upported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_for… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1751k] / (v->destination_lines_to_request_vm_inv_blank[k] * v->htotal[k] / v->pixel_clock[k]), (v->met… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1753 if (v->v_ratio_prefetch_y[k] > 4.0 || v->v_ratio_prefetch_c[k] > 4.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1756 if (v->destination_lines_for_prefetch[k] < 2.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1759 if (v->max_vstartup_lines[k] > v->v_startup_lines) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1760 …ired_prefetch_pix_data_bw > (v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k]))… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1763 if (v->v_ratio_prefetch_y[k] > 4.0 || v->v_ratio_prefetch_c[k] > 4.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1766 if (v->destination_lines_for_prefetch[k] < 2.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1781 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1782 if (v->v_ratio_prefetch_y[k] <= 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1783 …pe_line_delivery_time_luma_prefetch[k] = v->swath_width_y[k] * v->dpp_per_plane[k] / v->h_ratio[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1786 …v->display_pipe_line_delivery_time_luma_prefetch[k] = v->swath_width_y[k] / v->pscl_throughput[k] … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1788 if (v->byte_per_pixel_detc[k] == 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1789 v->display_pipe_line_delivery_time_chroma_prefetch[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1792 if (v->v_ratio_prefetch_c[k] <= 1.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1793 …_line_delivery_time_chroma_prefetch[k] = v->swath_width_y[k] * v->dpp_per_plane[k] / v->h_ratio[k]… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1796 …v->display_pipe_line_delivery_time_chroma_prefetch[k] = v->swath_width_y[k] / v->pscl_throughput[k in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1802 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1804 v->allow_dram_clock_change_during_vblank[k] = dcn_bw_yes; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1805 v->allow_dram_self_refresh_during_vblank[k] = dcn_bw_yes; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1806 …v->min_ttuv_blank[k] = v->t_calc +dcn_bw_max3(v->dram_clock_change_watermark, v->stutter_enter_plu… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1809 v->allow_dram_clock_change_during_vblank[k] = dcn_bw_no; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1810 v->allow_dram_self_refresh_during_vblank[k] = dcn_bw_yes; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1811 …v->min_ttuv_blank[k] = v->t_calc +dcn_bw_max2(v->stutter_enter_plus_exit_watermark, v->urgent_wate… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1814 v->allow_dram_clock_change_during_vblank[k] = dcn_bw_no; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1815 v->allow_dram_self_refresh_during_vblank[k] = dcn_bw_no; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1816 v->min_ttuv_blank[k] = v->t_calc + v->urgent_watermark; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1822 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1823 v->active_dp_ps = v->active_dp_ps + v->dpp_per_plane[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1825 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1826 …e_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_y[k] /dcn_bw_max2(v->h_ratio[k], 1.0)), 1… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1827 …size / v->lb_bit_per_pixel[k] / (v->swath_width_y[k] / 2.0 /dcn_bw_max2(v->h_ratio[k] / 2.0, 1.0))… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1828 …iding_y = v->lb_latency_hiding_source_lines_y / v->v_ratio[k] * (v->htotal[k] / v->pixel_clock[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1829 …c = v->lb_latency_hiding_source_lines_c / (v->v_ratio[k] / 2.0) * (v->htotal[k] / v->pixel_clock[k in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1830 if (v->swath_width_y[k] > 2.0 * v->dpp_output_buffer_pixels) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1831 v->dpp_output_buffer_lines_y = v->dpp_output_buffer_pixels / v->swath_width_y[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1833 else if (v->swath_width_y[k] > v->dpp_output_buffer_pixels) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1839 if (v->swath_width_y[k] / 2.0 > 2.0 * v->dpp_output_buffer_pixels) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1840 v->dpp_output_buffer_lines_c = v->dpp_output_buffer_pixels / (v->swath_width_y[k] / 2.0); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1842 else if (v->swath_width_y[k] / 2.0 > v->dpp_output_buffer_pixels) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1848 …v->dppopp_buffering_y = (v->htotal[k] / v->pixel_clock[k]) * (v->dpp_output_buffer_lines_y + v->op… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1849 …ring_time_y[k] + (v->lines_in_dety[k] - v->lines_in_dety_rounded_down_to_swath[k]) / v->swath_heig… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1852 … (1.0 - 1.0 / (v->active_dp_ps - 1.0)) * v->swath_height_y[k] * (v->htotal[k] / v->pixel_clock[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1854 if (v->byte_per_pixel_detc[k] > 0.0) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1855 …v->dppopp_buffering_c = (v->htotal[k] / v->pixel_clock[k]) * (v->dpp_output_buffer_lines_c + v->op… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1856 …ring_time_c[k] + (v->lines_in_detc[k] - v->lines_in_detc_rounded_down_to_swath[k]) / v->swath_heig… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1859 … (1.0 - 1.0 / (v->active_dp_ps - 1.0)) * v->swath_height_c[k] * (v->htotal[k] / v->pixel_clock[k]); in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1861 …v->active_dram_clock_change_latency_margin[k] =dcn_bw_min2(v->active_dram_clock_change_latency_mar… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1864 v->active_dram_clock_change_latency_margin[k] = v->active_dram_clock_change_latency_margin_y; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1866 if (v->output_format[k] == dcn_bw_444) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1867 …k_chroma_buffer_size) * 1024.0 / (v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1870 …k_chroma_buffer_size) * 1024.0 / (v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]))… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1872 if (v->output[k] == dcn_bw_writeback) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1873 …v->active_dram_clock_change_latency_margin[k] =dcn_bw_min2(v->active_dram_clock_change_latency_mar… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1876 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1877 if (v->allow_dram_clock_change_during_vblank[k] == dcn_bw_yes) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1878 …k_dram_clock_change_latency_margin[k] = (v->vtotal[k] - v->scaler_recout_height[k]) * (v->htotal[k in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1881 v->v_blank_dram_clock_change_latency_margin[k] = 0.0; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1887 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1888 if (v->active_dram_clock_change_latency_margin[k] < v->min_active_dram_clock_change_margin) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1890 v->min_active_dram_clock_change_margin = v->active_dram_clock_change_latency_margin[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1891 …v->v_blank_of_min_active_dram_clock_change_margin = v->v_blank_dram_clock_change_latency_margin[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1893 …else if (v->active_dram_clock_change_latency_margin[k] < v->second_min_active_dram_clock_change_ma… in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1894 v->second_min_active_dram_clock_change_margin = v->active_dram_clock_change_latency_margin[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1898 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1899 if (v->min_vblank_dram_clock_change_margin > v->v_blank_dram_clock_change_latency_margin[k]) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1900 v->min_vblank_dram_clock_change_margin = v->v_blank_dram_clock_change_latency_margin[k]; in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1924 for (k = 0; k <= v->number_of_active_planes - 1; k++) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1925 if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1926 …>wr_bandwidth = v->wr_bandwidth + v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1928 else if (v->output[k] == dcn_bw_writeback) { in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()
1929 …>wr_bandwidth = v->wr_bandwidth + v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) … in dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation()