]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amd/display: Fix narrowing boundaries in dml
authorGaghik Khachatrian <gaghik.khachatrian@amd.com>
Tue, 14 Apr 2026 18:42:17 +0000 (14:42 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 28 Apr 2026 18:30:03 +0000 (14:30 -0400)
[Why]
DML code paths include implicit integer narrowing at protocol and
storage boundaries. Making these boundaries explicit improves clarity
and reduces warning noise while preserving behavior.

[How]
Apply explicit C-style casts at intentional narrowing boundaries
across DML calculation, mode support, RQ/DLG, wrapper, and DSC
helper paths.
Keep intermediate arithmetic in natural-width types where practical,
with minor type-consistency cleanups where needed. Add explicit
boundary casts for intentional narrowing and keep intermediate math
in wider types where practical, with small type-consistency cleanups
to maintain behavior and readability.

Reviewed-by: Dillon Varone <dillon.varone@amd.com>
Signed-off-by: Gaghik Khachatrian <gaghik.khachatrian@amd.com>
Signed-off-by: Tom Chung <chiahsuan.chung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
32 files changed:
drivers/gpu/drm/amd/display/dc/dml/calcs/dcn_calc_auto.c
drivers/gpu/drm/amd/display/dc/dml/calcs/dcn_calc_math.c
drivers/gpu/drm/amd/display/dc/dml/calcs/dcn_calcs.c
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_mode_vba_21.c
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c
drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c
drivers/gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn302/dcn302_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn303/dcn303_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_rq_dlg_calc_31.c
drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.c
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.c
drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c
drivers/gpu/drm/amd/display/dc/dml/dml1_display_rq_dlg_calc.c
drivers/gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.c

index 288d22a16cf2541f7bb47d4b1beed152044b152e..5c00ef423968006506aa71ad3bfcd49e130de8f8 100644 (file)
@@ -45,25 +45,22 @@ void scaler_settings_calculation(struct dcn_bw_internal_vars *v)
                        if (v->source_scan[k] == dcn_bw_hor) {
                                v->h_ratio[k] = v->viewport_width[k] / v->scaler_rec_out_width[k];
                                v->v_ratio[k] = v->viewport_height[k] / v->scaler_recout_height[k];
-                       }
-                       else {
+                       } else {
                                v->h_ratio[k] = v->viewport_height[k] / v->scaler_rec_out_width[k];
                                v->v_ratio[k] = v->viewport_width[k] / v->scaler_recout_height[k];
                        }
-               }
-               else {
+               } else {
                        if (v->source_scan[k] == dcn_bw_hor) {
-                               v->h_ratio[k] =dcn_bw_max2(v->viewport_width[k] / v->scaler_rec_out_width[k], v->viewport_height[k] / v->scaler_recout_height[k]);
-                       }
-                       else {
-                               v->h_ratio[k] =dcn_bw_max2(v->viewport_height[k] / v->scaler_rec_out_width[k], v->viewport_width[k] / v->scaler_recout_height[k]);
+                               v->h_ratio[k] = dcn_bw_max2(v->viewport_width[k] / v->scaler_rec_out_width[k], v->viewport_height[k] / v->scaler_recout_height[k]);
+                       } else {
+                               v->h_ratio[k] = dcn_bw_max2(v->viewport_height[k] / v->scaler_rec_out_width[k], v->viewport_width[k] / v->scaler_recout_height[k]);
                        }
                        v->v_ratio[k] = v->h_ratio[k];
                }
-               if (v->interlace_output[k] == 1.0) {
-                       v->v_ratio[k] = 2.0 * v->v_ratio[k];
+               if (v->interlace_output[k] == 1.0f) {
+                       v->v_ratio[k] = 2.0f * v->v_ratio[k];
                }
-               if (v->underscan_output[k] == 1.0) {
+               if (v->underscan_output[k] == 1.0f) {
                        v->h_ratio[k] = v->h_ratio[k] * v->under_scan_factor;
                        v->v_ratio[k] = v->v_ratio[k] * v->under_scan_factor;
                }
@@ -71,46 +68,38 @@ void scaler_settings_calculation(struct dcn_bw_internal_vars *v)
        /*scaler taps calculation*/
 
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->h_ratio[k] > 1.0) {
-                       v->acceptable_quality_hta_ps =dcn_bw_min2(v->max_hscl_taps, 2.0 *dcn_bw_ceil2(v->h_ratio[k], 1.0));
-               }
-               else if (v->h_ratio[k] < 1.0) {
-                       v->acceptable_quality_hta_ps = 4.0;
-               }
-               else {
-                       v->acceptable_quality_hta_ps = 1.0;
+               if (v->h_ratio[k] > 1.0f) {
+                       v->acceptable_quality_hta_ps = dcn_bw_min2(v->max_hscl_taps, 2.0f * dcn_bw_ceil2(v->h_ratio[k], 1.0f));
+               } else if (v->h_ratio[k] < 1.0f) {
+                       v->acceptable_quality_hta_ps = 4.0f;
+               } else {
+                       v->acceptable_quality_hta_ps = 1.0f;
                }
                if (v->ta_pscalculation == dcn_bw_override) {
                        v->htaps[k] = v->override_hta_ps[k];
-               }
-               else {
+               } else {
                        v->htaps[k] = v->acceptable_quality_hta_ps;
                }
-               if (v->v_ratio[k] > 1.0) {
-                       v->acceptable_quality_vta_ps =dcn_bw_min2(v->max_vscl_taps, 2.0 *dcn_bw_ceil2(v->v_ratio[k], 1.0));
-               }
-               else if (v->v_ratio[k] < 1.0) {
-                       v->acceptable_quality_vta_ps = 4.0;
-               }
-               else {
-                       v->acceptable_quality_vta_ps = 1.0;
+               if (v->v_ratio[k] > 1.0f) {
+                       v->acceptable_quality_vta_ps = dcn_bw_min2(v->max_vscl_taps, 2.0f * dcn_bw_ceil2(v->v_ratio[k], 1.0f));
+               } else if (v->v_ratio[k] < 1.0f) {
+                       v->acceptable_quality_vta_ps = 4.0f;
+               } else {
+                       v->acceptable_quality_vta_ps = 1.0f;
                }
                if (v->ta_pscalculation == dcn_bw_override) {
                        v->vtaps[k] = v->override_vta_ps[k];
-               }
-               else {
+               } else {
                        v->vtaps[k] = v->acceptable_quality_vta_ps;
                }
                if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32 || v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
-                       v->vta_pschroma[k] = 0.0;
-                       v->hta_pschroma[k] = 0.0;
-               }
-               else {
+                       v->vta_pschroma[k] = 0.0f;
+                       v->hta_pschroma[k] = 0.0f;
+               } else {
                        if (v->ta_pscalculation == dcn_bw_override) {
                                v->vta_pschroma[k] = v->override_vta_pschroma[k];
                                v->hta_pschroma[k] = v->override_hta_pschroma[k];
-                       }
-                       else {
+                       } else {
                                v->vta_pschroma[k] = v->acceptable_quality_vta_ps;
                                v->hta_pschroma[k] = v->acceptable_quality_hta_ps;
                        }
@@ -129,7 +118,7 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
 
        v->scale_ratio_support = dcn_bw_yes;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->h_ratio[k] > v->max_hscl_ratio || v->v_ratio[k] > v->max_vscl_ratio || v->h_ratio[k] > v->htaps[k] || v->v_ratio[k] > v->vtaps[k] || (v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_32 && v->source_pixel_format[k] != dcn_bw_rgb_sub_16 && (v->h_ratio[k] / 2.0 > v->hta_pschroma[k] || v->v_ratio[k] / 2.0 > v->vta_pschroma[k]))) {
+               if (v->h_ratio[k] > v->max_hscl_ratio || v->v_ratio[k] > v->max_vscl_ratio || v->h_ratio[k] > v->htaps[k] || v->v_ratio[k] > v->vtaps[k] || (v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_32 && v->source_pixel_format[k] != dcn_bw_rgb_sub_16 && (v->h_ratio[k] / 2.0f > v->hta_pschroma[k] || v->v_ratio[k] / 2.0f > v->vta_pschroma[k]))) {
                        v->scale_ratio_support = dcn_bw_no;
                }
        }
@@ -146,60 +135,51 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->source_scan[k] == dcn_bw_hor) {
                        v->swath_width_ysingle_dpp[k] = v->viewport_width[k];
-               }
-               else {
+               } else {
                        v->swath_width_ysingle_dpp[k] = v->viewport_height[k];
                }
                if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                       v->byte_per_pixel_in_dety[k] = 8.0;
-                       v->byte_per_pixel_in_detc[k] = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
-                       v->byte_per_pixel_in_dety[k] = 4.0;
-                       v->byte_per_pixel_in_detc[k] = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
-                       v->byte_per_pixel_in_dety[k] = 2.0;
-                       v->byte_per_pixel_in_detc[k] = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                       v->byte_per_pixel_in_dety[k] = 1.0;
-                       v->byte_per_pixel_in_detc[k] = 2.0;
-               }
-               else {
+                       v->byte_per_pixel_in_dety[k] = 8.0f;
+                       v->byte_per_pixel_in_detc[k] = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
+                       v->byte_per_pixel_in_dety[k] = 4.0f;
+                       v->byte_per_pixel_in_detc[k] = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
+                       v->byte_per_pixel_in_dety[k] = 2.0f;
+                       v->byte_per_pixel_in_detc[k] = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
+                       v->byte_per_pixel_in_dety[k] = 1.0f;
+                       v->byte_per_pixel_in_detc[k] = 2.0f;
+               } else {
                        v->byte_per_pixel_in_dety[k] = 4.0f / 3.0f;
                        v->byte_per_pixel_in_detc[k] = 8.0f / 3.0f;
                }
        }
-       v->total_read_bandwidth_consumed_gbyte_per_second = 0.0;
+       v->total_read_bandwidth_consumed_gbyte_per_second = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               v->read_bandwidth[k] = v->swath_width_ysingle_dpp[k] * (dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) * v->v_ratio[k] +dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 2.0 * v->v_ratio[k] / 2) / (v->htotal[k] / v->pixel_clock[k]);
+               v->read_bandwidth[k] = v->swath_width_ysingle_dpp[k] * (dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) * v->v_ratio[k] + dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 2.0f * v->v_ratio[k] / 2) / (v->htotal[k] / v->pixel_clock[k]);
                if (v->dcc_enable[k] == dcn_bw_yes) {
                        v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 256);
                }
                if (v->pte_enable == dcn_bw_yes && v->source_scan[k] != dcn_bw_hor && (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x)) {
                        v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 64);
-               }
-               else if (v->pte_enable == dcn_bw_yes && v->source_scan[k] == dcn_bw_hor && (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32) && (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x)) {
+               } else if (v->pte_enable == dcn_bw_yes && v->source_scan[k] == dcn_bw_hor && (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32) && (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x)) {
                        v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 256);
-               }
-               else if (v->pte_enable == dcn_bw_yes) {
+               } else if (v->pte_enable == dcn_bw_yes) {
                        v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 512);
                }
-               v->total_read_bandwidth_consumed_gbyte_per_second = v->total_read_bandwidth_consumed_gbyte_per_second + v->read_bandwidth[k] / 1000.0;
+               v->total_read_bandwidth_consumed_gbyte_per_second = v->total_read_bandwidth_consumed_gbyte_per_second + v->read_bandwidth[k] / 1000.0f;
        }
-       v->total_write_bandwidth_consumed_gbyte_per_second = 0.0;
+       v->total_write_bandwidth_consumed_gbyte_per_second = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444) {
-                       v->write_bandwidth[k] = v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0;
-               }
-               else if (v->output[k] == dcn_bw_writeback) {
-                       v->write_bandwidth[k] = v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 1.5;
+                       v->write_bandwidth[k] = v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0f;
+               } else if (v->output[k] == dcn_bw_writeback) {
+                       v->write_bandwidth[k] = v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 1.5f;
+               } else {
+                       v->write_bandwidth[k] = 0.0f;
                }
-               else {
-                       v->write_bandwidth[k] = 0.0;
-               }
-               v->total_write_bandwidth_consumed_gbyte_per_second = v->total_write_bandwidth_consumed_gbyte_per_second + v->write_bandwidth[k] / 1000.0;
+               v->total_write_bandwidth_consumed_gbyte_per_second = v->total_write_bandwidth_consumed_gbyte_per_second + v->write_bandwidth[k] / 1000.0f;
        }
        v->total_bandwidth_consumed_gbyte_per_second = v->total_read_bandwidth_consumed_gbyte_per_second + v->total_write_bandwidth_consumed_gbyte_per_second;
        v->dcc_enabled_in_any_plane = dcn_bw_no;
@@ -209,29 +189,28 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                }
        }
        for (i = 0; i <= number_of_states_plus_one; i++) {
-               v->return_bw_todcn_per_state =dcn_bw_min2(v->return_bus_width * v->dcfclk_per_state[i], v->fabric_and_dram_bandwidth_per_state[i] * 1000.0 * v->percent_of_ideal_drambw_received_after_urg_latency / 100.0);
+               v->return_bw_todcn_per_state = dcn_bw_min2(v->return_bus_width * v->dcfclk_per_state[i], v->fabric_and_dram_bandwidth_per_state[i] * 1000.0f * v->percent_of_ideal_drambw_received_after_urg_latency / 100.0f);
                v->return_bw_per_state[i] = v->return_bw_todcn_per_state;
-               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->return_bw_todcn_per_state > v->dcfclk_per_state[i] * v->return_bus_width / 4.0) {
-                       v->return_bw_per_state[i] =dcn_bw_min2(v->return_bw_per_state[i], v->return_bw_todcn_per_state * 4.0 * (1.0 - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 / (v->return_bw_todcn_per_state - v->dcfclk_per_state[i] * v->return_bus_width / 4.0) + v->urgent_latency)));
+               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->return_bw_todcn_per_state > v->dcfclk_per_state[i] * v->return_bus_width / 4.0f) {
+                       v->return_bw_per_state[i] = dcn_bw_min2(v->return_bw_per_state[i], v->return_bw_todcn_per_state * 4.0f * (1.0f - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f / (v->return_bw_todcn_per_state - v->dcfclk_per_state[i] * v->return_bus_width / 4.0f) + v->urgent_latency)));
                }
-               v->critical_point = 2.0 * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0);
-               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->critical_point > 1.0 && v->critical_point < 4.0) {
-                       v->return_bw_per_state[i] =dcn_bw_min2(v->return_bw_per_state[i], dcn_bw_pow(4.0 * v->return_bw_todcn_per_state * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0), 2));
+               v->critical_point = 2.0f * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f);
+               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->critical_point > 1.0f && v->critical_point < 4.0f) {
+                       v->return_bw_per_state[i] = dcn_bw_min2(v->return_bw_per_state[i], dcn_bw_pow(4.0f * v->return_bw_todcn_per_state * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f), 2));
                }
-               v->return_bw_todcn_per_state =dcn_bw_min2(v->return_bus_width * v->dcfclk_per_state[i], v->fabric_and_dram_bandwidth_per_state[i] * 1000.0);
-               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->return_bw_todcn_per_state > v->dcfclk_per_state[i] * v->return_bus_width / 4.0) {
-                       v->return_bw_per_state[i] =dcn_bw_min2(v->return_bw_per_state[i], v->return_bw_todcn_per_state * 4.0 * (1.0 - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 / (v->return_bw_todcn_per_state - v->dcfclk_per_state[i] * v->return_bus_width / 4.0) + v->urgent_latency)));
+               v->return_bw_todcn_per_state = dcn_bw_min2(v->return_bus_width * v->dcfclk_per_state[i], v->fabric_and_dram_bandwidth_per_state[i] * 1000.0f);
+               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->return_bw_todcn_per_state > v->dcfclk_per_state[i] * v->return_bus_width / 4.0f) {
+                       v->return_bw_per_state[i] = dcn_bw_min2(v->return_bw_per_state[i], v->return_bw_todcn_per_state * 4.0f * (1.0f - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f / (v->return_bw_todcn_per_state - v->dcfclk_per_state[i] * v->return_bus_width / 4.0f) + v->urgent_latency)));
                }
-               v->critical_point = 2.0 * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0);
-               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->critical_point > 1.0 && v->critical_point < 4.0) {
-                       v->return_bw_per_state[i] =dcn_bw_min2(v->return_bw_per_state[i], dcn_bw_pow(4.0 * v->return_bw_todcn_per_state * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0), 2));
+               v->critical_point = 2.0f * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f);
+               if (v->dcc_enabled_in_any_plane == dcn_bw_yes && v->critical_point > 1.0f && v->critical_point < 4.0f) {
+                       v->return_bw_per_state[i] = dcn_bw_min2(v->return_bw_per_state[i], dcn_bw_pow(4.0f * v->return_bw_todcn_per_state * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f * v->return_bus_width * v->dcfclk_per_state[i] * v->urgent_latency / (v->return_bw_todcn_per_state * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f), 2));
                }
        }
        for (i = 0; i <= number_of_states_plus_one; i++) {
-               if ((v->total_read_bandwidth_consumed_gbyte_per_second * 1000.0 <= v->return_bw_per_state[i]) && (v->total_bandwidth_consumed_gbyte_per_second * 1000.0 <= v->fabric_and_dram_bandwidth_per_state[i] * 1000.0 * v->percent_of_ideal_drambw_received_after_urg_latency / 100.0)) {
+               if ((v->total_read_bandwidth_consumed_gbyte_per_second * 1000.0f <= v->return_bw_per_state[i]) && (v->total_bandwidth_consumed_gbyte_per_second * 1000.0f <= v->fabric_and_dram_bandwidth_per_state[i] * 1000.0f * v->percent_of_ideal_drambw_received_after_urg_latency / 100.0f)) {
                        v->bandwidth_support[i] = dcn_bw_yes;
-               }
-               else {
+               } else {
                        v->bandwidth_support[i] = dcn_bw_no;
                }
        }
@@ -239,21 +218,19 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
 
        v->writeback_latency_support = dcn_bw_yes;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444 && v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0 > (v->writeback_luma_buffer_size + v->writeback_chroma_buffer_size) * 1024.0 / v->write_back_latency) {
+               if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444 && v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0f > (v->writeback_luma_buffer_size + v->writeback_chroma_buffer_size) * 1024.0f / v->write_back_latency) {
                        v->writeback_latency_support = dcn_bw_no;
-               }
-               else if (v->output[k] == dcn_bw_writeback && v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) >dcn_bw_min2(v->writeback_luma_buffer_size, 2.0 * v->writeback_chroma_buffer_size) * 1024.0 / v->write_back_latency) {
+               } else if (v->output[k] == dcn_bw_writeback && v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) > dcn_bw_min2(v->writeback_luma_buffer_size, 2.0f * v->writeback_chroma_buffer_size) * 1024.0f / v->write_back_latency) {
                        v->writeback_latency_support = dcn_bw_no;
                }
        }
        /*re-ordering buffer support check*/
 
        for (i = 0; i <= number_of_states_plus_one; i++) {
-               v->urgent_round_trip_and_out_of_order_latency_per_state[i] = (v->round_trip_ping_latency_cycles + 32.0) / v->dcfclk_per_state[i] + v->urgent_out_of_order_return_per_channel * v->number_of_channels / v->return_bw_per_state[i];
-               if ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 / v->return_bw_per_state[i] > v->urgent_round_trip_and_out_of_order_latency_per_state[i]) {
+               v->urgent_round_trip_and_out_of_order_latency_per_state[i] = (v->round_trip_ping_latency_cycles + 32.0f) / v->dcfclk_per_state[i] + v->urgent_out_of_order_return_per_channel * v->number_of_channels / v->return_bw_per_state[i];
+               if ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f / v->return_bw_per_state[i] > v->urgent_round_trip_and_out_of_order_latency_per_state[i]) {
                        v->rob_support[i] = dcn_bw_yes;
-               }
-               else {
+               } else {
                        v->rob_support[i] = dcn_bw_no;
                }
        }
@@ -262,229 +239,201 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->output[k] == dcn_bw_dp && v->dsc_capability == dcn_bw_yes) {
                        if (v->output_format[k] == dcn_bw_420) {
-                               v->required_output_bw = v->pixel_clock[k] / 2.0;
-                       }
-                       else {
+                               v->required_output_bw = v->pixel_clock[k] / 2.0f;
+                       } else {
                                v->required_output_bw = v->pixel_clock[k];
                        }
-               }
-               else if (v->output_format[k] == dcn_bw_420) {
-                       v->required_output_bw = v->pixel_clock[k] * 3.0 / 2.0;
-               }
-               else {
-                       v->required_output_bw = v->pixel_clock[k] * 3.0;
+               } else if (v->output_format[k] == dcn_bw_420) {
+                       v->required_output_bw = v->pixel_clock[k] * 3.0f / 2.0f;
+               } else {
+                       v->required_output_bw = v->pixel_clock[k] * 3.0f;
                }
                if (v->output[k] == dcn_bw_hdmi) {
                        v->required_phyclk[k] = v->required_output_bw;
                        switch (v->output_deep_color[k]) {
                        case dcn_bw_encoder_10bpc:
-                               v->required_phyclk[k] =  v->required_phyclk[k] * 5.0 / 4;
+                               v->required_phyclk[k] =  v->required_phyclk[k] * 5.0f / 4;
                        break;
                        case dcn_bw_encoder_12bpc:
-                               v->required_phyclk[k] =  v->required_phyclk[k] * 3.0 / 2;
+                               v->required_phyclk[k] =  v->required_phyclk[k] * 3.0f / 2;
                                break;
                        default:
                                break;
                        }
-                       v->required_phyclk[k] = v->required_phyclk[k] / 3.0;
-               }
-               else if (v->output[k] == dcn_bw_dp) {
-                       v->required_phyclk[k] = v->required_output_bw / 4.0;
-               }
-               else {
-                       v->required_phyclk[k] = 0.0;
+                       v->required_phyclk[k] = v->required_phyclk[k] / 3.0f;
+               } else if (v->output[k] == dcn_bw_dp) {
+                       v->required_phyclk[k] = v->required_output_bw / 4.0f;
+               } else {
+                       v->required_phyclk[k] = 0.0f;
                }
        }
        for (i = 0; i <= number_of_states_plus_one; i++) {
                v->dio_support[i] = dcn_bw_yes;
                for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                       if (v->required_phyclk[k] > v->phyclk_per_state[i] || (v->output[k] == dcn_bw_hdmi && v->required_phyclk[k] > 600.0)) {
+                       if (v->required_phyclk[k] > v->phyclk_per_state[i] || (v->output[k] == dcn_bw_hdmi && v->required_phyclk[k] > 600.0f)) {
                                v->dio_support[i] = dcn_bw_no;
                        }
                }
        }
        /*total available writeback support check*/
 
-       v->total_number_of_active_writeback = 0.0;
+       v->total_number_of_active_writeback = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->output[k] == dcn_bw_writeback) {
-                       v->total_number_of_active_writeback = v->total_number_of_active_writeback + 1.0;
+                       v->total_number_of_active_writeback = v->total_number_of_active_writeback + 1.0f;
                }
        }
        if (v->total_number_of_active_writeback <= v->max_num_writeback) {
                v->total_available_writeback_support = dcn_bw_yes;
-       }
-       else {
+       } else {
                v->total_available_writeback_support = dcn_bw_no;
        }
        /*maximum dispclk/dppclk support check*/
 
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->h_ratio[k] > 1.0) {
-                       v->pscl_factor[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] /dcn_bw_ceil2(v->htaps[k] / 6.0, 1.0));
-               }
-               else {
-                       v->pscl_factor[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
+               if (v->h_ratio[k] > 1.0f) {
+                       v->pscl_factor[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] / dcn_bw_ceil2(v->htaps[k] / 6.0f, 1.0f));
+               } else {
+                       v->pscl_factor[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
                }
-               if (v->byte_per_pixel_in_detc[k] == 0.0) {
-                       v->pscl_factor_chroma[k] = 0.0;
-                       v->min_dppclk_using_single_dpp[k] = 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] * v->v_ratio[k] / v->pscl_factor[k], 1.0);
-               }
-               else {
-                       if (v->h_ratio[k] / 2.0 > 1.0) {
-                               v->pscl_factor_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] / 2.0 /dcn_bw_ceil2(v->hta_pschroma[k] / 6.0, 1.0));
-                       }
-                       else {
-                               v->pscl_factor_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
+               if (v->byte_per_pixel_in_detc[k] == 0.0f) {
+                       v->pscl_factor_chroma[k] = 0.0f;
+                       v->min_dppclk_using_single_dpp[k] = v->pixel_clock[k] * dcn_bw_max3(v->vtaps[k] / 6.0f * dcn_bw_min2(1.0f, v->h_ratio[k]), v->h_ratio[k] * v->v_ratio[k] / v->pscl_factor[k], 1.0f);
+               } else {
+                       if (v->h_ratio[k] / 2.0f > 1.0f) {
+                               v->pscl_factor_chroma[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] / 2.0f / dcn_bw_ceil2(v->hta_pschroma[k] / 6.0f, 1.0f));
+                       } else {
+                               v->pscl_factor_chroma[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
                        }
-                       v->min_dppclk_using_single_dpp[k] = v->pixel_clock[k] *dcn_bw_max5(v->vtaps[k] / 6.0 *dcn_bw_min2(1.0, v->h_ratio[k]), v->h_ratio[k] * v->v_ratio[k] / v->pscl_factor[k], v->vta_pschroma[k] / 6.0 *dcn_bw_min2(1.0, v->h_ratio[k] / 2.0), v->h_ratio[k] * v->v_ratio[k] / 4.0 / v->pscl_factor_chroma[k], 1.0);
+                       v->min_dppclk_using_single_dpp[k] = v->pixel_clock[k] * dcn_bw_max5(v->vtaps[k] / 6.0f * dcn_bw_min2(1.0f, v->h_ratio[k]), v->h_ratio[k] * v->v_ratio[k] / v->pscl_factor[k], v->vta_pschroma[k] / 6.0f * dcn_bw_min2(1.0f, v->h_ratio[k] / 2.0f), v->h_ratio[k] * v->v_ratio[k] / 4.0f / v->pscl_factor_chroma[k], 1.0f);
                }
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32 || v->source_pixel_format[k] == dcn_bw_rgb_sub_16)) {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->read256_block_height_y[k] = 1.0;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                               v->read256_block_height_y[k] = 4.0;
-                       }
-                       else {
-                               v->read256_block_height_y[k] = 8.0;
-                       }
-                       v->read256_block_width_y[k] = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->read256_block_height_y[k];
-                       v->read256_block_height_c[k] = 0.0;
-                       v->read256_block_width_c[k] = 0.0;
-               }
-               else {
+                               v->read256_block_height_y[k] = 1.0f;
+                       } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
+                               v->read256_block_height_y[k] = 4.0f;
+                       } else {
+                               v->read256_block_height_y[k] = 8.0f;
+                       }
+                       v->read256_block_width_y[k] = 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / v->read256_block_height_y[k];
+                       v->read256_block_height_c[k] = 0.0f;
+                       v->read256_block_width_c[k] = 0.0f;
+               } else {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->read256_block_height_y[k] = 1.0;
-                               v->read256_block_height_c[k] = 1.0;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                               v->read256_block_height_y[k] = 16.0;
-                               v->read256_block_height_c[k] = 8.0;
-                       }
-                       else {
-                               v->read256_block_height_y[k] = 8.0;
-                               v->read256_block_height_c[k] = 8.0;
-                       }
-                       v->read256_block_width_y[k] = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->read256_block_height_y[k];
-                       v->read256_block_width_c[k] = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->read256_block_height_c[k];
+                               v->read256_block_height_y[k] = 1.0f;
+                               v->read256_block_height_c[k] = 1.0f;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
+                               v->read256_block_height_y[k] = 16.0f;
+                               v->read256_block_height_c[k] = 8.0f;
+                       } else {
+                               v->read256_block_height_y[k] = 8.0f;
+                               v->read256_block_height_c[k] = 8.0f;
+                       }
+                       v->read256_block_width_y[k] = 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / v->read256_block_height_y[k];
+                       v->read256_block_width_c[k] = 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / v->read256_block_height_c[k];
                }
                if (v->source_scan[k] == dcn_bw_hor) {
                        v->max_swath_height_y[k] = v->read256_block_height_y[k];
                        v->max_swath_height_c[k] = v->read256_block_height_c[k];
-               }
-               else {
+               } else {
                        v->max_swath_height_y[k] = v->read256_block_width_y[k];
                        v->max_swath_height_c[k] = v->read256_block_width_c[k];
                }
                if ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32 || v->source_pixel_format[k] == dcn_bw_rgb_sub_16)) {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear || (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 && (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_var_s || v->source_surface_mode[k] == dcn_bw_sw_var_s_x) && v->source_scan[k] == dcn_bw_hor)) {
                                v->min_swath_height_y[k] = v->max_swath_height_y[k];
-                       }
-                       else {
-                               v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0;
+                       } else {
+                               v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0f;
                        }
                        v->min_swath_height_c[k] = v->max_swath_height_c[k];
-               }
-               else {
+               } else {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
                                v->min_swath_height_y[k] = v->max_swath_height_y[k];
                                v->min_swath_height_c[k] = v->max_swath_height_c[k];
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 && v->source_scan[k] == dcn_bw_hor) {
-                               v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 && v->source_scan[k] == dcn_bw_hor) {
+                               v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0f;
                                if (v->bug_forcing_luma_and_chroma_request_to_same_size_fixed == dcn_bw_yes) {
                                        v->min_swath_height_c[k] = v->max_swath_height_c[k];
+                               } else {
+                                       v->min_swath_height_c[k] = v->max_swath_height_c[k] / 2.0f;
                                }
-                               else {
-                                       v->min_swath_height_c[k] = v->max_swath_height_c[k] / 2.0;
-                               }
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10 && v->source_scan[k] == dcn_bw_hor) {
-                               v->min_swath_height_c[k] = v->max_swath_height_c[k] / 2.0;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10 && v->source_scan[k] == dcn_bw_hor) {
+                               v->min_swath_height_c[k] = v->max_swath_height_c[k] / 2.0f;
                                if (v->bug_forcing_luma_and_chroma_request_to_same_size_fixed == dcn_bw_yes) {
                                        v->min_swath_height_y[k] = v->max_swath_height_y[k];
+                               } else {
+                                       v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0f;
                                }
-                               else {
-                                       v->min_swath_height_y[k] = v->max_swath_height_y[k] / 2.0;
-                               }
-                       }
-                       else {
+                       } else {
                                v->min_swath_height_y[k] = v->max_swath_height_y[k];
                                v->min_swath_height_c[k] = v->max_swath_height_c[k];
                        }
                }
                if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                       v->maximum_swath_width = 8192.0;
-               }
-               else {
-                       v->maximum_swath_width = 5120.0;
-               }
-               v->number_of_dpp_required_for_det_size =dcn_bw_ceil2(v->swath_width_ysingle_dpp[k] /dcn_bw_min2(v->maximum_swath_width, v->det_buffer_size_in_kbyte * 1024.0 / 2.0 / (v->byte_per_pixel_in_dety[k] * v->min_swath_height_y[k] + v->byte_per_pixel_in_detc[k] / 2.0 * v->min_swath_height_c[k])), 1.0);
-               if (v->byte_per_pixel_in_detc[k] == 0.0) {
-                       v->number_of_dpp_required_for_lb_size =dcn_bw_ceil2((v->vtaps[k] +dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k], 1.0) - 2, 0.0)) * v->swath_width_ysingle_dpp[k] /dcn_bw_max2(v->h_ratio[k], 1.0) * v->lb_bit_per_pixel[k] / v->line_buffer_size, 1.0);
+                       v->maximum_swath_width = 8192.0f;
+               } else {
+                       v->maximum_swath_width = 5120.0f;
                }
-               else {
-                       v->number_of_dpp_required_for_lb_size =dcn_bw_max2(dcn_bw_ceil2((v->vtaps[k] +dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k], 1.0) - 2, 0.0)) * v->swath_width_ysingle_dpp[k] /dcn_bw_max2(v->h_ratio[k], 1.0) * v->lb_bit_per_pixel[k] / v->line_buffer_size, 1.0),dcn_bw_ceil2((v->vta_pschroma[k] +dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k] / 2.0, 1.0) - 2, 0.0)) * v->swath_width_ysingle_dpp[k] / 2.0 /dcn_bw_max2(v->h_ratio[k] / 2.0, 1.0) * v->lb_bit_per_pixel[k] / v->line_buffer_size, 1.0));
+               v->number_of_dpp_required_for_det_size = dcn_bw_ceil2(v->swath_width_ysingle_dpp[k] / dcn_bw_min2(v->maximum_swath_width, v->det_buffer_size_in_kbyte * 1024.0f / 2.0f / (v->byte_per_pixel_in_dety[k] * v->min_swath_height_y[k] + v->byte_per_pixel_in_detc[k] / 2.0f * v->min_swath_height_c[k])), 1.0f);
+               if (v->byte_per_pixel_in_detc[k] == 0.0f) {
+                       v->number_of_dpp_required_for_lb_size = dcn_bw_ceil2((v->vtaps[k] + dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k], 1.0f) - 2, 0.0f)) * v->swath_width_ysingle_dpp[k] / dcn_bw_max2(v->h_ratio[k], 1.0f) * v->lb_bit_per_pixel[k] / v->line_buffer_size, 1.0f);
+               } else {
+                       v->number_of_dpp_required_for_lb_size = dcn_bw_max2(dcn_bw_ceil2((v->vtaps[k] + dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k], 1.0f) - 2, 0.0f)) * v->swath_width_ysingle_dpp[k] / dcn_bw_max2(v->h_ratio[k], 1.0f) * v->lb_bit_per_pixel[k] / v->line_buffer_size, 1.0f), dcn_bw_ceil2((v->vta_pschroma[k] + dcn_bw_max2(dcn_bw_ceil2(v->v_ratio[k] / 2.0f, 1.0f) - 2, 0.0f)) * v->swath_width_ysingle_dpp[k] / 2.0f / dcn_bw_max2(v->h_ratio[k] / 2.0f, 1.0f) * v->lb_bit_per_pixel[k] / v->line_buffer_size, 1.0f));
                }
-               v->number_of_dpp_required_for_det_and_lb_size[k] =dcn_bw_max2(v->number_of_dpp_required_for_det_size, v->number_of_dpp_required_for_lb_size);
+               v->number_of_dpp_required_for_det_and_lb_size[k] = dcn_bw_max2(v->number_of_dpp_required_for_det_size, v->number_of_dpp_required_for_lb_size);
        }
        for (i = 0; i <= number_of_states_plus_one; i++) {
                for (j = 0; j <= 1; j++) {
-                       v->total_number_of_active_dpp[i][j] = 0.0;
-                       v->required_dispclk[i][j] = 0.0;
+                       v->total_number_of_active_dpp[i][j] = 0.0f;
+                       v->required_dispclk[i][j] = 0.0f;
                        v->dispclk_dppclk_support[i][j] = dcn_bw_yes;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               v->min_dispclk_using_single_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] * (j + 1)) * (1.0 + v->downspreading / 100.0);
+                               v->min_dispclk_using_single_dpp = dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] * (j + 1)) * (1.0f + v->downspreading / 100.0f);
                                if (v->odm_capability == dcn_bw_yes) {
-                                       v->min_dispclk_using_dual_dpp =dcn_bw_max2(v->pixel_clock[k] / 2.0, v->min_dppclk_using_single_dpp[k] / 2.0 * (j + 1)) * (1.0 + v->downspreading / 100.0);
-                               }
-                               else {
-                                       v->min_dispclk_using_dual_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] / 2.0 * (j + 1)) * (1.0 + v->downspreading / 100.0);
+                                       v->min_dispclk_using_dual_dpp = dcn_bw_max2(v->pixel_clock[k] / 2.0f, v->min_dppclk_using_single_dpp[k] / 2.0f * (j + 1)) * (1.0f + v->downspreading / 100.0f);
+                               } else {
+                                       v->min_dispclk_using_dual_dpp = dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] / 2.0f * (j + 1)) * (1.0f + v->downspreading / 100.0f);
                                }
                                if (i < number_of_states) {
-                                       v->min_dispclk_using_single_dpp = v->min_dispclk_using_single_dpp * (1.0 + v->dispclk_ramping_margin / 100.0);
-                                       v->min_dispclk_using_dual_dpp = v->min_dispclk_using_dual_dpp * (1.0 + v->dispclk_ramping_margin / 100.0);
-                               }
-                               if (v->min_dispclk_using_single_dpp <=dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i]) && v->number_of_dpp_required_for_det_and_lb_size[k] <= 1.0) {
-                                       v->no_of_dpp[i][j][k] = 1.0;
-                                       v->required_dispclk[i][j] =dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_single_dpp);
-                               }
-                               else if (v->min_dispclk_using_dual_dpp <=dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i])) {
-                                       v->no_of_dpp[i][j][k] = 2.0;
-                                       v->required_dispclk[i][j] =dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_dual_dpp);
-                               }
-                               else {
-                                       v->no_of_dpp[i][j][k] = 2.0;
-                                       v->required_dispclk[i][j] =dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_dual_dpp);
+                                       v->min_dispclk_using_single_dpp = v->min_dispclk_using_single_dpp * (1.0f + v->dispclk_ramping_margin / 100.0f);
+                                       v->min_dispclk_using_dual_dpp = v->min_dispclk_using_dual_dpp * (1.0f + v->dispclk_ramping_margin / 100.0f);
+                               }
+                               if (v->min_dispclk_using_single_dpp <= dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i]) && v->number_of_dpp_required_for_det_and_lb_size[k] <= 1.0f) {
+                                       v->no_of_dpp[i][j][k] = 1.0f;
+                                       v->required_dispclk[i][j] = dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_single_dpp);
+                               } else if (v->min_dispclk_using_dual_dpp <= dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i])) {
+                                       v->no_of_dpp[i][j][k] = 2.0f;
+                                       v->required_dispclk[i][j] = dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_dual_dpp);
+                               } else {
+                                       v->no_of_dpp[i][j][k] = 2.0f;
+                                       v->required_dispclk[i][j] = dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_dual_dpp);
                                        v->dispclk_dppclk_support[i][j] = dcn_bw_no;
                                }
                                v->total_number_of_active_dpp[i][j] = v->total_number_of_active_dpp[i][j] + v->no_of_dpp[i][j][k];
                        }
                        if (v->total_number_of_active_dpp[i][j] > v->max_num_dpp) {
-                               v->total_number_of_active_dpp[i][j] = 0.0;
-                               v->required_dispclk[i][j] = 0.0;
+                               v->total_number_of_active_dpp[i][j] = 0.0f;
+                               v->required_dispclk[i][j] = 0.0f;
                                v->dispclk_dppclk_support[i][j] = dcn_bw_yes;
                                for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                                       v->min_dispclk_using_single_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] * (j + 1)) * (1.0 + v->downspreading / 100.0);
-                                       v->min_dispclk_using_dual_dpp =dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] / 2.0 * (j + 1)) * (1.0 + v->downspreading / 100.0);
+                                       v->min_dispclk_using_single_dpp = dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] * (j + 1)) * (1.0f + v->downspreading / 100.0f);
+                                       v->min_dispclk_using_dual_dpp = dcn_bw_max2(v->pixel_clock[k], v->min_dppclk_using_single_dpp[k] / 2.0f * (j + 1)) * (1.0f + v->downspreading / 100.0f);
                                        if (i < number_of_states) {
-                                               v->min_dispclk_using_single_dpp = v->min_dispclk_using_single_dpp * (1.0 + v->dispclk_ramping_margin / 100.0);
-                                               v->min_dispclk_using_dual_dpp = v->min_dispclk_using_dual_dpp * (1.0 + v->dispclk_ramping_margin / 100.0);
+                                               v->min_dispclk_using_single_dpp = v->min_dispclk_using_single_dpp * (1.0f + v->dispclk_ramping_margin / 100.0f);
+                                               v->min_dispclk_using_dual_dpp = v->min_dispclk_using_dual_dpp * (1.0f + v->dispclk_ramping_margin / 100.0f);
                                        }
-                                       if (v->number_of_dpp_required_for_det_and_lb_size[k] <= 1.0) {
-                                               v->no_of_dpp[i][j][k] = 1.0;
-                                               v->required_dispclk[i][j] =dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_single_dpp);
-                                               if (v->min_dispclk_using_single_dpp >dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i])) {
+                                       if (v->number_of_dpp_required_for_det_and_lb_size[k] <= 1.0f) {
+                                               v->no_of_dpp[i][j][k] = 1.0f;
+                                               v->required_dispclk[i][j] = dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_single_dpp);
+                                               if (v->min_dispclk_using_single_dpp > dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i])) {
                                                        v->dispclk_dppclk_support[i][j] = dcn_bw_no;
                                                }
-                                       }
-                                       else {
-                                               v->no_of_dpp[i][j][k] = 2.0;
-                                               v->required_dispclk[i][j] =dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_dual_dpp);
-                                               if (v->min_dispclk_using_dual_dpp >dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i])) {
+                                       } else {
+                                               v->no_of_dpp[i][j][k] = 2.0f;
+                                               v->required_dispclk[i][j] = dcn_bw_max2(v->required_dispclk[i][j], v->min_dispclk_using_dual_dpp);
+                                               if (v->min_dispclk_using_dual_dpp > dcn_bw_min2(v->max_dispclk[i], (j + 1) * v->max_dppclk[i])) {
                                                        v->dispclk_dppclk_support[i][j] = dcn_bw_no;
                                                }
                                        }
@@ -497,7 +446,7 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
 
        v->viewport_size_support = dcn_bw_yes;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->number_of_dpp_required_for_det_and_lb_size[k] > 2.0) {
+               if (v->number_of_dpp_required_for_det_and_lb_size[k] > 2.0f) {
                        v->viewport_size_support = dcn_bw_no;
                }
        }
@@ -507,8 +456,7 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                for (j = 0; j <= 1; j++) {
                        if (v->total_number_of_active_dpp[i][j] <= v->max_num_dpp) {
                                v->total_available_pipes_support[i][j] = dcn_bw_yes;
-                       }
-                       else {
+                       } else {
                                v->total_available_pipes_support[i][j] = dcn_bw_no;
                        }
                }
@@ -519,47 +467,43 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                for (i = 0; i <= number_of_states_plus_one; i++) {
                        for (j = 0; j <= 1; j++) {
                                v->swath_width_yper_state[i][j][k] = v->swath_width_ysingle_dpp[k] / v->no_of_dpp[i][j][k];
-                               v->swath_width_granularity_y = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->max_swath_height_y[k];
-                               v->rounded_up_max_swath_size_bytes_y = (dcn_bw_ceil2(v->swath_width_yper_state[i][j][k] - 1.0, v->swath_width_granularity_y) + v->swath_width_granularity_y) * v->byte_per_pixel_in_dety[k] * v->max_swath_height_y[k];
+                               v->swath_width_granularity_y = 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / v->max_swath_height_y[k];
+                               v->rounded_up_max_swath_size_bytes_y = (dcn_bw_ceil2(v->swath_width_yper_state[i][j][k] - 1.0f, v->swath_width_granularity_y) + v->swath_width_granularity_y) * v->byte_per_pixel_in_dety[k] * v->max_swath_height_y[k];
                                if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) {
-                                       v->rounded_up_max_swath_size_bytes_y =dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_y, 256.0) + 256;
+                                       v->rounded_up_max_swath_size_bytes_y = dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_y, 256.0f) + 256;
                                }
-                               if (v->max_swath_height_c[k] > 0.0) {
-                                       v->swath_width_granularity_c = 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->max_swath_height_c[k];
-                                       v->rounded_up_max_swath_size_bytes_c = (dcn_bw_ceil2(v->swath_width_yper_state[i][j][k] / 2.0 - 1.0, v->swath_width_granularity_c) + v->swath_width_granularity_c) * v->byte_per_pixel_in_detc[k] * v->max_swath_height_c[k];
+                               if (v->max_swath_height_c[k] > 0.0f) {
+                                       v->swath_width_granularity_c = 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / v->max_swath_height_c[k];
+                                       v->rounded_up_max_swath_size_bytes_c = (dcn_bw_ceil2(v->swath_width_yper_state[i][j][k] / 2.0f - 1.0f, v->swath_width_granularity_c) + v->swath_width_granularity_c) * v->byte_per_pixel_in_detc[k] * v->max_swath_height_c[k];
                                        if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) {
-                                               v->rounded_up_max_swath_size_bytes_c = dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_c, 256.0) + 256;
+                                               v->rounded_up_max_swath_size_bytes_c = dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_c, 256.0f) + 256;
                                        }
                                }
-                               if (v->rounded_up_max_swath_size_bytes_y + v->rounded_up_max_swath_size_bytes_c <= v->det_buffer_size_in_kbyte * 1024.0 / 2.0) {
+                               if (v->rounded_up_max_swath_size_bytes_y + v->rounded_up_max_swath_size_bytes_c <= v->det_buffer_size_in_kbyte * 1024.0f / 2.0f) {
                                        v->swath_height_yper_state[i][j][k] = v->max_swath_height_y[k];
                                        v->swath_height_cper_state[i][j][k] = v->max_swath_height_c[k];
-                               }
-                               else {
+                               } else {
                                        v->swath_height_yper_state[i][j][k] = v->min_swath_height_y[k];
                                        v->swath_height_cper_state[i][j][k] = v->min_swath_height_c[k];
                                }
-                               if (v->byte_per_pixel_in_detc[k] == 0.0) {
-                                       v->lines_in_det_luma = v->det_buffer_size_in_kbyte * 1024.0 / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k];
-                                       v->lines_in_det_chroma = 0.0;
-                               }
-                               else if (v->swath_height_yper_state[i][j][k] <= v->swath_height_cper_state[i][j][k]) {
-                                       v->lines_in_det_luma = v->det_buffer_size_in_kbyte * 1024.0 / 2.0 / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k];
-                                       v->lines_in_det_chroma = v->det_buffer_size_in_kbyte * 1024.0 / 2.0 / v->byte_per_pixel_in_detc[k] / (v->swath_width_yper_state[i][j][k] / 2.0);
-                               }
-                               else {
-                                       v->lines_in_det_luma = v->det_buffer_size_in_kbyte * 1024.0 * 2.0 / 3.0 / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k];
-                                       v->lines_in_det_chroma = v->det_buffer_size_in_kbyte * 1024.0 / 3.0 / v->byte_per_pixel_in_dety[k] / (v->swath_width_yper_state[i][j][k] / 2.0);
-                               }
-                               v->effective_lb_latency_hiding_source_lines_luma =dcn_bw_min2(v->max_line_buffer_lines,dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_yper_state[i][j][k] /dcn_bw_max2(v->h_ratio[k], 1.0)), 1.0)) - (v->vtaps[k] - 1.0);
-                               v->effective_detlb_lines_luma =dcn_bw_floor2(v->lines_in_det_luma +dcn_bw_min2(v->lines_in_det_luma * v->required_dispclk[i][j] * v->byte_per_pixel_in_dety[k] * v->pscl_factor[k] / v->return_bw_per_state[i], v->effective_lb_latency_hiding_source_lines_luma), v->swath_height_yper_state[i][j][k]);
-                               if (v->byte_per_pixel_in_detc[k] == 0.0) {
-                                       v->urgent_latency_support_us_per_state[i][j][k] = v->effective_detlb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effective_detlb_lines_luma * v->swath_width_yper_state[i][j][k] *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / (v->return_bw_per_state[i] / v->no_of_dpp[i][j][k]);
-                               }
-                               else {
-                                       v->effective_lb_latency_hiding_source_lines_chroma = dcn_bw_min2(v->max_line_buffer_lines, dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_yper_state[i][j][k] / 2.0 / dcn_bw_max2(v->h_ratio[k] / 2.0, 1.0)), 1.0)) - (v->vta_pschroma[k] - 1.0);
+                               if (v->byte_per_pixel_in_detc[k] == 0.0f) {
+                                       v->lines_in_det_luma = v->det_buffer_size_in_kbyte * 1024.0f / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k];
+                                       v->lines_in_det_chroma = 0.0f;
+                               } else if (v->swath_height_yper_state[i][j][k] <= v->swath_height_cper_state[i][j][k]) {
+                                       v->lines_in_det_luma = v->det_buffer_size_in_kbyte * 1024.0f / 2.0f / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k];
+                                       v->lines_in_det_chroma = v->det_buffer_size_in_kbyte * 1024.0f / 2.0f / v->byte_per_pixel_in_detc[k] / (v->swath_width_yper_state[i][j][k] / 2.0f);
+                               } else {
+                                       v->lines_in_det_luma = v->det_buffer_size_in_kbyte * 1024.0f * 2.0f / 3.0f / v->byte_per_pixel_in_dety[k] / v->swath_width_yper_state[i][j][k];
+                                       v->lines_in_det_chroma = v->det_buffer_size_in_kbyte * 1024.0f / 3.0f / v->byte_per_pixel_in_dety[k] / (v->swath_width_yper_state[i][j][k] / 2.0f);
+                               }
+                               v->effective_lb_latency_hiding_source_lines_luma = dcn_bw_min2(v->max_line_buffer_lines, dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_yper_state[i][j][k] / dcn_bw_max2(v->h_ratio[k], 1.0f)), 1.0f)) - (v->vtaps[k] - 1.0f);
+                               v->effective_detlb_lines_luma = dcn_bw_floor2(v->lines_in_det_luma + dcn_bw_min2(v->lines_in_det_luma * v->required_dispclk[i][j] * v->byte_per_pixel_in_dety[k] * v->pscl_factor[k] / v->return_bw_per_state[i], v->effective_lb_latency_hiding_source_lines_luma), v->swath_height_yper_state[i][j][k]);
+                               if (v->byte_per_pixel_in_detc[k] == 0.0f) {
+                                       v->urgent_latency_support_us_per_state[i][j][k] = v->effective_detlb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effective_detlb_lines_luma * v->swath_width_yper_state[i][j][k] * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / (v->return_bw_per_state[i] / v->no_of_dpp[i][j][k]);
+                               } else {
+                                       v->effective_lb_latency_hiding_source_lines_chroma = dcn_bw_min2(v->max_line_buffer_lines, dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_yper_state[i][j][k] / 2.0f / dcn_bw_max2(v->h_ratio[k] / 2.0f, 1.0f)), 1.0f)) - (v->vta_pschroma[k] - 1.0f);
                                        v->effective_detlb_lines_chroma = dcn_bw_floor2(v->lines_in_det_chroma + dcn_bw_min2(v->lines_in_det_chroma * v->required_dispclk[i][j] * v->byte_per_pixel_in_detc[k] * v->pscl_factor_chroma[k] / v->return_bw_per_state[i], v->effective_lb_latency_hiding_source_lines_chroma), v->swath_height_cper_state[i][j][k]);
-                                       v->urgent_latency_support_us_per_state[i][j][k] = dcn_bw_min2(v->effective_detlb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effective_detlb_lines_luma * v->swath_width_yper_state[i][j][k] * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / (v->return_bw_per_state[i] / v->no_of_dpp[i][j][k]), v->effective_detlb_lines_chroma * (v->htotal[k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0) - v->effective_detlb_lines_chroma * v->swath_width_yper_state[i][j][k] / 2.0 * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / (v->return_bw_per_state[i] / v->no_of_dpp[i][j][k]));
+                                       v->urgent_latency_support_us_per_state[i][j][k] = dcn_bw_min2(v->effective_detlb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effective_detlb_lines_luma * v->swath_width_yper_state[i][j][k] * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / (v->return_bw_per_state[i] / v->no_of_dpp[i][j][k]), v->effective_detlb_lines_chroma * (v->htotal[k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0f) - v->effective_detlb_lines_chroma * v->swath_width_yper_state[i][j][k] / 2.0f * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / (v->return_bw_per_state[i] / v->no_of_dpp[i][j][k]));
                                }
                        }
                }
@@ -568,7 +512,7 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                for (j = 0; j <= 1; j++) {
                        v->urgent_latency_support[i][j] = dcn_bw_yes;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               if (v->urgent_latency_support_us_per_state[i][j][k] < v->urgent_latency / 1.0) {
+                               if (v->urgent_latency_support_us_per_state[i][j][k] < v->urgent_latency / 1.0f) {
                                        v->urgent_latency_support[i][j] = dcn_bw_no;
                                }
                        }
@@ -578,7 +522,7 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
 
        for (i = 0; i <= number_of_states_plus_one; i++) {
                for (j = 0; j <= 1; j++) {
-                       v->total_number_of_dcc_active_dpp[i][j] = 0.0;
+                       v->total_number_of_dcc_active_dpp[i][j] = 0.0f;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                if (v->dcc_enable[k] == dcn_bw_yes) {
                                        v->total_number_of_dcc_active_dpp[i][j] = v->total_number_of_dcc_active_dpp[i][j] + v->no_of_dpp[i][j][k];
@@ -588,228 +532,198 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
        }
        for (i = 0; i <= number_of_states_plus_one; i++) {
                for (j = 0; j <= 1; j++) {
-                       v->projected_dcfclk_deep_sleep = 8.0;
+                       v->projected_dcfclk_deep_sleep = 8.0f;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, v->pixel_clock[k] / 16.0);
-                               if (v->byte_per_pixel_in_detc[k] == 0.0) {
-                                       if (v->v_ratio[k] <= 1.0) {
-                                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 64.0 * v->h_ratio[k] * v->pixel_clock[k] / v->no_of_dpp[i][j][k]);
-                                       }
-                                       else {
-                                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 64.0 * v->pscl_factor[k] * v->required_dispclk[i][j] / (1 + j));
-                                       }
-                               }
-                               else {
-                                       if (v->v_ratio[k] <= 1.0) {
-                                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 32.0 * v->h_ratio[k] * v->pixel_clock[k] / v->no_of_dpp[i][j][k]);
-                                       }
-                                       else {
-                                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 32.0 * v->pscl_factor[k] * v->required_dispclk[i][j] / (1 + j));
+                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, v->pixel_clock[k] / 16.0f);
+                               if (v->byte_per_pixel_in_detc[k] == 0.0f) {
+                                       if (v->v_ratio[k] <= 1.0f) {
+                                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1f * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 64.0f * v->h_ratio[k] * v->pixel_clock[k] / v->no_of_dpp[i][j][k]);
+                                       } else {
+                                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1f * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 64.0f * v->pscl_factor[k] * v->required_dispclk[i][j] / (1 + j));
                                        }
-                                       if (v->v_ratio[k] / 2.0 <= 1.0) {
-                                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 32.0 * v->h_ratio[k] / 2.0 * v->pixel_clock[k] / v->no_of_dpp[i][j][k]);
+                               } else {
+                                       if (v->v_ratio[k] <= 1.0f) {
+                                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1f * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 32.0f * v->h_ratio[k] * v->pixel_clock[k] / v->no_of_dpp[i][j][k]);
+                                       } else {
+                                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1f * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 32.0f * v->pscl_factor[k] * v->required_dispclk[i][j] / (1 + j));
                                        }
-                                       else {
-                                               v->projected_dcfclk_deep_sleep =dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1 *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 32.0 * v->pscl_factor_chroma[k] * v->required_dispclk[i][j] / (1 + j));
+                                       if (v->v_ratio[k] / 2.0f <= 1.0f) {
+                                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1f * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 32.0f * v->h_ratio[k] / 2.0f * v->pixel_clock[k] / v->no_of_dpp[i][j][k]);
+                                       } else {
+                                               v->projected_dcfclk_deep_sleep = dcn_bw_max2(v->projected_dcfclk_deep_sleep, 1.1f * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 32.0f * v->pscl_factor_chroma[k] * v->required_dispclk[i][j] / (1 + j));
                                        }
                                }
                        }
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                if (v->dcc_enable[k] == dcn_bw_yes) {
-                                       v->meta_req_height_y = 8.0 * v->read256_block_height_y[k];
-                                       v->meta_req_width_y = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->meta_req_height_y;
-                                       v->meta_surface_width_y =dcn_bw_ceil2(v->viewport_width[k] / v->no_of_dpp[i][j][k] - 1.0, v->meta_req_width_y) + v->meta_req_width_y;
-                                       v->meta_surface_height_y =dcn_bw_ceil2(v->viewport_height[k] - 1.0, v->meta_req_height_y) + v->meta_req_height_y;
+                                       v->meta_req_height_y = 8.0f * v->read256_block_height_y[k];
+                                       v->meta_req_width_y = 64.0f * 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / v->meta_req_height_y;
+                                       v->meta_surface_width_y = dcn_bw_ceil2(v->viewport_width[k] / v->no_of_dpp[i][j][k] - 1.0f, v->meta_req_width_y) + v->meta_req_width_y;
+                                       v->meta_surface_height_y = dcn_bw_ceil2(v->viewport_height[k] - 1.0f, v->meta_req_height_y) + v->meta_req_height_y;
                                        if (v->pte_enable == dcn_bw_yes) {
-                                               v->meta_pte_bytes_per_frame_y = (dcn_bw_ceil2((v->meta_surface_width_y * v->meta_surface_height_y *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 256.0 - 4096.0) / 8.0 / 4096.0, 1.0) + 1) * 64.0;
-                                       }
-                                       else {
-                                               v->meta_pte_bytes_per_frame_y = 0.0;
+                                               v->meta_pte_bytes_per_frame_y = (dcn_bw_ceil2((v->meta_surface_width_y * v->meta_surface_height_y * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 256.0f - 4096.0f) / 8.0f / 4096.0f, 1.0f) + 1) * 64.0f;
+                                       } else {
+                                               v->meta_pte_bytes_per_frame_y = 0.0f;
                                        }
                                        if (v->source_scan[k] == dcn_bw_hor) {
-                                               v->meta_row_bytes_y = v->meta_surface_width_y * v->meta_req_height_y *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 256.0;
-                                       }
-                                       else {
-                                               v->meta_row_bytes_y = v->meta_surface_height_y * v->meta_req_width_y *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / 256.0;
+                                               v->meta_row_bytes_y = v->meta_surface_width_y * v->meta_req_height_y * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 256.0f;
+                                       } else {
+                                               v->meta_row_bytes_y = v->meta_surface_height_y * v->meta_req_width_y * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / 256.0f;
                                        }
-                               }
-                               else {
-                                       v->meta_pte_bytes_per_frame_y = 0.0;
-                                       v->meta_row_bytes_y = 0.0;
+                               } else {
+                                       v->meta_pte_bytes_per_frame_y = 0.0f;
+                                       v->meta_row_bytes_y = 0.0f;
                                }
                                if (v->pte_enable == dcn_bw_yes) {
                                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                                               v->macro_tile_block_size_bytes_y = 256.0;
-                                               v->macro_tile_block_height_y = 1.0;
-                                       }
-                                       else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
-                                               v->macro_tile_block_size_bytes_y = 4096.0;
-                                               v->macro_tile_block_height_y = 4.0 * v->read256_block_height_y[k];
-                                       }
-                                       else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
-                                               v->macro_tile_block_size_bytes_y = 64.0 * 1024;
-                                               v->macro_tile_block_height_y = 16.0 * v->read256_block_height_y[k];
-                                       }
-                                       else {
-                                               v->macro_tile_block_size_bytes_y = 256.0 * 1024;
-                                               v->macro_tile_block_height_y = 32.0 * v->read256_block_height_y[k];
+                                               v->macro_tile_block_size_bytes_y = 256.0f;
+                                               v->macro_tile_block_height_y = 1.0f;
+                                       } else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
+                                               v->macro_tile_block_size_bytes_y = 4096.0f;
+                                               v->macro_tile_block_height_y = 4.0f * v->read256_block_height_y[k];
+                                       } else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
+                                               v->macro_tile_block_size_bytes_y = 64.0f * 1024;
+                                               v->macro_tile_block_height_y = 16.0f * v->read256_block_height_y[k];
+                                       } else {
+                                               v->macro_tile_block_size_bytes_y = 256.0f * 1024;
+                                               v->macro_tile_block_height_y = 32.0f * v->read256_block_height_y[k];
                                        }
-                                       if (v->macro_tile_block_size_bytes_y <= 65536.0) {
+                                       if (v->macro_tile_block_size_bytes_y <= 65536.0f) {
                                                v->data_pte_req_height_y = v->macro_tile_block_height_y;
+                                       } else {
+                                               v->data_pte_req_height_y = 16.0f * v->read256_block_height_y[k];
                                        }
-                                       else {
-                                               v->data_pte_req_height_y = 16.0 * v->read256_block_height_y[k];
-                                       }
-                                       v->data_pte_req_width_y = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) / v->data_pte_req_height_y * 8;
+                                       v->data_pte_req_width_y = 4096.0f / dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) / v->data_pte_req_height_y * 8;
                                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                                               v->dpte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_width[k] / 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_buffer_size_in_requests * v->data_pte_req_width_y / (v->viewport_width[k] / v->no_of_dpp[i][j][k]), 2.0), 1.0))) - 1.0) / v->data_pte_req_width_y, 1.0) + 1);
-                                       }
-                                       else if (v->source_scan[k] == dcn_bw_hor) {
-                                               v->dpte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] - 1.0) / v->data_pte_req_width_y, 1.0) + 1);
-                                       }
-                                       else {
-                                               v->dpte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] - 1.0) / v->data_pte_req_height_y, 1.0) + 1);
+                                               v->dpte_bytes_per_row_y = 64.0f * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] * dcn_bw_min2(128.0f, dcn_bw_pow(2.0f, dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_requests * v->data_pte_req_width_y / (v->viewport_width[k] / v->no_of_dpp[i][j][k]), 2.0f), 1.0f))) - 1.0f) / v->data_pte_req_width_y, 1.0f) + 1);
+                                       } else if (v->source_scan[k] == dcn_bw_hor) {
+                                               v->dpte_bytes_per_row_y = 64.0f * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] - 1.0f) / v->data_pte_req_width_y, 1.0f) + 1);
+                                       } else {
+                                               v->dpte_bytes_per_row_y = 64.0f * (dcn_bw_ceil2((v->viewport_height[k] - 1.0f) / v->data_pte_req_height_y, 1.0f) + 1);
                                        }
-                               }
-                               else {
-                                       v->dpte_bytes_per_row_y = 0.0;
+                               } else {
+                                       v->dpte_bytes_per_row_y = 0.0f;
                                }
                                if ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_32 && v->source_pixel_format[k] != dcn_bw_rgb_sub_16)) {
                                        if (v->dcc_enable[k] == dcn_bw_yes) {
-                                               v->meta_req_height_c = 8.0 * v->read256_block_height_c[k];
-                                               v->meta_req_width_c = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->meta_req_height_c;
-                                               v->meta_surface_width_c =dcn_bw_ceil2(v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0 - 1.0, v->meta_req_width_c) + v->meta_req_width_c;
-                                               v->meta_surface_height_c =dcn_bw_ceil2(v->viewport_height[k] / 2.0 - 1.0, v->meta_req_height_c) + v->meta_req_height_c;
+                                               v->meta_req_height_c = 8.0f * v->read256_block_height_c[k];
+                                               v->meta_req_width_c = 64.0f * 256.0f / dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / v->meta_req_height_c;
+                                               v->meta_surface_width_c = dcn_bw_ceil2(v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0f - 1.0f, v->meta_req_width_c) + v->meta_req_width_c;
+                                               v->meta_surface_height_c = dcn_bw_ceil2(v->viewport_height[k] / 2.0f - 1.0f, v->meta_req_height_c) + v->meta_req_height_c;
                                                if (v->pte_enable == dcn_bw_yes) {
-                                                       v->meta_pte_bytes_per_frame_c = (dcn_bw_ceil2((v->meta_surface_width_c * v->meta_surface_height_c *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 256.0 - 4096.0) / 8.0 / 4096.0, 1.0) + 1) * 64.0;
-                                               }
-                                               else {
-                                                       v->meta_pte_bytes_per_frame_c = 0.0;
+                                                       v->meta_pte_bytes_per_frame_c = (dcn_bw_ceil2((v->meta_surface_width_c * v->meta_surface_height_c * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 256.0f - 4096.0f) / 8.0f / 4096.0f, 1.0f) + 1) * 64.0f;
+                                               } else {
+                                                       v->meta_pte_bytes_per_frame_c = 0.0f;
                                                }
                                                if (v->source_scan[k] == dcn_bw_hor) {
-                                                       v->meta_row_bytes_c = v->meta_surface_width_c * v->meta_req_height_c *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 256.0;
-                                               }
-                                               else {
-                                                       v->meta_row_bytes_c = v->meta_surface_height_c * v->meta_req_width_c *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 256.0;
+                                                       v->meta_row_bytes_c = v->meta_surface_width_c * v->meta_req_height_c * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 256.0f;
+                                               } else {
+                                                       v->meta_row_bytes_c = v->meta_surface_height_c * v->meta_req_width_c * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 256.0f;
                                                }
-                                       }
-                                       else {
-                                               v->meta_pte_bytes_per_frame_c = 0.0;
-                                               v->meta_row_bytes_c = 0.0;
+                                       } else {
+                                               v->meta_pte_bytes_per_frame_c = 0.0f;
+                                               v->meta_row_bytes_c = 0.0f;
                                        }
                                        if (v->pte_enable == dcn_bw_yes) {
                                                if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                                                       v->macro_tile_block_size_bytes_c = 256.0;
-                                                       v->macro_tile_block_height_c = 1.0;
-                                               }
-                                               else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
-                                                       v->macro_tile_block_size_bytes_c = 4096.0;
-                                                       v->macro_tile_block_height_c = 4.0 * v->read256_block_height_c[k];
+                                                       v->macro_tile_block_size_bytes_c = 256.0f;
+                                                       v->macro_tile_block_height_c = 1.0f;
+                                               } else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
+                                                       v->macro_tile_block_size_bytes_c = 4096.0f;
+                                                       v->macro_tile_block_height_c = 4.0f * v->read256_block_height_c[k];
+                                               } else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
+                                                       v->macro_tile_block_size_bytes_c = 64.0f * 1024;
+                                                       v->macro_tile_block_height_c = 16.0f * v->read256_block_height_c[k];
+                                               } else {
+                                                       v->macro_tile_block_size_bytes_c = 256.0f * 1024;
+                                                       v->macro_tile_block_height_c = 32.0f * v->read256_block_height_c[k];
                                                }
-                                               else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
-                                                       v->macro_tile_block_size_bytes_c = 64.0 * 1024;
-                                                       v->macro_tile_block_height_c = 16.0 * v->read256_block_height_c[k];
-                                               }
-                                               else {
-                                                       v->macro_tile_block_size_bytes_c = 256.0 * 1024;
-                                                       v->macro_tile_block_height_c = 32.0 * v->read256_block_height_c[k];
-                                               }
-                                               v->macro_tile_block_width_c = v->macro_tile_block_size_bytes_c /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->macro_tile_block_height_c;
-                                               if (v->macro_tile_block_size_bytes_c <= 65536.0) {
+                                               v->macro_tile_block_width_c = v->macro_tile_block_size_bytes_c / dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / v->macro_tile_block_height_c;
+                                               if (v->macro_tile_block_size_bytes_c <= 65536.0f) {
                                                        v->data_pte_req_height_c = v->macro_tile_block_height_c;
+                                               } else {
+                                                       v->data_pte_req_height_c = 16.0f * v->read256_block_height_c[k];
                                                }
-                                               else {
-                                                       v->data_pte_req_height_c = 16.0 * v->read256_block_height_c[k];
-                                               }
-                                               v->data_pte_req_width_c = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / v->data_pte_req_height_c * 8;
+                                               v->data_pte_req_width_c = 4096.0f / dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / v->data_pte_req_height_c * 8;
                                                if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                                                       v->dpte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_width[k] / 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->pte_buffer_size_in_requests * v->data_pte_req_width_c / (v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0), 2.0), 1.0))) - 1.0) / v->data_pte_req_width_c, 1.0) + 1);
-                                               }
-                                               else if (v->source_scan[k] == dcn_bw_hor) {
-                                                       v->dpte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0 - 1.0) / v->data_pte_req_width_c, 1.0) + 1);
+                                                       v->dpte_bytes_per_row_c = 64.0f * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0f * dcn_bw_min2(128.0f, dcn_bw_pow(2.0f, dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_requests * v->data_pte_req_width_c / (v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0f), 2.0f), 1.0f))) - 1.0f) / v->data_pte_req_width_c, 1.0f) + 1);
+                                               } else if (v->source_scan[k] == dcn_bw_hor) {
+                                                       v->dpte_bytes_per_row_c = 64.0f * (dcn_bw_ceil2((v->viewport_width[k] / v->no_of_dpp[i][j][k] / 2.0f - 1.0f) / v->data_pte_req_width_c, 1.0f) + 1);
+                                               } else {
+                                                       v->dpte_bytes_per_row_c = 64.0f * (dcn_bw_ceil2((v->viewport_height[k] / 2.0f - 1.0f) / v->data_pte_req_height_c, 1.0f) + 1);
                                                }
-                                               else {
-                                                       v->dpte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] / 2.0 - 1.0) / v->data_pte_req_height_c, 1.0) + 1);
-                                               }
-                                       }
-                                       else {
-                                               v->dpte_bytes_per_row_c = 0.0;
+                                       } else {
+                                               v->dpte_bytes_per_row_c = 0.0f;
                                        }
-                               }
-                               else {
-                                       v->dpte_bytes_per_row_c = 0.0;
-                                       v->meta_pte_bytes_per_frame_c = 0.0;
-                                       v->meta_row_bytes_c = 0.0;
+                               } else {
+                                       v->dpte_bytes_per_row_c = 0.0f;
+                                       v->meta_pte_bytes_per_frame_c = 0.0f;
+                                       v->meta_row_bytes_c = 0.0f;
                                }
                                v->dpte_bytes_per_row[k] = v->dpte_bytes_per_row_y + v->dpte_bytes_per_row_c;
                                v->meta_pte_bytes_per_frame[k] = v->meta_pte_bytes_per_frame_y + v->meta_pte_bytes_per_frame_c;
                                v->meta_row_bytes[k] = v->meta_row_bytes_y + v->meta_row_bytes_c;
-                               v->v_init_y = (v->v_ratio[k] + v->vtaps[k] + 1.0 + v->interlace_output[k] * 0.5 * v->v_ratio[k]) / 2.0;
-                               v->prefill_y[k] =dcn_bw_floor2(v->v_init_y, 1.0);
-                               v->max_num_sw_y[k] =dcn_bw_ceil2((v->prefill_y[k] - 1.0) / v->swath_height_yper_state[i][j][k], 1.0) + 1;
-                               if (v->prefill_y[k] > 1.0) {
-                                       v->max_partial_sw_y =dcn_bw_mod((v->prefill_y[k] - 2.0), v->swath_height_yper_state[i][j][k]);
-                               }
-                               else {
-                                       v->max_partial_sw_y =dcn_bw_mod((v->prefill_y[k] + v->swath_height_yper_state[i][j][k] - 2.0), v->swath_height_yper_state[i][j][k]);
-                               }
-                               v->max_partial_sw_y =dcn_bw_max2(1.0, v->max_partial_sw_y);
+                               v->v_init_y = (v->v_ratio[k] + v->vtaps[k] + 1.0f + v->interlace_output[k] * 0.5f * v->v_ratio[k]) / 2.0f;
+                               v->prefill_y[k] = dcn_bw_floor2(v->v_init_y, 1.0f);
+                               v->max_num_sw_y[k] = dcn_bw_ceil2((v->prefill_y[k] - 1.0f) / v->swath_height_yper_state[i][j][k], 1.0f) + 1;
+                               if (v->prefill_y[k] > 1.0f) {
+                                       v->max_partial_sw_y = dcn_bw_mod((v->prefill_y[k] - 2.0f), v->swath_height_yper_state[i][j][k]);
+                               } else {
+                                       v->max_partial_sw_y = dcn_bw_mod((v->prefill_y[k] + v->swath_height_yper_state[i][j][k] - 2.0f), v->swath_height_yper_state[i][j][k]);
+                               }
+                               v->max_partial_sw_y = dcn_bw_max2(1.0f, v->max_partial_sw_y);
                                v->prefetch_lines_y[k] = v->max_num_sw_y[k] * v->swath_height_yper_state[i][j][k] + v->max_partial_sw_y;
                                if ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_32 && v->source_pixel_format[k] != dcn_bw_rgb_sub_16)) {
-                                       v->v_init_c = (v->v_ratio[k] / 2.0 + v->vtaps[k] + 1.0 + v->interlace_output[k] * 0.5 * v->v_ratio[k] / 2.0) / 2.0;
-                                       v->prefill_c[k] =dcn_bw_floor2(v->v_init_c, 1.0);
-                                       v->max_num_sw_c[k] =dcn_bw_ceil2((v->prefill_c[k] - 1.0) / v->swath_height_cper_state[i][j][k], 1.0) + 1;
-                                       if (v->prefill_c[k] > 1.0) {
-                                               v->max_partial_sw_c =dcn_bw_mod((v->prefill_c[k] - 2.0), v->swath_height_cper_state[i][j][k]);
-                                       }
-                                       else {
-                                               v->max_partial_sw_c =dcn_bw_mod((v->prefill_c[k] + v->swath_height_cper_state[i][j][k] - 2.0), v->swath_height_cper_state[i][j][k]);
+                                       v->v_init_c = (v->v_ratio[k] / 2.0f + v->vtaps[k] + 1.0f + v->interlace_output[k] * 0.5f * v->v_ratio[k] / 2.0f) / 2.0f;
+                                       v->prefill_c[k] = dcn_bw_floor2(v->v_init_c, 1.0f);
+                                       v->max_num_sw_c[k] = dcn_bw_ceil2((v->prefill_c[k] - 1.0f) / v->swath_height_cper_state[i][j][k], 1.0f) + 1;
+                                       if (v->prefill_c[k] > 1.0f) {
+                                               v->max_partial_sw_c = dcn_bw_mod((v->prefill_c[k] - 2.0f), v->swath_height_cper_state[i][j][k]);
+                                       } else {
+                                               v->max_partial_sw_c = dcn_bw_mod((v->prefill_c[k] + v->swath_height_cper_state[i][j][k] - 2.0f), v->swath_height_cper_state[i][j][k]);
                                        }
-                                       v->max_partial_sw_c =dcn_bw_max2(1.0, v->max_partial_sw_c);
+                                       v->max_partial_sw_c = dcn_bw_max2(1.0f, v->max_partial_sw_c);
                                        v->prefetch_lines_c[k] = v->max_num_sw_c[k] * v->swath_height_cper_state[i][j][k] + v->max_partial_sw_c;
+                               } else {
+                                       v->prefetch_lines_c[k] = 0.0f;
                                }
-                               else {
-                                       v->prefetch_lines_c[k] = 0.0;
-                               }
-                               v->dst_x_after_scaler = 90.0 * v->pixel_clock[k] / (v->required_dispclk[i][j] / (j + 1)) + 42.0 * v->pixel_clock[k] / v->required_dispclk[i][j];
-                               if (v->no_of_dpp[i][j][k] > 1.0) {
-                                       v->dst_x_after_scaler = v->dst_x_after_scaler + v->scaler_rec_out_width[k] / 2.0;
+                               v->dst_x_after_scaler = 90.0f * v->pixel_clock[k] / (v->required_dispclk[i][j] / (j + 1)) + 42.0f * v->pixel_clock[k] / v->required_dispclk[i][j];
+                               if (v->no_of_dpp[i][j][k] > 1.0f) {
+                                       v->dst_x_after_scaler = v->dst_x_after_scaler + v->scaler_rec_out_width[k] / 2.0f;
                                }
                                if (v->output_format[k] == dcn_bw_420) {
-                                       v->dst_y_after_scaler = 1.0;
-                               }
-                               else {
-                                       v->dst_y_after_scaler = 0.0;
-                               }
-                               v->time_calc = 24.0 / v->projected_dcfclk_deep_sleep;
-                               v->v_update_offset[k][j] = dcn_bw_ceil2(v->htotal[k] / 4.0, 1.0);
-                               v->total_repeater_delay = v->max_inter_dcn_tile_repeaters * (2.0 / (v->required_dispclk[i][j] / (j + 1)) + 3.0 / v->required_dispclk[i][j]);
-                               v->v_update_width[k][j] = (14.0 / v->projected_dcfclk_deep_sleep + 12.0 / (v->required_dispclk[i][j] / (j + 1)) + v->total_repeater_delay) * v->pixel_clock[k];
-                               v->v_ready_offset[k][j] = dcn_bw_max2(150.0 / (v->required_dispclk[i][j] / (j + 1)), v->total_repeater_delay + 20.0 / v->projected_dcfclk_deep_sleep + 10.0 / (v->required_dispclk[i][j] / (j + 1))) * v->pixel_clock[k];
+                                       v->dst_y_after_scaler = 1.0f;
+                               } else {
+                                       v->dst_y_after_scaler = 0.0f;
+                               }
+                               v->time_calc = 24.0f / v->projected_dcfclk_deep_sleep;
+                               v->v_update_offset[k][j] = dcn_bw_ceil2(v->htotal[k] / 4.0f, 1.0f);
+                               v->total_repeater_delay = v->max_inter_dcn_tile_repeaters * (2.0f / (v->required_dispclk[i][j] / (j + 1)) + 3.0f / v->required_dispclk[i][j]);
+                               v->v_update_width[k][j] = (14.0f / v->projected_dcfclk_deep_sleep + 12.0f / (v->required_dispclk[i][j] / (j + 1)) + v->total_repeater_delay) * v->pixel_clock[k];
+                               v->v_ready_offset[k][j] = dcn_bw_max2(150.0f / (v->required_dispclk[i][j] / (j + 1)), v->total_repeater_delay + 20.0f / v->projected_dcfclk_deep_sleep + 10.0f / (v->required_dispclk[i][j] / (j + 1))) * v->pixel_clock[k];
                                v->time_setup = (v->v_update_offset[k][j] + v->v_update_width[k][j] + v->v_ready_offset[k][j]) / v->pixel_clock[k];
-                               v->extra_latency = v->urgent_round_trip_and_out_of_order_latency_per_state[i] + (v->total_number_of_active_dpp[i][j] * v->pixel_chunk_size_in_kbyte + v->total_number_of_dcc_active_dpp[i][j] * v->meta_chunk_size) * 1024.0 / v->return_bw_per_state[i];
+                               v->extra_latency = v->urgent_round_trip_and_out_of_order_latency_per_state[i] + (v->total_number_of_active_dpp[i][j] * v->pixel_chunk_size_in_kbyte + v->total_number_of_dcc_active_dpp[i][j] * v->meta_chunk_size) * 1024.0f / v->return_bw_per_state[i];
                                if (v->pte_enable == dcn_bw_yes) {
-                                       v->extra_latency = v->extra_latency + v->total_number_of_active_dpp[i][j] * v->pte_chunk_size * 1024.0 / v->return_bw_per_state[i];
+                                       v->extra_latency = v->extra_latency + v->total_number_of_active_dpp[i][j] * v->pte_chunk_size * 1024.0f / v->return_bw_per_state[i];
                                }
                                if (v->can_vstartup_lines_exceed_vsync_plus_back_porch_lines_minus_one == dcn_bw_yes) {
-                                       v->maximum_vstartup = v->vtotal[k] - v->vactive[k] - 1.0;
-                               }
-                               else {
-                                       v->maximum_vstartup = v->v_sync_plus_back_porch[k] - 1.0;
+                                       v->maximum_vstartup = v->vtotal[k] - v->vactive[k] - 1.0f;
+                               } else {
+                                       v->maximum_vstartup = v->v_sync_plus_back_porch[k] - 1.0f;
                                }
 
                                do {
                                        v->line_times_for_prefetch[k] = v->maximum_vstartup - v->urgent_latency / (v->htotal[k] / v->pixel_clock[k]) - (v->time_calc + v->time_setup) / (v->htotal[k] / v->pixel_clock[k]) - (v->dst_y_after_scaler + v->dst_x_after_scaler / v->htotal[k]);
-                                       v->line_times_for_prefetch[k] =dcn_bw_floor2(4.0 * (v->line_times_for_prefetch[k] + 0.125), 1.0) / 4;
-                                       v->prefetch_bw[k] = (v->meta_pte_bytes_per_frame[k] + 2.0 * v->meta_row_bytes[k] + 2.0 * v->dpte_bytes_per_row[k] + v->prefetch_lines_y[k] * v->swath_width_yper_state[i][j][k] *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) + v->prefetch_lines_c[k] * v->swath_width_yper_state[i][j][k] / 2.0 *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0)) / (v->line_times_for_prefetch[k] * v->htotal[k] / v->pixel_clock[k]);
+                                       v->line_times_for_prefetch[k] = dcn_bw_floor2(4.0f * (v->line_times_for_prefetch[k] + 0.125f), 1.0f) / 4;
+                                       v->prefetch_bw[k] = (v->meta_pte_bytes_per_frame[k] + 2.0f * v->meta_row_bytes[k] + 2.0f * v->dpte_bytes_per_row[k] + v->prefetch_lines_y[k] * v->swath_width_yper_state[i][j][k] * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) + v->prefetch_lines_c[k] * v->swath_width_yper_state[i][j][k] / 2.0f * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f)) / (v->line_times_for_prefetch[k] * v->htotal[k] / v->pixel_clock[k]);
 
                                        if (v->pte_enable == dcn_bw_yes && v->dcc_enable[k] == dcn_bw_yes) {
                                                v->time_for_meta_pte_without_immediate_flip = dcn_bw_max3(
                                                                v->meta_pte_bytes_frame[k] / v->prefetch_bw[k],
                                                                v->extra_latency,
-                                                               v->htotal[k] / v->pixel_clock[k] / 4.0);
+                                                               v->htotal[k] / v->pixel_clock[k] / 4.0f);
                                        } else {
-                                               v->time_for_meta_pte_without_immediate_flip = v->htotal[k] / v->pixel_clock[k] / 4.0;
+                                               v->time_for_meta_pte_without_immediate_flip = v->htotal[k] / v->pixel_clock[k] / 4.0f;
                                        }
 
                                        if (v->pte_enable == dcn_bw_yes || v->dcc_enable[k] == dcn_bw_yes) {
@@ -823,11 +737,11 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                                                                v->extra_latency - v->time_for_meta_pte_with_immediate_flip);
                                        }
 
-                                       v->lines_for_meta_pte_without_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_pte_without_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125), 1.0) / 4;
-                                       v->lines_for_meta_and_dpte_row_without_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_and_dpte_row_without_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125), 1.0) / 4;
+                                       v->lines_for_meta_pte_without_immediate_flip[k] = dcn_bw_floor2(4.0f * (v->time_for_meta_pte_without_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125f), 1.0f) / 4;
+                                       v->lines_for_meta_and_dpte_row_without_immediate_flip[k] = dcn_bw_floor2(4.0f * (v->time_for_meta_and_dpte_row_without_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125f), 1.0f) / 4;
                                        v->maximum_vstartup = v->maximum_vstartup - 1;
 
-                                       if (v->lines_for_meta_pte_without_immediate_flip[k] < 32.0 && v->lines_for_meta_and_dpte_row_without_immediate_flip[k] < 16.0)
+                                       if (v->lines_for_meta_pte_without_immediate_flip[k] < 32.0f && v->lines_for_meta_and_dpte_row_without_immediate_flip[k] < 16.0f)
                                                break;
 
                                } while(1);
@@ -837,100 +751,91 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                                v->bw_available_for_immediate_flip = v->bw_available_for_immediate_flip -dcn_bw_max2(v->read_bandwidth[k], v->prefetch_bw[k]);
                        }
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               v->total_immediate_flip_bytes[k] = 0.0;
+                               v->total_immediate_flip_bytes[k] = 0.0f;
                                if ((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
                                        v->total_immediate_flip_bytes[k] = v->total_immediate_flip_bytes[k] + v->meta_pte_bytes_per_frame[k] + v->meta_row_bytes[k] + v->dpte_bytes_per_row[k];
                                }
                        }
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                if (v->pte_enable == dcn_bw_yes && v->dcc_enable[k] == dcn_bw_yes) {
-                                       v->time_for_meta_pte_with_immediate_flip =dcn_bw_max5(v->meta_pte_bytes_per_frame[k] / v->prefetch_bw[k], v->meta_pte_bytes_per_frame[k] * v->total_immediate_flip_bytes[k] / (v->bw_available_for_immediate_flip * (v->meta_pte_bytes_per_frame[k] + v->meta_row_bytes[k] + v->dpte_bytes_per_row[k])), v->extra_latency, v->urgent_latency, v->htotal[k] / v->pixel_clock[k] / 4.0);
-                               }
-                               else {
-                                       v->time_for_meta_pte_with_immediate_flip = v->htotal[k] / v->pixel_clock[k] / 4.0;
+                                       v->time_for_meta_pte_with_immediate_flip = dcn_bw_max5(v->meta_pte_bytes_per_frame[k] / v->prefetch_bw[k], v->meta_pte_bytes_per_frame[k] * v->total_immediate_flip_bytes[k] / (v->bw_available_for_immediate_flip * (v->meta_pte_bytes_per_frame[k] + v->meta_row_bytes[k] + v->dpte_bytes_per_row[k])), v->extra_latency, v->urgent_latency, v->htotal[k] / v->pixel_clock[k] / 4.0f);
+                               } else {
+                                       v->time_for_meta_pte_with_immediate_flip = v->htotal[k] / v->pixel_clock[k] / 4.0f;
                                }
                                if (v->pte_enable == dcn_bw_yes || v->dcc_enable[k] == dcn_bw_yes) {
-                                       v->time_for_meta_and_dpte_row_with_immediate_flip =dcn_bw_max5((v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) / v->prefetch_bw[k], (v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) * v->total_immediate_flip_bytes[k] / (v->bw_available_for_immediate_flip * (v->meta_pte_bytes_per_frame[k] + v->meta_row_bytes[k] + v->dpte_bytes_per_row[k])), v->htotal[k] / v->pixel_clock[k] - v->time_for_meta_pte_with_immediate_flip, v->extra_latency, 2.0 * v->urgent_latency);
+                                       v->time_for_meta_and_dpte_row_with_immediate_flip = dcn_bw_max5((v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) / v->prefetch_bw[k], (v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) * v->total_immediate_flip_bytes[k] / (v->bw_available_for_immediate_flip * (v->meta_pte_bytes_per_frame[k] + v->meta_row_bytes[k] + v->dpte_bytes_per_row[k])), v->htotal[k] / v->pixel_clock[k] - v->time_for_meta_pte_with_immediate_flip, v->extra_latency, 2.0f * v->urgent_latency);
+                               } else {
+                                       v->time_for_meta_and_dpte_row_with_immediate_flip = dcn_bw_max2(v->htotal[k] / v->pixel_clock[k] - v->time_for_meta_pte_with_immediate_flip, v->extra_latency - v->time_for_meta_pte_with_immediate_flip);
                                }
-                               else {
-                                       v->time_for_meta_and_dpte_row_with_immediate_flip =dcn_bw_max2(v->htotal[k] / v->pixel_clock[k] - v->time_for_meta_pte_with_immediate_flip, v->extra_latency - v->time_for_meta_pte_with_immediate_flip);
-                               }
-                               v->lines_for_meta_pte_with_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_pte_with_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125), 1.0) / 4;
-                               v->lines_for_meta_and_dpte_row_with_immediate_flip[k] =dcn_bw_floor2(4.0 * (v->time_for_meta_and_dpte_row_with_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125), 1.0) / 4;
+                               v->lines_for_meta_pte_with_immediate_flip[k] = dcn_bw_floor2(4.0f * (v->time_for_meta_pte_with_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125f), 1.0f) / 4;
+                               v->lines_for_meta_and_dpte_row_with_immediate_flip[k] = dcn_bw_floor2(4.0f * (v->time_for_meta_and_dpte_row_with_immediate_flip / (v->htotal[k] / v->pixel_clock[k]) + 0.125f), 1.0f) / 4;
                                v->line_times_to_request_prefetch_pixel_data_with_immediate_flip = v->line_times_for_prefetch[k] - v->lines_for_meta_pte_with_immediate_flip[k] - v->lines_for_meta_and_dpte_row_with_immediate_flip[k];
                                v->line_times_to_request_prefetch_pixel_data_without_immediate_flip = v->line_times_for_prefetch[k] - v->lines_for_meta_pte_without_immediate_flip[k] - v->lines_for_meta_and_dpte_row_without_immediate_flip[k];
-                               if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip > 0.0) {
+                               if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip > 0.0f) {
                                        v->v_ratio_pre_ywith_immediate_flip[i][j][k] = v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_data_with_immediate_flip;
-                                       if ((v->swath_height_yper_state[i][j][k] > 4.0)) {
-                                               if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_y[k] - 3.0) / 2.0 > 0.0) {
-                                                       v->v_ratio_pre_ywith_immediate_flip[i][j][k] =dcn_bw_max2(v->v_ratio_pre_ywith_immediate_flip[i][j][k], (v->max_num_sw_y[k] * v->swath_height_yper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_y[k] - 3.0) / 2.0));
-                                               }
-                                               else {
-                                                       v->v_ratio_pre_ywith_immediate_flip[i][j][k] = 999999.0;
+                                       if ((v->swath_height_yper_state[i][j][k] > 4.0f)) {
+                                               if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_y[k] - 3.0f) / 2.0f > 0.0f) {
+                                                       v->v_ratio_pre_ywith_immediate_flip[i][j][k] = dcn_bw_max2(v->v_ratio_pre_ywith_immediate_flip[i][j][k], (v->max_num_sw_y[k] * v->swath_height_yper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_y[k] - 3.0f) / 2.0f));
+                                               } else {
+                                                       v->v_ratio_pre_ywith_immediate_flip[i][j][k] = 999999.0f;
                                                }
                                        }
                                        v->v_ratio_pre_cwith_immediate_flip[i][j][k] = v->prefetch_lines_c[k] / v->line_times_to_request_prefetch_pixel_data_with_immediate_flip;
-                                       if ((v->swath_height_cper_state[i][j][k] > 4.0)) {
-                                               if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_c[k] - 3.0) / 2.0 > 0.0) {
-                                                       v->v_ratio_pre_cwith_immediate_flip[i][j][k] =dcn_bw_max2(v->v_ratio_pre_cwith_immediate_flip[i][j][k], (v->max_num_sw_c[k] * v->swath_height_cper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_c[k] - 3.0) / 2.0));
-                                               }
-                                               else {
-                                                       v->v_ratio_pre_cwith_immediate_flip[i][j][k] = 999999.0;
+                                       if ((v->swath_height_cper_state[i][j][k] > 4.0f)) {
+                                               if (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_c[k] - 3.0f) / 2.0f > 0.0f) {
+                                                       v->v_ratio_pre_cwith_immediate_flip[i][j][k] = dcn_bw_max2(v->v_ratio_pre_cwith_immediate_flip[i][j][k], (v->max_num_sw_c[k] * v->swath_height_cper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_with_immediate_flip - (v->prefill_c[k] - 3.0f) / 2.0f));
+                                               } else {
+                                                       v->v_ratio_pre_cwith_immediate_flip[i][j][k] = 999999.0f;
                                                }
                                        }
-                                       v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k] = v->no_of_dpp[i][j][k] * (v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_data_with_immediate_flip *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) + v->prefetch_lines_c[k] / v->line_times_to_request_prefetch_pixel_data_with_immediate_flip *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 2.0) * v->swath_width_yper_state[i][j][k] / (v->htotal[k] / v->pixel_clock[k]);
-                               }
-                               else {
-                                       v->v_ratio_pre_ywith_immediate_flip[i][j][k] = 999999.0;
-                                       v->v_ratio_pre_cwith_immediate_flip[i][j][k] = 999999.0;
-                                       v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k] = 999999.0;
+                                       v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k] = v->no_of_dpp[i][j][k] * (v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_data_with_immediate_flip * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) + v->prefetch_lines_c[k] / v->line_times_to_request_prefetch_pixel_data_with_immediate_flip * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 2.0f) * v->swath_width_yper_state[i][j][k] / (v->htotal[k] / v->pixel_clock[k]);
+                               } else {
+                                       v->v_ratio_pre_ywith_immediate_flip[i][j][k] = 999999.0f;
+                                       v->v_ratio_pre_cwith_immediate_flip[i][j][k] = 999999.0f;
+                                       v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k] = 999999.0f;
                                }
-                               if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip > 0.0) {
+                               if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip > 0.0f) {
                                        v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_data_without_immediate_flip;
-                                       if ((v->swath_height_yper_state[i][j][k] > 4.0)) {
-                                               if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_y[k] - 3.0) / 2.0 > 0.0) {
-                                                       v->v_ratio_pre_ywithout_immediate_flip[i][j][k] =dcn_bw_max2(v->v_ratio_pre_ywithout_immediate_flip[i][j][k], (v->max_num_sw_y[k] * v->swath_height_yper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_y[k] - 3.0) / 2.0));
-                                               }
-                                               else {
-                                                       v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = 999999.0;
+                                       if ((v->swath_height_yper_state[i][j][k] > 4.0f)) {
+                                               if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_y[k] - 3.0f) / 2.0f > 0.0f) {
+                                                       v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = dcn_bw_max2(v->v_ratio_pre_ywithout_immediate_flip[i][j][k], (v->max_num_sw_y[k] * v->swath_height_yper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_y[k] - 3.0f) / 2.0f));
+                                               } else {
+                                                       v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = 999999.0f;
                                                }
                                        }
                                        v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = v->prefetch_lines_c[k] / v->line_times_to_request_prefetch_pixel_data_without_immediate_flip;
-                                       if ((v->swath_height_cper_state[i][j][k] > 4.0)) {
-                                               if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_c[k] - 3.0) / 2.0 > 0.0) {
-                                                       v->v_ratio_pre_cwithout_immediate_flip[i][j][k] =dcn_bw_max2(v->v_ratio_pre_cwithout_immediate_flip[i][j][k], (v->max_num_sw_c[k] * v->swath_height_cper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_c[k] - 3.0) / 2.0));
-                                               }
-                                               else {
-                                                       v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = 999999.0;
+                                       if ((v->swath_height_cper_state[i][j][k] > 4.0f)) {
+                                               if (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_c[k] - 3.0f) / 2.0f > 0.0f) {
+                                                       v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = dcn_bw_max2(v->v_ratio_pre_cwithout_immediate_flip[i][j][k], (v->max_num_sw_c[k] * v->swath_height_cper_state[i][j][k]) / (v->line_times_to_request_prefetch_pixel_data_without_immediate_flip - (v->prefill_c[k] - 3.0f) / 2.0f));
+                                               } else {
+                                                       v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = 999999.0f;
                                                }
                                        }
-                                       v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k] = v->no_of_dpp[i][j][k] * (v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_data_without_immediate_flip *dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) + v->prefetch_lines_c[k] / v->line_times_to_request_prefetch_pixel_data_without_immediate_flip *dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 2.0) * v->swath_width_yper_state[i][j][k] / (v->htotal[k] / v->pixel_clock[k]);
-                               }
-                               else {
-                                       v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = 999999.0;
-                                       v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = 999999.0;
-                                       v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k] = 999999.0;
+                                       v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k] = v->no_of_dpp[i][j][k] * (v->prefetch_lines_y[k] / v->line_times_to_request_prefetch_pixel_data_without_immediate_flip * dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0f) + v->prefetch_lines_c[k] / v->line_times_to_request_prefetch_pixel_data_without_immediate_flip * dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0f) / 2.0f) * v->swath_width_yper_state[i][j][k] / (v->htotal[k] / v->pixel_clock[k]);
+                               } else {
+                                       v->v_ratio_pre_ywithout_immediate_flip[i][j][k] = 999999.0f;
+                                       v->v_ratio_pre_cwithout_immediate_flip[i][j][k] = 999999.0f;
+                                       v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k] = 999999.0f;
                                }
                        }
-                       v->maximum_read_bandwidth_with_prefetch_with_immediate_flip = 0.0;
+                       v->maximum_read_bandwidth_with_prefetch_with_immediate_flip = 0.0f;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                if ((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
-                                       v->maximum_read_bandwidth_with_prefetch_with_immediate_flip = v->maximum_read_bandwidth_with_prefetch_with_immediate_flip +dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k]) +dcn_bw_max2(v->meta_pte_bytes_per_frame[k] / (v->lines_for_meta_pte_with_immediate_flip[k] * v->htotal[k] / v->pixel_clock[k]), (v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) / (v->lines_for_meta_and_dpte_row_with_immediate_flip[k] * v->htotal[k] / v->pixel_clock[k]));
-                               }
-                               else {
-                                       v->maximum_read_bandwidth_with_prefetch_with_immediate_flip = v->maximum_read_bandwidth_with_prefetch_with_immediate_flip +dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k]);
+                                       v->maximum_read_bandwidth_with_prefetch_with_immediate_flip = v->maximum_read_bandwidth_with_prefetch_with_immediate_flip + dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_with_immediate_flip[i][j][k]) + dcn_bw_max2(v->meta_pte_bytes_per_frame[k] / (v->lines_for_meta_pte_with_immediate_flip[k] * v->htotal[k] / v->pixel_clock[k]), (v->meta_row_bytes[k] + v->dpte_bytes_per_row[k]) / (v->lines_for_meta_and_dpte_row_with_immediate_flip[k] * v->htotal[k] / v->pixel_clock[k]));
+                               } else {
+                                       v->maximum_read_bandwidth_with_prefetch_with_immediate_flip = v->maximum_read_bandwidth_with_prefetch_with_immediate_flip + dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k]);
                                }
                        }
-                       v->maximum_read_bandwidth_with_prefetch_without_immediate_flip = 0.0;
+                       v->maximum_read_bandwidth_with_prefetch_without_immediate_flip = 0.0f;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               v->maximum_read_bandwidth_with_prefetch_without_immediate_flip = v->maximum_read_bandwidth_with_prefetch_without_immediate_flip +dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k]);
+                               v->maximum_read_bandwidth_with_prefetch_without_immediate_flip = v->maximum_read_bandwidth_with_prefetch_without_immediate_flip + dcn_bw_max2(v->read_bandwidth[k], v->required_prefetch_pixel_data_bw_without_immediate_flip[i][j][k]);
                        }
                        v->prefetch_supported_with_immediate_flip[i][j] = dcn_bw_yes;
                        if (v->maximum_read_bandwidth_with_prefetch_with_immediate_flip > v->return_bw_per_state[i]) {
                                v->prefetch_supported_with_immediate_flip[i][j] = dcn_bw_no;
                        }
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               if (v->line_times_for_prefetch[k] < 2.0 || v->lines_for_meta_pte_with_immediate_flip[k] >= 8.0 || v->lines_for_meta_and_dpte_row_with_immediate_flip[k] >= 16.0) {
+                               if (v->line_times_for_prefetch[k] < 2.0f || v->lines_for_meta_pte_with_immediate_flip[k] >= 8.0f || v->lines_for_meta_and_dpte_row_with_immediate_flip[k] >= 16.0f) {
                                        v->prefetch_supported_with_immediate_flip[i][j] = dcn_bw_no;
                                }
                        }
@@ -939,7 +844,7 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                                v->prefetch_supported_without_immediate_flip[i][j] = dcn_bw_no;
                        }
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               if (v->line_times_for_prefetch[k] < 2.0 || v->lines_for_meta_pte_without_immediate_flip[k] >= 8.0 || v->lines_for_meta_and_dpte_row_without_immediate_flip[k] >= 16.0) {
+                               if (v->line_times_for_prefetch[k] < 2.0f || v->lines_for_meta_pte_without_immediate_flip[k] >= 8.0f || v->lines_for_meta_and_dpte_row_without_immediate_flip[k] >= 16.0f) {
                                        v->prefetch_supported_without_immediate_flip[i][j] = dcn_bw_no;
                                }
                        }
@@ -949,13 +854,13 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                for (j = 0; j <= 1; j++) {
                        v->v_ratio_in_prefetch_supported_with_immediate_flip[i][j] = dcn_bw_yes;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               if ((((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10) && (v->v_ratio_pre_ywith_immediate_flip[i][j][k] > 4.0 || v->v_ratio_pre_cwith_immediate_flip[i][j][k] > 4.0)) || ((v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 || v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) && (v->v_ratio_pre_ywithout_immediate_flip[i][j][k] > 4.0 || v->v_ratio_pre_cwithout_immediate_flip[i][j][k] > 4.0)))) {
+                               if ((((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10) && (v->v_ratio_pre_ywith_immediate_flip[i][j][k] > 4.0f || v->v_ratio_pre_cwith_immediate_flip[i][j][k] > 4.0f)) || ((v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 || v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) && (v->v_ratio_pre_ywithout_immediate_flip[i][j][k] > 4.0f || v->v_ratio_pre_cwithout_immediate_flip[i][j][k] > 4.0f)))) {
                                        v->v_ratio_in_prefetch_supported_with_immediate_flip[i][j] = dcn_bw_no;
                                }
                        }
                        v->v_ratio_in_prefetch_supported_without_immediate_flip[i][j] = dcn_bw_yes;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               if ((v->v_ratio_pre_ywithout_immediate_flip[i][j][k] > 4.0 || v->v_ratio_pre_cwithout_immediate_flip[i][j][k] > 4.0)) {
+                               if ((v->v_ratio_pre_ywithout_immediate_flip[i][j][k] > 4.0f || v->v_ratio_pre_cwithout_immediate_flip[i][j][k] > 4.0f)) {
                                        v->v_ratio_in_prefetch_supported_without_immediate_flip[i][j] = dcn_bw_no;
                                }
                        }
@@ -968,18 +873,15 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
                        if (v->scale_ratio_support == dcn_bw_yes && v->source_format_pixel_and_scan_support == dcn_bw_yes && v->viewport_size_support == dcn_bw_yes && v->bandwidth_support[i] == dcn_bw_yes && v->dio_support[i] == dcn_bw_yes && v->urgent_latency_support[i][j] == dcn_bw_yes && v->rob_support[i] == dcn_bw_yes && v->dispclk_dppclk_support[i][j] == dcn_bw_yes && v->total_available_pipes_support[i][j] == dcn_bw_yes && v->total_available_writeback_support == dcn_bw_yes && v->writeback_latency_support == dcn_bw_yes) {
                                if (v->prefetch_supported_with_immediate_flip[i][j] == dcn_bw_yes && v->v_ratio_in_prefetch_supported_with_immediate_flip[i][j] == dcn_bw_yes) {
                                        v->mode_support_with_immediate_flip[i][j] = dcn_bw_yes;
-                               }
-                               else {
+                               } else {
                                        v->mode_support_with_immediate_flip[i][j] = dcn_bw_no;
                                }
                                if (v->prefetch_supported_without_immediate_flip[i][j] == dcn_bw_yes && v->v_ratio_in_prefetch_supported_without_immediate_flip[i][j] == dcn_bw_yes) {
                                        v->mode_support_without_immediate_flip[i][j] = dcn_bw_yes;
-                               }
-                               else {
+                               } else {
                                        v->mode_support_without_immediate_flip[i][j] = dcn_bw_no;
                                }
-                       }
-                       else {
+                       } else {
                                v->mode_support_with_immediate_flip[i][j] = dcn_bw_no;
                                v->mode_support_without_immediate_flip[i][j] = dcn_bw_no;
                        }
@@ -987,21 +889,20 @@ void mode_support_and_system_configuration(struct dcn_bw_internal_vars *v)
        }
        for (i = number_of_states_plus_one; i >= 0; i--) {
                if ((i == number_of_states_plus_one || v->mode_support_with_immediate_flip[i][1] == dcn_bw_yes || v->mode_support_with_immediate_flip[i][0] == dcn_bw_yes) && i >= v->voltage_override_level) {
-                       v->voltage_level_with_immediate_flip = i;
+                       v->voltage_level_with_immediate_flip = (float)i;
                }
        }
        for (i = number_of_states_plus_one; i >= 0; i--) {
                if ((i == number_of_states_plus_one || v->mode_support_without_immediate_flip[i][1] == dcn_bw_yes || v->mode_support_without_immediate_flip[i][0] == dcn_bw_yes) && i >= v->voltage_override_level) {
-                       v->voltage_level_without_immediate_flip = i;
+                       v->voltage_level_without_immediate_flip = (float)i;
                }
        }
        if (v->voltage_level_with_immediate_flip == number_of_states_plus_one) {
                v->immediate_flip_supported = dcn_bw_no;
-               v->voltage_level = v->voltage_level_without_immediate_flip;
-       }
-       else {
+               v->voltage_level = (int)v->voltage_level_without_immediate_flip;
+       } else {
                v->immediate_flip_supported = dcn_bw_yes;
-               v->voltage_level = v->voltage_level_with_immediate_flip;
+               v->voltage_level = (int)v->voltage_level_with_immediate_flip;
        }
        v->dcfclk = v->dcfclk_per_state[v->voltage_level];
        v->fabric_and_dram_bandwidth = v->fabric_and_dram_bandwidth_per_state[v->voltage_level];
@@ -1021,16 +922,15 @@ void display_pipe_configuration(struct dcn_bw_internal_vars *v)
        /*display pipe configuration*/
 
        for (j = 0; j <= 1; j++) {
-               v->total_number_of_active_dpp_per_ratio[j] = 0.0;
+               v->total_number_of_active_dpp_per_ratio[j] = 0.0f;
                for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                        v->total_number_of_active_dpp_per_ratio[j] = v->total_number_of_active_dpp_per_ratio[j] + v->dpp_per_plane_per_ratio[j][k];
                }
        }
-       if ((v->dispclk_dppclk_support_per_ratio[0] == dcn_bw_yes && v->dispclk_dppclk_support_per_ratio[1] == dcn_bw_no) || (v->dispclk_dppclk_support_per_ratio[0] == v->dispclk_dppclk_support_per_ratio[1] && (v->total_number_of_active_dpp_per_ratio[0] < v->total_number_of_active_dpp_per_ratio[1] || (((v->total_number_of_active_dpp_per_ratio[0] == v->total_number_of_active_dpp_per_ratio[1]) && v->required_dispclk_per_ratio[0] <= 0.5 * v->required_dispclk_per_ratio[1]))))) {
+       if ((v->dispclk_dppclk_support_per_ratio[0] == dcn_bw_yes && v->dispclk_dppclk_support_per_ratio[1] == dcn_bw_no) || (v->dispclk_dppclk_support_per_ratio[0] == v->dispclk_dppclk_support_per_ratio[1] && (v->total_number_of_active_dpp_per_ratio[0] < v->total_number_of_active_dpp_per_ratio[1] || (((v->total_number_of_active_dpp_per_ratio[0] == v->total_number_of_active_dpp_per_ratio[1]) && v->required_dispclk_per_ratio[0] <= 0.5f * v->required_dispclk_per_ratio[1]))))) {
                v->dispclk_dppclk_ratio = 1;
                v->final_error_message = v->error_message[0];
-       }
-       else {
+       } else {
                v->dispclk_dppclk_ratio = 2;
                v->final_error_message = v->error_message[1];
        }
@@ -1039,137 +939,116 @@ void display_pipe_configuration(struct dcn_bw_internal_vars *v)
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                       v->byte_per_pix_dety = 8.0;
-                       v->byte_per_pix_detc = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
-                       v->byte_per_pix_dety = 4.0;
-                       v->byte_per_pix_detc = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
-                       v->byte_per_pix_dety = 2.0;
-                       v->byte_per_pix_detc = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                       v->byte_per_pix_dety = 1.0;
-                       v->byte_per_pix_detc = 2.0;
-               }
-               else {
+                       v->byte_per_pix_dety = 8.0f;
+                       v->byte_per_pix_detc = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
+                       v->byte_per_pix_dety = 4.0f;
+                       v->byte_per_pix_detc = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
+                       v->byte_per_pix_dety = 2.0f;
+                       v->byte_per_pix_detc = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
+                       v->byte_per_pix_dety = 1.0f;
+                       v->byte_per_pix_detc = 2.0f;
+               } else {
                        v->byte_per_pix_dety = 4.0f / 3.0f;
                        v->byte_per_pix_detc = 8.0f / 3.0f;
                }
                if ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32 || v->source_pixel_format[k] == dcn_bw_rgb_sub_16)) {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->read256_bytes_block_height_y = 1.0;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                               v->read256_bytes_block_height_y = 4.0;
-                       }
-                       else {
-                               v->read256_bytes_block_height_y = 8.0;
-                       }
-                       v->read256_bytes_block_width_y = 256.0 /dcn_bw_ceil2(v->byte_per_pix_dety, 1.0) / v->read256_bytes_block_height_y;
-                       v->read256_bytes_block_height_c = 0.0;
-                       v->read256_bytes_block_width_c = 0.0;
-               }
-               else {
+                               v->read256_bytes_block_height_y = 1.0f;
+                       } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
+                               v->read256_bytes_block_height_y = 4.0f;
+                       } else {
+                               v->read256_bytes_block_height_y = 8.0f;
+                       }
+                       v->read256_bytes_block_width_y = 256.0f / dcn_bw_ceil2(v->byte_per_pix_dety, 1.0f) / v->read256_bytes_block_height_y;
+                       v->read256_bytes_block_height_c = 0.0f;
+                       v->read256_bytes_block_width_c = 0.0f;
+               } else {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->read256_bytes_block_height_y = 1.0;
-                               v->read256_bytes_block_height_c = 1.0;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                               v->read256_bytes_block_height_y = 16.0;
-                               v->read256_bytes_block_height_c = 8.0;
-                       }
-                       else {
-                               v->read256_bytes_block_height_y = 8.0;
-                               v->read256_bytes_block_height_c = 8.0;
-                       }
-                       v->read256_bytes_block_width_y = 256.0 /dcn_bw_ceil2(v->byte_per_pix_dety, 1.0) / v->read256_bytes_block_height_y;
-                       v->read256_bytes_block_width_c = 256.0 /dcn_bw_ceil2(v->byte_per_pix_detc, 2.0) / v->read256_bytes_block_height_c;
+                               v->read256_bytes_block_height_y = 1.0f;
+                               v->read256_bytes_block_height_c = 1.0f;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
+                               v->read256_bytes_block_height_y = 16.0f;
+                               v->read256_bytes_block_height_c = 8.0f;
+                       } else {
+                               v->read256_bytes_block_height_y = 8.0f;
+                               v->read256_bytes_block_height_c = 8.0f;
+                       }
+                       v->read256_bytes_block_width_y = 256.0f / dcn_bw_ceil2(v->byte_per_pix_dety, 1.0f) / v->read256_bytes_block_height_y;
+                       v->read256_bytes_block_width_c = 256.0f / dcn_bw_ceil2(v->byte_per_pix_detc, 2.0f) / v->read256_bytes_block_height_c;
                }
                if (v->source_scan[k] == dcn_bw_hor) {
                        v->maximum_swath_height_y = v->read256_bytes_block_height_y;
                        v->maximum_swath_height_c = v->read256_bytes_block_height_c;
-               }
-               else {
+               } else {
                        v->maximum_swath_height_y = v->read256_bytes_block_width_y;
                        v->maximum_swath_height_c = v->read256_bytes_block_width_c;
                }
                if ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32 || v->source_pixel_format[k] == dcn_bw_rgb_sub_16)) {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear || (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 && (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_var_s || v->source_surface_mode[k] == dcn_bw_sw_var_s_x) && v->source_scan[k] == dcn_bw_hor)) {
                                v->minimum_swath_height_y = v->maximum_swath_height_y;
-                       }
-                       else {
-                               v->minimum_swath_height_y = v->maximum_swath_height_y / 2.0;
+                       } else {
+                               v->minimum_swath_height_y = v->maximum_swath_height_y / 2.0f;
                        }
                        v->minimum_swath_height_c = v->maximum_swath_height_c;
-               }
-               else {
+               } else {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
                                v->minimum_swath_height_y = v->maximum_swath_height_y;
                                v->minimum_swath_height_c = v->maximum_swath_height_c;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 && v->source_scan[k] == dcn_bw_hor) {
-                               v->minimum_swath_height_y = v->maximum_swath_height_y / 2.0;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8 && v->source_scan[k] == dcn_bw_hor) {
+                               v->minimum_swath_height_y = v->maximum_swath_height_y / 2.0f;
                                if (v->bug_forcing_luma_and_chroma_request_to_same_size_fixed == dcn_bw_yes) {
                                        v->minimum_swath_height_c = v->maximum_swath_height_c;
+                               } else {
+                                       v->minimum_swath_height_c = v->maximum_swath_height_c / 2.0f;
                                }
-                               else {
-                                       v->minimum_swath_height_c = v->maximum_swath_height_c / 2.0;
-                               }
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10 && v->source_scan[k] == dcn_bw_hor) {
-                               v->minimum_swath_height_c = v->maximum_swath_height_c / 2.0;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10 && v->source_scan[k] == dcn_bw_hor) {
+                               v->minimum_swath_height_c = v->maximum_swath_height_c / 2.0f;
                                if (v->bug_forcing_luma_and_chroma_request_to_same_size_fixed == dcn_bw_yes) {
                                        v->minimum_swath_height_y = v->maximum_swath_height_y;
+                               } else {
+                                       v->minimum_swath_height_y = v->maximum_swath_height_y / 2.0f;
                                }
-                               else {
-                                       v->minimum_swath_height_y = v->maximum_swath_height_y / 2.0;
-                               }
-                       }
-                       else {
+                       } else {
                                v->minimum_swath_height_y = v->maximum_swath_height_y;
                                v->minimum_swath_height_c = v->maximum_swath_height_c;
                        }
                }
                if (v->source_scan[k] == dcn_bw_hor) {
                        v->swath_width = v->viewport_width[k] / v->dpp_per_plane[k];
-               }
-               else {
+               } else {
                        v->swath_width = v->viewport_height[k] / v->dpp_per_plane[k];
                }
-               v->swath_width_granularity_y = 256.0 /dcn_bw_ceil2(v->byte_per_pix_dety, 1.0) / v->maximum_swath_height_y;
-               v->rounded_up_max_swath_size_bytes_y = (dcn_bw_ceil2(v->swath_width - 1.0, v->swath_width_granularity_y) + v->swath_width_granularity_y) * v->byte_per_pix_dety * v->maximum_swath_height_y;
+               v->swath_width_granularity_y = 256.0f / dcn_bw_ceil2(v->byte_per_pix_dety, 1.0f) / v->maximum_swath_height_y;
+               v->rounded_up_max_swath_size_bytes_y = (dcn_bw_ceil2(v->swath_width - 1.0f, v->swath_width_granularity_y) + v->swath_width_granularity_y) * v->byte_per_pix_dety * v->maximum_swath_height_y;
                if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) {
-                       v->rounded_up_max_swath_size_bytes_y =dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_y, 256.0) + 256;
+                       v->rounded_up_max_swath_size_bytes_y = dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_y, 256.0f) + 256;
                }
-               if (v->maximum_swath_height_c > 0.0) {
-                       v->swath_width_granularity_c = 256.0 /dcn_bw_ceil2(v->byte_per_pix_detc, 2.0) / v->maximum_swath_height_c;
-                       v->rounded_up_max_swath_size_bytes_c = (dcn_bw_ceil2(v->swath_width / 2.0 - 1.0, v->swath_width_granularity_c) + v->swath_width_granularity_c) * v->byte_per_pix_detc * v->maximum_swath_height_c;
+               if (v->maximum_swath_height_c > 0.0f) {
+                       v->swath_width_granularity_c = 256.0f / dcn_bw_ceil2(v->byte_per_pix_detc, 2.0f) / v->maximum_swath_height_c;
+                       v->rounded_up_max_swath_size_bytes_c = (dcn_bw_ceil2(v->swath_width / 2.0f - 1.0f, v->swath_width_granularity_c) + v->swath_width_granularity_c) * v->byte_per_pix_detc * v->maximum_swath_height_c;
                        if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_10) {
-                               v->rounded_up_max_swath_size_bytes_c = dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_c, 256.0) + 256;
+                               v->rounded_up_max_swath_size_bytes_c = dcn_bw_ceil2(v->rounded_up_max_swath_size_bytes_c, 256.0f) + 256;
                        }
                }
-               if (v->rounded_up_max_swath_size_bytes_y + v->rounded_up_max_swath_size_bytes_c <= v->det_buffer_size_in_kbyte * 1024.0 / 2.0) {
+               if (v->rounded_up_max_swath_size_bytes_y + v->rounded_up_max_swath_size_bytes_c <= v->det_buffer_size_in_kbyte * 1024.0f / 2.0f) {
                        v->swath_height_y[k] = v->maximum_swath_height_y;
                        v->swath_height_c[k] = v->maximum_swath_height_c;
-               }
-               else {
+               } else {
                        v->swath_height_y[k] = v->minimum_swath_height_y;
                        v->swath_height_c[k] = v->minimum_swath_height_c;
                }
-               if (v->swath_height_c[k] == 0.0) {
-                       v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0;
-                       v->det_buffer_size_c[k] = 0.0;
-               }
-               else if (v->swath_height_y[k] <= v->swath_height_c[k]) {
-                       v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0 / 2.0;
-                       v->det_buffer_size_c[k] = v->det_buffer_size_in_kbyte * 1024.0 / 2.0;
-               }
-               else {
-                       v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0 * 2.0 / 3.0;
-                       v->det_buffer_size_c[k] = v->det_buffer_size_in_kbyte * 1024.0 / 3.0;
+               if (v->swath_height_c[k] == 0.0f) {
+                       v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0f;
+                       v->det_buffer_size_c[k] = 0.0f;
+               } else if (v->swath_height_y[k] <= v->swath_height_c[k]) {
+                       v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0f / 2.0f;
+                       v->det_buffer_size_c[k] = v->det_buffer_size_in_kbyte * 1024.0f / 2.0f;
+               } else {
+                       v->det_buffer_size_y[k] = v->det_buffer_size_in_kbyte * 1024.0f * 2.0f / 3.0f;
+                       v->det_buffer_size_c[k] = v->det_buffer_size_in_kbyte * 1024.0f / 3.0f;
                }
        }
 }
@@ -1178,52 +1057,46 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
        int k;
        /*dispclk and dppclk calculation*/
 
-       v->dispclk_with_ramping = 0.0;
-       v->dispclk_without_ramping = 0.0;
+       v->dispclk_with_ramping = 0.0f;
+       v->dispclk_without_ramping = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->h_ratio[k] > 1.0) {
-                       v->pscl_throughput[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] /dcn_bw_ceil2(v->htaps[k] / 6.0, 1.0));
+               if (v->h_ratio[k] > 1.0f) {
+                       v->pscl_throughput[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] / dcn_bw_ceil2(v->htaps[k] / 6.0f, 1.0f));
+               } else {
+                       v->pscl_throughput[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
                }
-               else {
-                       v->pscl_throughput[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
-               }
-               v->dppclk_using_single_dpp_luma = 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] * v->v_ratio[k] / v->pscl_throughput[k], 1.0);
+               v->dppclk_using_single_dpp_luma = v->pixel_clock[k] * dcn_bw_max3(v->vtaps[k] / 6.0f * dcn_bw_min2(1.0f, v->h_ratio[k]), v->h_ratio[k] * v->v_ratio[k] / v->pscl_throughput[k], 1.0f);
                if ((v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
-                       v->pscl_throughput_chroma[k] = 0.0;
+                       v->pscl_throughput_chroma[k] = 0.0f;
                        v->dppclk_using_single_dpp = v->dppclk_using_single_dpp_luma;
-               }
-               else {
-                       if (v->h_ratio[k] > 1.0) {
-                               v->pscl_throughput_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] / 2.0 /dcn_bw_ceil2(v->hta_pschroma[k] / 6.0, 1.0));
+               } else {
+                       if (v->h_ratio[k] > 1.0f) {
+                               v->pscl_throughput_chroma[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput * v->h_ratio[k] / 2.0f / dcn_bw_ceil2(v->hta_pschroma[k] / 6.0f, 1.0f));
+                       } else {
+                               v->pscl_throughput_chroma[k] = dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
                        }
-                       else {
-                               v->pscl_throughput_chroma[k] =dcn_bw_min2(v->max_dchub_topscl_throughput, v->max_pscl_tolb_throughput);
-                       }
-                       v->dppclk_using_single_dpp_chroma = v->pixel_clock[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] * v->v_ratio[k] / 4.0 / v->pscl_throughput_chroma[k], 1.0);
-                       v->dppclk_using_single_dpp =dcn_bw_max2(v->dppclk_using_single_dpp_luma, v->dppclk_using_single_dpp_chroma);
+                       v->dppclk_using_single_dpp_chroma = v->pixel_clock[k] * dcn_bw_max3(v->vta_pschroma[k] / 6.0f * dcn_bw_min2(1.0f, v->h_ratio[k] / 2.0f), v->h_ratio[k] * v->v_ratio[k] / 4.0f / v->pscl_throughput_chroma[k], 1.0f);
+                       v->dppclk_using_single_dpp = dcn_bw_max2(v->dppclk_using_single_dpp_luma, v->dppclk_using_single_dpp_chroma);
                }
                if (v->odm_capable == dcn_bw_yes) {
-                       v->dispclk_with_ramping =dcn_bw_max2(v->dispclk_with_ramping,dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k] / v->dpp_per_plane[k]) * (1.0 + v->downspreading / 100.0) * (1.0 + v->dispclk_ramping_margin / 100.0));
-                       v->dispclk_without_ramping =dcn_bw_max2(v->dispclk_without_ramping,dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k] / v->dpp_per_plane[k]) * (1.0 + v->downspreading / 100.0));
-               }
-               else {
-                       v->dispclk_with_ramping =dcn_bw_max2(v->dispclk_with_ramping,dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k]) * (1.0 + v->downspreading / 100.0) * (1.0 + v->dispclk_ramping_margin / 100.0));
-                       v->dispclk_without_ramping =dcn_bw_max2(v->dispclk_without_ramping,dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k]) * (1.0 + v->downspreading / 100.0));
+                       v->dispclk_with_ramping = dcn_bw_max2(v->dispclk_with_ramping, dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k] / v->dpp_per_plane[k]) * (1.0f + v->downspreading / 100.0f) * (1.0f + v->dispclk_ramping_margin / 100.0f));
+                       v->dispclk_without_ramping = dcn_bw_max2(v->dispclk_without_ramping, dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k] / v->dpp_per_plane[k]) * (1.0f + v->downspreading / 100.0f));
+               } else {
+                       v->dispclk_with_ramping = dcn_bw_max2(v->dispclk_with_ramping, dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k]) * (1.0f + v->downspreading / 100.0f) * (1.0f + v->dispclk_ramping_margin / 100.0f));
+                       v->dispclk_without_ramping = dcn_bw_max2(v->dispclk_without_ramping, dcn_bw_max2(v->dppclk_using_single_dpp / v->dpp_per_plane[k] * v->dispclk_dppclk_ratio, v->pixel_clock[k]) * (1.0f + v->downspreading / 100.0f));
                }
        }
        if (v->dispclk_without_ramping > v->max_dispclk[number_of_states]) {
                v->dispclk = v->dispclk_without_ramping;
-       }
-       else if (v->dispclk_with_ramping > v->max_dispclk[number_of_states]) {
+       } else if (v->dispclk_with_ramping > v->max_dispclk[number_of_states]) {
                v->dispclk = v->max_dispclk[number_of_states];
-       }
-       else {
+       } else {
                v->dispclk = v->dispclk_with_ramping;
        }
        v->dppclk = v->dispclk / v->dispclk_dppclk_ratio;
        /*urgent watermark*/
 
-       v->return_bandwidth_to_dcn =dcn_bw_min2(v->return_bus_width * v->dcfclk, v->fabric_and_dram_bandwidth * 1000.0 * v->percent_of_ideal_drambw_received_after_urg_latency / 100.0);
+       v->return_bandwidth_to_dcn = dcn_bw_min2(v->return_bus_width * v->dcfclk, v->fabric_and_dram_bandwidth * 1000.0f * v->percent_of_ideal_drambw_received_after_urg_latency / 100.0f);
        v->dcc_enabled_any_plane = dcn_bw_no;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->dcc_enable[k] == dcn_bw_yes) {
@@ -1231,129 +1104,119 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
                }
        }
        v->return_bw = v->return_bandwidth_to_dcn;
-       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->return_bandwidth_to_dcn > v->dcfclk * v->return_bus_width / 4.0) {
-               v->return_bw =dcn_bw_min2(v->return_bw, v->return_bandwidth_to_dcn * 4.0 * (1.0 - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 / (v->return_bandwidth_to_dcn - v->dcfclk * v->return_bus_width / 4.0) + v->urgent_latency)));
+       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->return_bandwidth_to_dcn > v->dcfclk * v->return_bus_width / 4.0f) {
+               v->return_bw = dcn_bw_min2(v->return_bw, v->return_bandwidth_to_dcn * 4.0f * (1.0f - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f / (v->return_bandwidth_to_dcn - v->dcfclk * v->return_bus_width / 4.0f) + v->urgent_latency)));
        }
-       v->critical_compression = 2.0 * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0);
-       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->critical_compression > 1.0 && v->critical_compression < 4.0) {
-               v->return_bw =dcn_bw_min2(v->return_bw, dcn_bw_pow(4.0 * v->return_bandwidth_to_dcn * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0), 2));
+       v->critical_compression = 2.0f * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f);
+       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->critical_compression > 1.0f && v->critical_compression < 4.0f) {
+               v->return_bw = dcn_bw_min2(v->return_bw, dcn_bw_pow(4.0f * v->return_bandwidth_to_dcn * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f), 2));
        }
-       v->return_bandwidth_to_dcn =dcn_bw_min2(v->return_bus_width * v->dcfclk, v->fabric_and_dram_bandwidth * 1000.0);
-       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->return_bandwidth_to_dcn > v->dcfclk * v->return_bus_width / 4.0) {
-               v->return_bw =dcn_bw_min2(v->return_bw, v->return_bandwidth_to_dcn * 4.0 * (1.0 - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 / (v->return_bandwidth_to_dcn - v->dcfclk * v->return_bus_width / 4.0) + v->urgent_latency)));
+       v->return_bandwidth_to_dcn = dcn_bw_min2(v->return_bus_width * v->dcfclk, v->fabric_and_dram_bandwidth * 1000.0f);
+       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->return_bandwidth_to_dcn > v->dcfclk * v->return_bus_width / 4.0f) {
+               v->return_bw = dcn_bw_min2(v->return_bw, v->return_bandwidth_to_dcn * 4.0f * (1.0f - v->urgent_latency / ((v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f / (v->return_bandwidth_to_dcn - v->dcfclk * v->return_bus_width / 4.0f) + v->urgent_latency)));
        }
-       v->critical_compression = 2.0 * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0);
-       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->critical_compression > 1.0 && v->critical_compression < 4.0) {
-               v->return_bw =dcn_bw_min2(v->return_bw, dcn_bw_pow(4.0 * v->return_bandwidth_to_dcn * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0 * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0), 2));
+       v->critical_compression = 2.0f * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f);
+       if (v->dcc_enabled_any_plane == dcn_bw_yes && v->critical_compression > 1.0f && v->critical_compression < 4.0f) {
+               v->return_bw = dcn_bw_min2(v->return_bw, dcn_bw_pow(4.0f * v->return_bandwidth_to_dcn * (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f * v->return_bus_width * v->dcfclk * v->urgent_latency / (v->return_bandwidth_to_dcn * v->urgent_latency + (v->rob_buffer_size_in_kbyte - v->pixel_chunk_size_in_kbyte) * 1024.0f), 2));
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->source_scan[k] == dcn_bw_hor) {
                        v->swath_width_y[k] = v->viewport_width[k] / v->dpp_per_plane[k];
-               }
-               else {
+               } else {
                        v->swath_width_y[k] = v->viewport_height[k] / v->dpp_per_plane[k];
                }
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                       v->byte_per_pixel_dety[k] = 8.0;
-                       v->byte_per_pixel_detc[k] = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
-                       v->byte_per_pixel_dety[k] = 4.0;
-                       v->byte_per_pixel_detc[k] = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
-                       v->byte_per_pixel_dety[k] = 2.0;
-                       v->byte_per_pixel_detc[k] = 0.0;
-               }
-               else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                       v->byte_per_pixel_dety[k] = 1.0;
-                       v->byte_per_pixel_detc[k] = 2.0;
-               }
-               else {
+                       v->byte_per_pixel_dety[k] = 8.0f;
+                       v->byte_per_pixel_detc[k] = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
+                       v->byte_per_pixel_dety[k] = 4.0f;
+                       v->byte_per_pixel_detc[k] = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
+                       v->byte_per_pixel_dety[k] = 2.0f;
+                       v->byte_per_pixel_detc[k] = 0.0f;
+               } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
+                       v->byte_per_pixel_dety[k] = 1.0f;
+                       v->byte_per_pixel_detc[k] = 2.0f;
+               } else {
                        v->byte_per_pixel_dety[k] = 4.0f / 3.0f;
                        v->byte_per_pixel_detc[k] = 8.0f / 3.0f;
                }
        }
-       v->total_data_read_bandwidth = 0.0;
+       v->total_data_read_bandwidth = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               v->read_bandwidth_plane_luma[k] = v->swath_width_y[k] * v->dpp_per_plane[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k];
-               v->read_bandwidth_plane_chroma[k] = v->swath_width_y[k] / 2.0 * v->dpp_per_plane[k] *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k] / 2.0;
+               v->read_bandwidth_plane_luma[k] = v->swath_width_y[k] * v->dpp_per_plane[k] * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k];
+               v->read_bandwidth_plane_chroma[k] = v->swath_width_y[k] / 2.0f * v->dpp_per_plane[k] * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k] / 2.0f;
                v->total_data_read_bandwidth = v->total_data_read_bandwidth + v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k];
        }
-       v->total_active_dpp = 0.0;
-       v->total_dcc_active_dpp = 0.0;
+       v->total_active_dpp = 0.0f;
+       v->total_dcc_active_dpp = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                v->total_active_dpp = v->total_active_dpp + v->dpp_per_plane[k];
                if (v->dcc_enable[k] == dcn_bw_yes) {
                        v->total_dcc_active_dpp = v->total_dcc_active_dpp + v->dpp_per_plane[k];
                }
        }
-       v->urgent_round_trip_and_out_of_order_latency = (v->round_trip_ping_latency_cycles + 32.0) / v->dcfclk + v->urgent_out_of_order_return_per_channel * v->number_of_channels / v->return_bw;
-       v->last_pixel_of_line_extra_watermark = 0.0;
+       v->urgent_round_trip_and_out_of_order_latency = (v->round_trip_ping_latency_cycles + 32.0f) / v->dcfclk + v->urgent_out_of_order_return_per_channel * v->number_of_channels / v->return_bw;
+       v->last_pixel_of_line_extra_watermark = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->v_ratio[k] <= 1.0) {
+               if (v->v_ratio[k] <= 1.0f) {
                        v->display_pipe_line_delivery_time_luma[k] = v->swath_width_y[k] * v->dpp_per_plane[k] / v->h_ratio[k] / v->pixel_clock[k];
-               }
-               else {
+               } else {
                        v->display_pipe_line_delivery_time_luma[k] = v->swath_width_y[k] / v->pscl_throughput[k] / v->dppclk;
                }
-               v->data_fabric_line_delivery_time_luma = v->swath_width_y[k] * v->swath_height_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / (v->return_bw * v->read_bandwidth_plane_luma[k] / v->dpp_per_plane[k] / v->total_data_read_bandwidth);
-               v->last_pixel_of_line_extra_watermark =dcn_bw_max2(v->last_pixel_of_line_extra_watermark, v->data_fabric_line_delivery_time_luma - v->display_pipe_line_delivery_time_luma[k]);
-               if (v->byte_per_pixel_detc[k] == 0.0) {
-                       v->display_pipe_line_delivery_time_chroma[k] = 0.0;
-               }
-               else {
-                       if (v->v_ratio[k] / 2.0 <= 1.0) {
-                               v->display_pipe_line_delivery_time_chroma[k] = v->swath_width_y[k] / 2.0 * v->dpp_per_plane[k] / (v->h_ratio[k] / 2.0) / v->pixel_clock[k];
+               v->data_fabric_line_delivery_time_luma = v->swath_width_y[k] * v->swath_height_y[k] * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / (v->return_bw * v->read_bandwidth_plane_luma[k] / v->dpp_per_plane[k] / v->total_data_read_bandwidth);
+               v->last_pixel_of_line_extra_watermark = dcn_bw_max2(v->last_pixel_of_line_extra_watermark, v->data_fabric_line_delivery_time_luma - v->display_pipe_line_delivery_time_luma[k]);
+               if (v->byte_per_pixel_detc[k] == 0.0f) {
+                       v->display_pipe_line_delivery_time_chroma[k] = 0.0f;
+               } else {
+                       if (v->v_ratio[k] / 2.0f <= 1.0f) {
+                               v->display_pipe_line_delivery_time_chroma[k] = v->swath_width_y[k] / 2.0f * v->dpp_per_plane[k] / (v->h_ratio[k] / 2.0f) / v->pixel_clock[k];
+                       } else {
+                               v->display_pipe_line_delivery_time_chroma[k] = v->swath_width_y[k] / 2.0f / v->pscl_throughput_chroma[k] / v->dppclk;
                        }
-                       else {
-                               v->display_pipe_line_delivery_time_chroma[k] = v->swath_width_y[k] / 2.0 / v->pscl_throughput_chroma[k] / v->dppclk;
-                       }
-                       v->data_fabric_line_delivery_time_chroma = v->swath_width_y[k] / 2.0 * v->swath_height_c[k] *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / (v->return_bw * v->read_bandwidth_plane_chroma[k] / v->dpp_per_plane[k] / v->total_data_read_bandwidth);
-                       v->last_pixel_of_line_extra_watermark =dcn_bw_max2(v->last_pixel_of_line_extra_watermark, v->data_fabric_line_delivery_time_chroma - v->display_pipe_line_delivery_time_chroma[k]);
+                       v->data_fabric_line_delivery_time_chroma = v->swath_width_y[k] / 2.0f * v->swath_height_c[k] * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / (v->return_bw * v->read_bandwidth_plane_chroma[k] / v->dpp_per_plane[k] / v->total_data_read_bandwidth);
+                       v->last_pixel_of_line_extra_watermark = dcn_bw_max2(v->last_pixel_of_line_extra_watermark, v->data_fabric_line_delivery_time_chroma - v->display_pipe_line_delivery_time_chroma[k]);
                }
        }
-       v->urgent_extra_latency = v->urgent_round_trip_and_out_of_order_latency + (v->total_active_dpp * v->pixel_chunk_size_in_kbyte + v->total_dcc_active_dpp * v->meta_chunk_size) * 1024.0 / v->return_bw;
+       v->urgent_extra_latency = v->urgent_round_trip_and_out_of_order_latency + (v->total_active_dpp * v->pixel_chunk_size_in_kbyte + v->total_dcc_active_dpp * v->meta_chunk_size) * 1024.0f / v->return_bw;
        if (v->pte_enable == dcn_bw_yes) {
-               v->urgent_extra_latency = v->urgent_extra_latency + v->total_active_dpp * v->pte_chunk_size * 1024.0 / v->return_bw;
+               v->urgent_extra_latency = v->urgent_extra_latency + v->total_active_dpp * v->pte_chunk_size * 1024.0f / v->return_bw;
        }
        v->urgent_watermark = v->urgent_latency + v->last_pixel_of_line_extra_watermark + v->urgent_extra_latency;
-       v->ptemeta_urgent_watermark = v->urgent_watermark + 2.0 * v->urgent_latency;
+       v->ptemeta_urgent_watermark = v->urgent_watermark + 2.0f * v->urgent_latency;
        /*nb p-state/dram clock change watermark*/
 
        v->dram_clock_change_watermark = v->dram_clock_change_latency + v->urgent_watermark;
-       v->total_active_writeback = 0.0;
+       v->total_active_writeback = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->output[k] == dcn_bw_writeback) {
-                       v->total_active_writeback = v->total_active_writeback + 1.0;
+                       v->total_active_writeback = v->total_active_writeback + 1.0f;
                }
        }
-       if (v->total_active_writeback <= 1.0) {
+       if (v->total_active_writeback <= 1.0f) {
                v->writeback_dram_clock_change_watermark = v->dram_clock_change_latency + v->write_back_latency;
-       }
-       else {
-               v->writeback_dram_clock_change_watermark = v->dram_clock_change_latency + v->write_back_latency + v->writeback_chunk_size * 1024.0 / 32.0 / v->socclk;
+       } else {
+               v->writeback_dram_clock_change_watermark = v->dram_clock_change_latency + v->write_back_latency + v->writeback_chunk_size * 1024.0f / 32.0f / v->socclk;
        }
        /*stutter efficiency*/
 
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                v->lines_in_dety[k] = v->det_buffer_size_y[k] / v->byte_per_pixel_dety[k] / v->swath_width_y[k];
-               v->lines_in_dety_rounded_down_to_swath[k] =dcn_bw_floor2(v->lines_in_dety[k], v->swath_height_y[k]);
+               v->lines_in_dety_rounded_down_to_swath[k] = dcn_bw_floor2(v->lines_in_dety[k], v->swath_height_y[k]);
                v->full_det_buffering_time_y[k] = v->lines_in_dety_rounded_down_to_swath[k] * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k];
-               if (v->byte_per_pixel_detc[k] > 0.0) {
-                       v->lines_in_detc[k] = v->det_buffer_size_c[k] / v->byte_per_pixel_detc[k] / (v->swath_width_y[k] / 2.0);
-                       v->lines_in_detc_rounded_down_to_swath[k] =dcn_bw_floor2(v->lines_in_detc[k], v->swath_height_c[k]);
-                       v->full_det_buffering_time_c[k] = v->lines_in_detc_rounded_down_to_swath[k] * (v->htotal[k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0);
-               }
-               else {
-                       v->lines_in_detc[k] = 0.0;
-                       v->lines_in_detc_rounded_down_to_swath[k] = 0.0;
-                       v->full_det_buffering_time_c[k] = 999999.0;
+               if (v->byte_per_pixel_detc[k] > 0.0f) {
+                       v->lines_in_detc[k] = v->det_buffer_size_c[k] / v->byte_per_pixel_detc[k] / (v->swath_width_y[k] / 2.0f);
+                       v->lines_in_detc_rounded_down_to_swath[k] = dcn_bw_floor2(v->lines_in_detc[k], v->swath_height_c[k]);
+                       v->full_det_buffering_time_c[k] = v->lines_in_detc_rounded_down_to_swath[k] * (v->htotal[k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0f);
+               } else {
+                       v->lines_in_detc[k] = 0.0f;
+                       v->lines_in_detc_rounded_down_to_swath[k] = 0.0f;
+                       v->full_det_buffering_time_c[k] = 999999.0f;
                }
        }
-       v->min_full_det_buffering_time = 999999.0;
+       v->min_full_det_buffering_time = 999999.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->full_det_buffering_time_y[k] < v->min_full_det_buffering_time) {
                        v->min_full_det_buffering_time = v->full_det_buffering_time_y[k];
@@ -1364,76 +1227,71 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
                        v->frame_time_for_min_full_det_buffering_time = v->vtotal[k] * v->htotal[k] / v->pixel_clock[k];
                }
        }
-       v->average_read_bandwidth_gbyte_per_second = 0.0;
+       v->average_read_bandwidth_gbyte_per_second = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->dcc_enable[k] == dcn_bw_yes) {
-                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / v->dcc_rate[k] / 1000.0 + v->read_bandwidth_plane_chroma[k] / v->dcc_rate[k] / 1000.0;
-               }
-               else {
-                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0 + v->read_bandwidth_plane_chroma[k] / 1000.0;
+                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / v->dcc_rate[k] / 1000.0f + v->read_bandwidth_plane_chroma[k] / v->dcc_rate[k] / 1000.0f;
+               } else {
+                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0f + v->read_bandwidth_plane_chroma[k] / 1000.0f;
                }
                if (v->dcc_enable[k] == dcn_bw_yes) {
-                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0 / 256.0 + v->read_bandwidth_plane_chroma[k] / 1000.0 / 256.0;
+                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0f / 256.0f + v->read_bandwidth_plane_chroma[k] / 1000.0f / 256.0f;
                }
                if (v->pte_enable == dcn_bw_yes) {
-                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0 / 512.0 + v->read_bandwidth_plane_chroma[k] / 1000.0 / 512.0;
+                       v->average_read_bandwidth_gbyte_per_second = v->average_read_bandwidth_gbyte_per_second + v->read_bandwidth_plane_luma[k] / 1000.0f / 512.0f + v->read_bandwidth_plane_chroma[k] / 1000.0f / 512.0f;
                }
        }
-       v->part_of_burst_that_fits_in_rob =dcn_bw_min2(v->min_full_det_buffering_time * v->total_data_read_bandwidth, v->rob_buffer_size_in_kbyte * 1024.0 * v->total_data_read_bandwidth / (v->average_read_bandwidth_gbyte_per_second * 1000.0));
-       v->stutter_burst_time = v->part_of_burst_that_fits_in_rob * (v->average_read_bandwidth_gbyte_per_second * 1000.0) / v->total_data_read_bandwidth / v->return_bw + (v->min_full_det_buffering_time * v->total_data_read_bandwidth - v->part_of_burst_that_fits_in_rob) / (v->dcfclk * 64.0);
-       if (v->total_active_writeback == 0.0) {
-               v->stutter_efficiency_not_including_vblank = (1.0 - (v->sr_exit_time + v->stutter_burst_time) / v->min_full_det_buffering_time) * 100.0;
+       v->part_of_burst_that_fits_in_rob = dcn_bw_min2(v->min_full_det_buffering_time * v->total_data_read_bandwidth, v->rob_buffer_size_in_kbyte * 1024.0f * v->total_data_read_bandwidth / (v->average_read_bandwidth_gbyte_per_second * 1000.0f));
+       v->stutter_burst_time = v->part_of_burst_that_fits_in_rob * (v->average_read_bandwidth_gbyte_per_second * 1000.0f) / v->total_data_read_bandwidth / v->return_bw + (v->min_full_det_buffering_time * v->total_data_read_bandwidth - v->part_of_burst_that_fits_in_rob) / (v->dcfclk * 64.0f);
+       if (v->total_active_writeback == 0.0f) {
+               v->stutter_efficiency_not_including_vblank = (1.0f - (v->sr_exit_time + v->stutter_burst_time) / v->min_full_det_buffering_time) * 100.0f;
+       } else {
+               v->stutter_efficiency_not_including_vblank = 0.0f;
        }
-       else {
-               v->stutter_efficiency_not_including_vblank = 0.0;
-       }
-       v->smallest_vblank = 999999.0;
+       v->smallest_vblank = 999999.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->synchronized_vblank == dcn_bw_yes || v->number_of_active_planes == 1) {
                        v->v_blank_time = (v->vtotal[k] - v->vactive[k]) * v->htotal[k] / v->pixel_clock[k];
+               } else {
+                       v->v_blank_time = 0.0f;
                }
-               else {
-                       v->v_blank_time = 0.0;
-               }
-               v->smallest_vblank =dcn_bw_min2(v->smallest_vblank, v->v_blank_time);
+               v->smallest_vblank = dcn_bw_min2(v->smallest_vblank, v->v_blank_time);
        }
-       v->stutter_efficiency = (v->stutter_efficiency_not_including_vblank / 100.0 * (v->frame_time_for_min_full_det_buffering_time - v->smallest_vblank) + v->smallest_vblank) / v->frame_time_for_min_full_det_buffering_time * 100.0;
+       v->stutter_efficiency = (v->stutter_efficiency_not_including_vblank / 100.0f * (v->frame_time_for_min_full_det_buffering_time - v->smallest_vblank) + v->smallest_vblank) / v->frame_time_for_min_full_det_buffering_time * 100.0f;
        /*dcfclk deep sleep*/
 
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->byte_per_pixel_detc[k] > 0.0) {
-                       v->dcfclk_deep_sleep_per_plane[k] =dcn_bw_max2(1.1 * v->swath_width_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 32.0 / v->display_pipe_line_delivery_time_luma[k], 1.1 * v->swath_width_y[k] / 2.0 *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 32.0 / v->display_pipe_line_delivery_time_chroma[k]);
-               }
-               else {
-                       v->dcfclk_deep_sleep_per_plane[k] = 1.1 * v->swath_width_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 64.0 / v->display_pipe_line_delivery_time_luma[k];
+               if (v->byte_per_pixel_detc[k] > 0.0f) {
+                       v->dcfclk_deep_sleep_per_plane[k] = dcn_bw_max2(1.1f * v->swath_width_y[k] * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / 32.0f / v->display_pipe_line_delivery_time_luma[k], 1.1f * v->swath_width_y[k] / 2.0f * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / 32.0f / v->display_pipe_line_delivery_time_chroma[k]);
+               } else {
+                       v->dcfclk_deep_sleep_per_plane[k] = 1.1f * v->swath_width_y[k] * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / 64.0f / v->display_pipe_line_delivery_time_luma[k];
                }
-               v->dcfclk_deep_sleep_per_plane[k] =dcn_bw_max2(v->dcfclk_deep_sleep_per_plane[k], v->pixel_clock[k] / 16.0);
+               v->dcfclk_deep_sleep_per_plane[k] = dcn_bw_max2(v->dcfclk_deep_sleep_per_plane[k], v->pixel_clock[k] / 16.0f);
        }
-       v->dcf_clk_deep_sleep = 8.0;
+       v->dcf_clk_deep_sleep = 8.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               v->dcf_clk_deep_sleep =dcn_bw_max2(v->dcf_clk_deep_sleep, v->dcfclk_deep_sleep_per_plane[k]);
+               v->dcf_clk_deep_sleep = dcn_bw_max2(v->dcf_clk_deep_sleep, v->dcfclk_deep_sleep_per_plane[k]);
        }
        /*stutter watermark*/
 
-       v->stutter_exit_watermark = v->sr_exit_time + v->last_pixel_of_line_extra_watermark + v->urgent_extra_latency + 10.0 / v->dcf_clk_deep_sleep;
+       v->stutter_exit_watermark = v->sr_exit_time + v->last_pixel_of_line_extra_watermark + v->urgent_extra_latency + 10.0f / v->dcf_clk_deep_sleep;
        v->stutter_enter_plus_exit_watermark = v->sr_enter_plus_exit_time + v->last_pixel_of_line_extra_watermark + v->urgent_extra_latency;
        /*urgent latency supported*/
 
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               v->effective_det_plus_lb_lines_luma =dcn_bw_floor2(v->lines_in_dety[k] +dcn_bw_min2(v->lines_in_dety[k] * v->dppclk * v->byte_per_pixel_dety[k] * v->pscl_throughput[k] / (v->return_bw / v->dpp_per_plane[k]), v->effective_lb_latency_hiding_source_lines_luma), v->swath_height_y[k]);
+               v->effective_det_plus_lb_lines_luma = dcn_bw_floor2(v->lines_in_dety[k] + dcn_bw_min2(v->lines_in_dety[k] * v->dppclk * v->byte_per_pixel_dety[k] * v->pscl_throughput[k] / (v->return_bw / v->dpp_per_plane[k]), v->effective_lb_latency_hiding_source_lines_luma), v->swath_height_y[k]);
                v->urgent_latency_support_us_luma = v->effective_det_plus_lb_lines_luma * (v->htotal[k] / v->pixel_clock[k]) / v->v_ratio[k] - v->effective_det_plus_lb_lines_luma * v->swath_width_y[k] * v->byte_per_pixel_dety[k] / (v->return_bw / v->dpp_per_plane[k]);
-               if (v->byte_per_pixel_detc[k] > 0.0) {
-                       v->effective_det_plus_lb_lines_chroma =dcn_bw_floor2(v->lines_in_detc[k] +dcn_bw_min2(v->lines_in_detc[k] * v->dppclk * v->byte_per_pixel_detc[k] * v->pscl_throughput_chroma[k] / (v->return_bw / v->dpp_per_plane[k]), v->effective_lb_latency_hiding_source_lines_chroma), v->swath_height_c[k]);
-                       v->urgent_latency_support_us_chroma = v->effective_det_plus_lb_lines_chroma * (v->htotal[k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0) - v->effective_det_plus_lb_lines_chroma * (v->swath_width_y[k] / 2.0) * v->byte_per_pixel_detc[k] / (v->return_bw / v->dpp_per_plane[k]);
-                       v->urgent_latency_support_us[k] =dcn_bw_min2(v->urgent_latency_support_us_luma, v->urgent_latency_support_us_chroma);
-               }
-               else {
+               if (v->byte_per_pixel_detc[k] > 0.0f) {
+                       v->effective_det_plus_lb_lines_chroma = dcn_bw_floor2(v->lines_in_detc[k] + dcn_bw_min2(v->lines_in_detc[k] * v->dppclk * v->byte_per_pixel_detc[k] * v->pscl_throughput_chroma[k] / (v->return_bw / v->dpp_per_plane[k]), v->effective_lb_latency_hiding_source_lines_chroma), v->swath_height_c[k]);
+                       v->urgent_latency_support_us_chroma = v->effective_det_plus_lb_lines_chroma * (v->htotal[k] / v->pixel_clock[k]) / (v->v_ratio[k] / 2.0f) - v->effective_det_plus_lb_lines_chroma * (v->swath_width_y[k] / 2.0f) * v->byte_per_pixel_detc[k] / (v->return_bw / v->dpp_per_plane[k]);
+                       v->urgent_latency_support_us[k] = dcn_bw_min2(v->urgent_latency_support_us_luma, v->urgent_latency_support_us_chroma);
+               } else {
                        v->urgent_latency_support_us[k] = v->urgent_latency_support_us_luma;
                }
        }
-       v->min_urgent_latency_support_us = 999999.0;
+       v->min_urgent_latency_support_us = 999999.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               v->min_urgent_latency_support_us =dcn_bw_min2(v->min_urgent_latency_support_us, v->urgent_latency_support_us[k]);
+               v->min_urgent_latency_support_us = dcn_bw_min2(v->min_urgent_latency_support_us, v->urgent_latency_support_us[k]);
        }
        /*non-urgent latency tolerance*/
 
@@ -1443,195 +1301,165 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if ((v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32 || v->source_pixel_format[k] == dcn_bw_rgb_sub_16)) {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->block_height256_bytes_y = 1.0;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                               v->block_height256_bytes_y = 4.0;
-                       }
-                       else {
-                               v->block_height256_bytes_y = 8.0;
-                       }
-                       v->block_height256_bytes_c = 0.0;
-               }
-               else {
+                               v->block_height256_bytes_y = 1.0f;
+                       } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
+                               v->block_height256_bytes_y = 4.0f;
+                       } else {
+                               v->block_height256_bytes_y = 8.0f;
+                       }
+                       v->block_height256_bytes_c = 0.0f;
+               } else {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->block_height256_bytes_y = 1.0;
-                               v->block_height256_bytes_c = 1.0;
-                       }
-                       else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                               v->block_height256_bytes_y = 16.0;
-                               v->block_height256_bytes_c = 8.0;
-                       }
-                       else {
-                               v->block_height256_bytes_y = 8.0;
-                               v->block_height256_bytes_c = 8.0;
+                               v->block_height256_bytes_y = 1.0f;
+                               v->block_height256_bytes_c = 1.0f;
+                       } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
+                               v->block_height256_bytes_y = 16.0f;
+                               v->block_height256_bytes_c = 8.0f;
+                       } else {
+                               v->block_height256_bytes_y = 8.0f;
+                               v->block_height256_bytes_c = 8.0f;
                        }
                }
                if (v->dcc_enable[k] == dcn_bw_yes) {
-                       v->meta_request_width_y = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / (8.0 * v->block_height256_bytes_y);
-                       v->meta_surf_width_y =dcn_bw_ceil2(v->swath_width_y[k] - 1.0, v->meta_request_width_y) + v->meta_request_width_y;
-                       v->meta_surf_height_y =dcn_bw_ceil2(v->viewport_height[k] - 1.0, 8.0 * v->block_height256_bytes_y) + 8.0 * v->block_height256_bytes_y;
+                       v->meta_request_width_y = 64.0f * 256.0f / dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / (8.0f * v->block_height256_bytes_y);
+                       v->meta_surf_width_y = dcn_bw_ceil2(v->swath_width_y[k] - 1.0f, v->meta_request_width_y) + v->meta_request_width_y;
+                       v->meta_surf_height_y = dcn_bw_ceil2(v->viewport_height[k] - 1.0f, 8.0f * v->block_height256_bytes_y) + 8.0f * v->block_height256_bytes_y;
                        if (v->pte_enable == dcn_bw_yes) {
-                               v->meta_pte_bytes_frame_y = (dcn_bw_ceil2((v->meta_surf_width_y * v->meta_surf_height_y *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 256.0 - 4096.0) / 8.0 / 4096.0, 1.0) + 1) * 64.0;
-                       }
-                       else {
-                               v->meta_pte_bytes_frame_y = 0.0;
+                               v->meta_pte_bytes_frame_y = (dcn_bw_ceil2((v->meta_surf_width_y * v->meta_surf_height_y * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / 256.0f - 4096.0f) / 8.0f / 4096.0f, 1.0f) + 1) * 64.0f;
+                       } else {
+                               v->meta_pte_bytes_frame_y = 0.0f;
                        }
                        if (v->source_scan[k] == dcn_bw_hor) {
-                               v->meta_row_byte_y = v->meta_surf_width_y * 8.0 * v->block_height256_bytes_y *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 256.0;
-                       }
-                       else {
-                               v->meta_row_byte_y = v->meta_surf_height_y * v->meta_request_width_y *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / 256.0;
+                               v->meta_row_byte_y = v->meta_surf_width_y * 8.0f * v->block_height256_bytes_y * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / 256.0f;
+                       } else {
+                               v->meta_row_byte_y = v->meta_surf_height_y * v->meta_request_width_y * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / 256.0f;
                        }
-               }
-               else {
-                       v->meta_pte_bytes_frame_y = 0.0;
-                       v->meta_row_byte_y = 0.0;
+               } else {
+                       v->meta_pte_bytes_frame_y = 0.0f;
+                       v->meta_row_byte_y = 0.0f;
                }
                if (v->pte_enable == dcn_bw_yes) {
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->macro_tile_size_byte_y = 256.0;
-                               v->macro_tile_height_y = 1.0;
-                       }
-                       else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
-                               v->macro_tile_size_byte_y = 4096.0;
-                               v->macro_tile_height_y = 4.0 * v->block_height256_bytes_y;
-                       }
-                       else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
-                               v->macro_tile_size_byte_y = 64.0 * 1024;
-                               v->macro_tile_height_y = 16.0 * v->block_height256_bytes_y;
-                       }
-                       else {
-                               v->macro_tile_size_byte_y = 256.0 * 1024;
-                               v->macro_tile_height_y = 32.0 * v->block_height256_bytes_y;
-                       }
-                       if (v->macro_tile_size_byte_y <= 65536.0) {
+                               v->macro_tile_size_byte_y = 256.0f;
+                               v->macro_tile_height_y = 1.0f;
+                       } else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
+                               v->macro_tile_size_byte_y = 4096.0f;
+                               v->macro_tile_height_y = 4.0f * v->block_height256_bytes_y;
+                       } else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
+                               v->macro_tile_size_byte_y = 64.0f * 1024;
+                               v->macro_tile_height_y = 16.0f * v->block_height256_bytes_y;
+                       } else {
+                               v->macro_tile_size_byte_y = 256.0f * 1024;
+                               v->macro_tile_height_y = 32.0f * v->block_height256_bytes_y;
+                       }
+                       if (v->macro_tile_size_byte_y <= 65536.0f) {
                                v->pixel_pte_req_height_y = v->macro_tile_height_y;
+                       } else {
+                               v->pixel_pte_req_height_y = 16.0f * v->block_height256_bytes_y;
                        }
-                       else {
-                               v->pixel_pte_req_height_y = 16.0 * v->block_height256_bytes_y;
-                       }
-                       v->pixel_pte_req_width_y = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / v->pixel_pte_req_height_y * 8;
+                       v->pixel_pte_req_width_y = 4096.0f / dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / v->pixel_pte_req_height_y * 8;
                        if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                               v->pixel_pte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->swath_width_y[k] *dcn_bw_min2(128.0, dcn_bw_pow(2.0,dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_requests * v->pixel_pte_req_width_y / v->swath_width_y[k], 2.0), 1.0))) - 1.0) / v->pixel_pte_req_width_y, 1.0) + 1);
-                       }
-                       else if (v->source_scan[k] == dcn_bw_hor) {
-                               v->pixel_pte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->swath_width_y[k] - 1.0) / v->pixel_pte_req_width_y, 1.0) + 1);
+                               v->pixel_pte_bytes_per_row_y = 64.0f * (dcn_bw_ceil2((v->swath_width_y[k] * dcn_bw_min2(128.0f, dcn_bw_pow(2.0f, dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_requests * v->pixel_pte_req_width_y / v->swath_width_y[k], 2.0f), 1.0f))) - 1.0f) / v->pixel_pte_req_width_y, 1.0f) + 1);
+                       } else if (v->source_scan[k] == dcn_bw_hor) {
+                               v->pixel_pte_bytes_per_row_y = 64.0f * (dcn_bw_ceil2((v->swath_width_y[k] - 1.0f) / v->pixel_pte_req_width_y, 1.0f) + 1);
+                       } else {
+                               v->pixel_pte_bytes_per_row_y = 64.0f * (dcn_bw_ceil2((v->viewport_height[k] - 1.0f) / v->pixel_pte_req_height_y, 1.0f) + 1);
                        }
-                       else {
-                               v->pixel_pte_bytes_per_row_y = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] - 1.0) / v->pixel_pte_req_height_y, 1.0) + 1);
-                       }
-               }
-               else {
-                       v->pixel_pte_bytes_per_row_y = 0.0;
+               } else {
+                       v->pixel_pte_bytes_per_row_y = 0.0f;
                }
                if ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_32 && v->source_pixel_format[k] != dcn_bw_rgb_sub_16)) {
                        if (v->dcc_enable[k] == dcn_bw_yes) {
-                               v->meta_request_width_c = 64.0 * 256.0 /dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / (8.0 * v->block_height256_bytes_c);
-                               v->meta_surf_width_c =dcn_bw_ceil2(v->swath_width_y[k] / 2.0 - 1.0, v->meta_request_width_c) + v->meta_request_width_c;
-                               v->meta_surf_height_c =dcn_bw_ceil2(v->viewport_height[k] / 2.0 - 1.0, 8.0 * v->block_height256_bytes_c) + 8.0 * v->block_height256_bytes_c;
+                               v->meta_request_width_c = 64.0f * 256.0f / dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / (8.0f * v->block_height256_bytes_c);
+                               v->meta_surf_width_c = dcn_bw_ceil2(v->swath_width_y[k] / 2.0f - 1.0f, v->meta_request_width_c) + v->meta_request_width_c;
+                               v->meta_surf_height_c = dcn_bw_ceil2(v->viewport_height[k] / 2.0f - 1.0f, 8.0f * v->block_height256_bytes_c) + 8.0f * v->block_height256_bytes_c;
                                if (v->pte_enable == dcn_bw_yes) {
-                                       v->meta_pte_bytes_frame_c = (dcn_bw_ceil2((v->meta_surf_width_c * v->meta_surf_height_c *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 256.0 - 4096.0) / 8.0 / 4096.0, 1.0) + 1) * 64.0;
-                               }
-                               else {
-                                       v->meta_pte_bytes_frame_c = 0.0;
+                                       v->meta_pte_bytes_frame_c = (dcn_bw_ceil2((v->meta_surf_width_c * v->meta_surf_height_c * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / 256.0f - 4096.0f) / 8.0f / 4096.0f, 1.0f) + 1) * 64.0f;
+                               } else {
+                                       v->meta_pte_bytes_frame_c = 0.0f;
                                }
                                if (v->source_scan[k] == dcn_bw_hor) {
-                                       v->meta_row_byte_c = v->meta_surf_width_c * 8.0 * v->block_height256_bytes_c *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 256.0;
-                               }
-                               else {
-                                       v->meta_row_byte_c = v->meta_surf_height_c * v->meta_request_width_c *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 256.0;
+                                       v->meta_row_byte_c = v->meta_surf_width_c * 8.0f * v->block_height256_bytes_c * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / 256.0f;
+                               } else {
+                                       v->meta_row_byte_c = v->meta_surf_height_c * v->meta_request_width_c * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / 256.0f;
                                }
-                       }
-                       else {
-                               v->meta_pte_bytes_frame_c = 0.0;
-                               v->meta_row_byte_c = 0.0;
+                       } else {
+                               v->meta_pte_bytes_frame_c = 0.0f;
+                               v->meta_row_byte_c = 0.0f;
                        }
                        if (v->pte_enable == dcn_bw_yes) {
                                if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                                       v->macro_tile_size_bytes_c = 256.0;
-                                       v->macro_tile_height_c = 1.0;
-                               }
-                               else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
-                                       v->macro_tile_size_bytes_c = 4096.0;
-                                       v->macro_tile_height_c = 4.0 * v->block_height256_bytes_c;
-                               }
-                               else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
-                                       v->macro_tile_size_bytes_c = 64.0 * 1024;
-                                       v->macro_tile_height_c = 16.0 * v->block_height256_bytes_c;
-                               }
-                               else {
-                                       v->macro_tile_size_bytes_c = 256.0 * 1024;
-                                       v->macro_tile_height_c = 32.0 * v->block_height256_bytes_c;
-                               }
-                               if (v->macro_tile_size_bytes_c <= 65536.0) {
+                                       v->macro_tile_size_bytes_c = 256.0f;
+                                       v->macro_tile_height_c = 1.0f;
+                               } else if (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x) {
+                                       v->macro_tile_size_bytes_c = 4096.0f;
+                                       v->macro_tile_height_c = 4.0f * v->block_height256_bytes_c;
+                               } else if (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x) {
+                                       v->macro_tile_size_bytes_c = 64.0f * 1024;
+                                       v->macro_tile_height_c = 16.0f * v->block_height256_bytes_c;
+                               } else {
+                                       v->macro_tile_size_bytes_c = 256.0f * 1024;
+                                       v->macro_tile_height_c = 32.0f * v->block_height256_bytes_c;
+                               }
+                               if (v->macro_tile_size_bytes_c <= 65536.0f) {
                                        v->pixel_pte_req_height_c = v->macro_tile_height_c;
+                               } else {
+                                       v->pixel_pte_req_height_c = 16.0f * v->block_height256_bytes_c;
                                }
-                               else {
-                                       v->pixel_pte_req_height_c = 16.0 * v->block_height256_bytes_c;
-                               }
-                               v->pixel_pte_req_width_c = 4096.0 /dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / v->pixel_pte_req_height_c * 8;
+                               v->pixel_pte_req_width_c = 4096.0f / dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / v->pixel_pte_req_height_c * 8;
                                if (v->source_surface_mode[k] == dcn_bw_sw_linear) {
-                                       v->pixel_pte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->swath_width_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_requests * v->pixel_pte_req_width_c / (v->swath_width_y[k] / 2.0), 2.0), 1.0))) - 1.0) / v->pixel_pte_req_width_c, 1.0) + 1);
+                                       v->pixel_pte_bytes_per_row_c = 64.0f * (dcn_bw_ceil2((v->swath_width_y[k] / 2.0f * dcn_bw_min2(128.0f, dcn_bw_pow(2.0f, dcn_bw_floor2(dcn_bw_log(v->pte_buffer_size_in_requests * v->pixel_pte_req_width_c / (v->swath_width_y[k] / 2.0f), 2.0f), 1.0f))) - 1.0f) / v->pixel_pte_req_width_c, 1.0f) + 1);
+                               } else if (v->source_scan[k] == dcn_bw_hor) {
+                                       v->pixel_pte_bytes_per_row_c = 64.0f * (dcn_bw_ceil2((v->swath_width_y[k] / 2.0f - 1.0f) / v->pixel_pte_req_width_c, 1.0f) + 1);
+                               } else {
+                                       v->pixel_pte_bytes_per_row_c = 64.0f * (dcn_bw_ceil2((v->viewport_height[k] / 2.0f - 1.0f) / v->pixel_pte_req_height_c, 1.0f) + 1);
                                }
-                               else if (v->source_scan[k] == dcn_bw_hor) {
-                                       v->pixel_pte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->swath_width_y[k] / 2.0 - 1.0) / v->pixel_pte_req_width_c, 1.0) + 1);
-                               }
-                               else {
-                                       v->pixel_pte_bytes_per_row_c = 64.0 * (dcn_bw_ceil2((v->viewport_height[k] / 2.0 - 1.0) / v->pixel_pte_req_height_c, 1.0) + 1);
-                               }
-                       }
-                       else {
-                               v->pixel_pte_bytes_per_row_c = 0.0;
+                       } else {
+                               v->pixel_pte_bytes_per_row_c = 0.0f;
                        }
-               }
-               else {
-                       v->pixel_pte_bytes_per_row_c = 0.0;
-                       v->meta_pte_bytes_frame_c = 0.0;
-                       v->meta_row_byte_c = 0.0;
+               } else {
+                       v->pixel_pte_bytes_per_row_c = 0.0f;
+                       v->meta_pte_bytes_frame_c = 0.0f;
+                       v->meta_row_byte_c = 0.0f;
                }
                v->pixel_pte_bytes_per_row[k] = v->pixel_pte_bytes_per_row_y + v->pixel_pte_bytes_per_row_c;
                v->meta_pte_bytes_frame[k] = v->meta_pte_bytes_frame_y + v->meta_pte_bytes_frame_c;
                v->meta_row_byte[k] = v->meta_row_byte_y + v->meta_row_byte_c;
-               v->v_init_pre_fill_y[k] =dcn_bw_floor2((v->v_ratio[k] + v->vtaps[k] + 1.0 + v->interlace_output[k] * 0.5 * v->v_ratio[k]) / 2.0, 1.0);
-               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) + 1;
-               if (v->v_init_pre_fill_y[k] > 1.0) {
-                       v->max_partial_swath_y =dcn_bw_mod((v->v_init_pre_fill_y[k] - 2.0), v->swath_height_y[k]);
-               }
-               else {
-                       v->max_partial_swath_y =dcn_bw_mod((v->v_init_pre_fill_y[k] + v->swath_height_y[k] - 2.0), v->swath_height_y[k]);
-               }
-               v->max_partial_swath_y =dcn_bw_max2(1.0, v->max_partial_swath_y);
+               v->v_init_pre_fill_y[k] = dcn_bw_floor2((v->v_ratio[k] + v->vtaps[k] + 1.0f + v->interlace_output[k] * 0.5f * v->v_ratio[k]) / 2.0f, 1.0f);
+               v->max_num_swath_y[k] = dcn_bw_ceil2((v->v_init_pre_fill_y[k] - 1.0f) / v->swath_height_y[k], 1.0f) + 1;
+               if (v->v_init_pre_fill_y[k] > 1.0f) {
+                       v->max_partial_swath_y = dcn_bw_mod((v->v_init_pre_fill_y[k] - 2.0f), v->swath_height_y[k]);
+               } else {
+                       v->max_partial_swath_y = dcn_bw_mod((v->v_init_pre_fill_y[k] + v->swath_height_y[k] - 2.0f), v->swath_height_y[k]);
+               }
+               v->max_partial_swath_y = dcn_bw_max2(1.0f, v->max_partial_swath_y);
                v->prefetch_source_lines_y[k] = v->max_num_swath_y[k] * v->swath_height_y[k] + v->max_partial_swath_y;
                if ((v->source_pixel_format[k] != dcn_bw_rgb_sub_64 && v->source_pixel_format[k] != dcn_bw_rgb_sub_32 && v->source_pixel_format[k] != dcn_bw_rgb_sub_16)) {
-                       v->v_init_pre_fill_c[k] =dcn_bw_floor2((v->v_ratio[k] / 2.0 + v->vtaps[k] + 1.0 + v->interlace_output[k] * 0.5 * v->v_ratio[k] / 2.0) / 2.0, 1.0);
-                       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) + 1;
-                       if (v->v_init_pre_fill_c[k] > 1.0) {
-                               v->max_partial_swath_c =dcn_bw_mod((v->v_init_pre_fill_c[k] - 2.0), v->swath_height_c[k]);
-                       }
-                       else {
-                               v->max_partial_swath_c =dcn_bw_mod((v->v_init_pre_fill_c[k] + v->swath_height_c[k] - 2.0), v->swath_height_c[k]);
-                       }
-                       v->max_partial_swath_c =dcn_bw_max2(1.0, v->max_partial_swath_c);
-               }
-               else {
-                       v->max_num_swath_c[k] = 0.0;
-                       v->max_partial_swath_c = 0.0;
+                       v->v_init_pre_fill_c[k] = dcn_bw_floor2((v->v_ratio[k] / 2.0f + v->vtaps[k] + 1.0f + v->interlace_output[k] * 0.5f * v->v_ratio[k] / 2.0f) / 2.0f, 1.0f);
+                       v->max_num_swath_c[k] = dcn_bw_ceil2((v->v_init_pre_fill_c[k] - 1.0f) / v->swath_height_c[k], 1.0f) + 1;
+                       if (v->v_init_pre_fill_c[k] > 1.0f) {
+                               v->max_partial_swath_c = dcn_bw_mod((v->v_init_pre_fill_c[k] - 2.0f), v->swath_height_c[k]);
+                       } else {
+                               v->max_partial_swath_c = dcn_bw_mod((v->v_init_pre_fill_c[k] + v->swath_height_c[k] - 2.0f), v->swath_height_c[k]);
+                       }
+                       v->max_partial_swath_c = dcn_bw_max2(1.0f, v->max_partial_swath_c);
+               } else {
+                       v->max_num_swath_c[k] = 0.0f;
+                       v->max_partial_swath_c = 0.0f;
                }
                v->prefetch_source_lines_c[k] = v->max_num_swath_c[k] * v->swath_height_c[k] + v->max_partial_swath_c;
        }
-       v->t_calc = 24.0 / v->dcf_clk_deep_sleep;
+       v->t_calc = 24.0f / v->dcf_clk_deep_sleep;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->can_vstartup_lines_exceed_vsync_plus_back_porch_lines_minus_one == dcn_bw_yes) {
-                       v->max_vstartup_lines[k] = v->vtotal[k] - v->vactive[k] - 1.0;
-               }
-               else {
-                       v->max_vstartup_lines[k] = v->v_sync_plus_back_porch[k] - 1.0;
+                       v->max_vstartup_lines[k] = v->vtotal[k] - v->vactive[k] - 1.0f;
+               } else {
+                       v->max_vstartup_lines[k] = v->v_sync_plus_back_porch[k] - 1.0f;
                }
        }
-       v->next_prefetch_mode = 0.0;
+       v->next_prefetch_mode = 0.0f;
        do {
-               v->v_startup_lines = 13.0;
+               v->v_startup_lines = 13.0f;
                do {
                        v->planes_with_room_to_increase_vstartup_prefetch_bw_less_than_active_bw = dcn_bw_yes;
                        v->planes_with_room_to_increase_vstartup_vratio_prefetch_more_than4 = dcn_bw_no;
@@ -1640,159 +1468,142 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
                        v->destination_line_times_for_prefetch_less_than2 = dcn_bw_no;
                        v->prefetch_mode = v->next_prefetch_mode;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-                               v->dstx_after_scaler = 90.0 * v->pixel_clock[k] / v->dppclk + 42.0 * v->pixel_clock[k] / v->dispclk;
-                               if (v->dpp_per_plane[k] > 1.0) {
-                                       v->dstx_after_scaler = v->dstx_after_scaler + v->scaler_rec_out_width[k] / 2.0;
+                               v->dstx_after_scaler = 90.0f * v->pixel_clock[k] / v->dppclk + 42.0f * v->pixel_clock[k] / v->dispclk;
+                               if (v->dpp_per_plane[k] > 1.0f) {
+                                       v->dstx_after_scaler = v->dstx_after_scaler + v->scaler_rec_out_width[k] / 2.0f;
                                }
                                if (v->output_format[k] == dcn_bw_420) {
-                                       v->dsty_after_scaler = 1.0;
-                               }
-                               else {
-                                       v->dsty_after_scaler = 0.0;
-                               }
-                               v->v_update_offset_pix[k] = dcn_bw_ceil2(v->htotal[k] / 4.0, 1.0);
-                               v->total_repeater_delay_time = v->max_inter_dcn_tile_repeaters * (2.0 / v->dppclk + 3.0 / v->dispclk);
-                               v->v_update_width_pix[k] = (14.0 / v->dcf_clk_deep_sleep + 12.0 / v->dppclk + v->total_repeater_delay_time) * v->pixel_clock[k];
-                               v->v_ready_offset_pix[k] = dcn_bw_max2(150.0 / v->dppclk, v->total_repeater_delay_time + 20.0 / v->dcf_clk_deep_sleep + 10.0 / v->dppclk) * v->pixel_clock[k];
+                                       v->dsty_after_scaler = 1.0f;
+                               } else {
+                                       v->dsty_after_scaler = 0.0f;
+                               }
+                               v->v_update_offset_pix[k] = dcn_bw_ceil2(v->htotal[k] / 4.0f, 1.0f);
+                               v->total_repeater_delay_time = v->max_inter_dcn_tile_repeaters * (2.0f / v->dppclk + 3.0f / v->dispclk);
+                               v->v_update_width_pix[k] = (14.0f / v->dcf_clk_deep_sleep + 12.0f / v->dppclk + v->total_repeater_delay_time) * v->pixel_clock[k];
+                               v->v_ready_offset_pix[k] = dcn_bw_max2(150.0f / v->dppclk, v->total_repeater_delay_time + 20.0f / v->dcf_clk_deep_sleep + 10.0f / v->dppclk) * v->pixel_clock[k];
                                v->t_setup = (v->v_update_offset_pix[k] + v->v_update_width_pix[k] + v->v_ready_offset_pix[k]) / v->pixel_clock[k];
-                               v->v_startup[k] =dcn_bw_min2(v->v_startup_lines, v->max_vstartup_lines[k]);
-                               if (v->prefetch_mode == 0.0) {
-                                       v->t_wait =dcn_bw_max3(v->dram_clock_change_latency + v->urgent_latency, v->sr_enter_plus_exit_time, v->urgent_latency);
-                               }
-                               else if (v->prefetch_mode == 1.0) {
-                                       v->t_wait =dcn_bw_max2(v->sr_enter_plus_exit_time, v->urgent_latency);
-                               }
-                               else {
+                               v->v_startup[k] = dcn_bw_min2(v->v_startup_lines, v->max_vstartup_lines[k]);
+                               if (v->prefetch_mode == 0.0f) {
+                                       v->t_wait = dcn_bw_max3(v->dram_clock_change_latency + v->urgent_latency, v->sr_enter_plus_exit_time, v->urgent_latency);
+                               } else if (v->prefetch_mode == 1.0f) {
+                                       v->t_wait = dcn_bw_max2(v->sr_enter_plus_exit_time, v->urgent_latency);
+                               } else {
                                        v->t_wait = v->urgent_latency;
                                }
-                               v->destination_lines_for_prefetch[k] =dcn_bw_floor2(4.0 * (v->v_startup[k] - v->t_wait / (v->htotal[k] / v->pixel_clock[k]) - (v->t_calc + v->t_setup) / (v->htotal[k] / v->pixel_clock[k]) - (v->dsty_after_scaler + v->dstx_after_scaler / v->htotal[k]) + 0.125), 1.0) / 4;
-                               if (v->destination_lines_for_prefetch[k] > 0.0) {
-                                       v->prefetch_bandwidth[k] = (v->meta_pte_bytes_frame[k] + 2.0 * v->meta_row_byte[k] + 2.0 * v->pixel_pte_bytes_per_row[k] + v->prefetch_source_lines_y[k] * v->swath_width_y[k] *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) + v->prefetch_source_lines_c[k] * v->swath_width_y[k] / 2.0 *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0)) / (v->destination_lines_for_prefetch[k] * v->htotal[k] / v->pixel_clock[k]);
-                               }
-                               else {
-                                       v->prefetch_bandwidth[k] = 999999.0;
+                               v->destination_lines_for_prefetch[k] = dcn_bw_floor2(4.0f * (v->v_startup[k] - v->t_wait / (v->htotal[k] / v->pixel_clock[k]) - (v->t_calc + v->t_setup) / (v->htotal[k] / v->pixel_clock[k]) - (v->dsty_after_scaler + v->dstx_after_scaler / v->htotal[k]) + 0.125f), 1.0f) / 4;
+                               if (v->destination_lines_for_prefetch[k] > 0.0f) {
+                                       v->prefetch_bandwidth[k] = (v->meta_pte_bytes_frame[k] + 2.0f * v->meta_row_byte[k] + 2.0f * v->pixel_pte_bytes_per_row[k] + v->prefetch_source_lines_y[k] * v->swath_width_y[k] * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) + v->prefetch_source_lines_c[k] * v->swath_width_y[k] / 2.0f * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f)) / (v->destination_lines_for_prefetch[k] * v->htotal[k] / v->pixel_clock[k]);
+                               } else {
+                                       v->prefetch_bandwidth[k] = 999999.0f;
                                }
                        }
                        v->bandwidth_available_for_immediate_flip = v->return_bw;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                v->bandwidth_available_for_immediate_flip = v->bandwidth_available_for_immediate_flip -dcn_bw_max2(v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k], v->prefetch_bandwidth[k]);
                        }
-                       v->tot_immediate_flip_bytes = 0.0;
+                       v->tot_immediate_flip_bytes = 0.0f;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                if (v->immediate_flip_supported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
                                        v->tot_immediate_flip_bytes = v->tot_immediate_flip_bytes + v->meta_pte_bytes_frame[k] + v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k];
                                }
                        }
-                       v->max_rd_bandwidth = 0.0;
+                       v->max_rd_bandwidth = 0.0f;
                        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                                if (v->pte_enable == dcn_bw_yes && v->dcc_enable[k] == dcn_bw_yes) {
                                        if (v->immediate_flip_supported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
-                                               v->time_for_fetching_meta_pte =dcn_bw_max5(v->meta_pte_bytes_frame[k] / v->prefetch_bandwidth[k], v->meta_pte_bytes_frame[k] * v->tot_immediate_flip_bytes / (v->bandwidth_available_for_immediate_flip * (v->meta_pte_bytes_frame[k] + v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k])), v->urgent_extra_latency, v->urgent_latency, v->htotal[k] / v->pixel_clock[k] / 4.0);
-                                       }
-                                       else {
-                                               v->time_for_fetching_meta_pte =dcn_bw_max3(v->meta_pte_bytes_frame[k] / v->prefetch_bandwidth[k], v->urgent_extra_latency, v->htotal[k] / v->pixel_clock[k] / 4.0);
+                                               v->time_for_fetching_meta_pte = dcn_bw_max5(v->meta_pte_bytes_frame[k] / v->prefetch_bandwidth[k], v->meta_pte_bytes_frame[k] * v->tot_immediate_flip_bytes / (v->bandwidth_available_for_immediate_flip * (v->meta_pte_bytes_frame[k] + v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k])), v->urgent_extra_latency, v->urgent_latency, v->htotal[k] / v->pixel_clock[k] / 4.0f);
+                                       } else {
+                                               v->time_for_fetching_meta_pte = dcn_bw_max3(v->meta_pte_bytes_frame[k] / v->prefetch_bandwidth[k], v->urgent_extra_latency, v->htotal[k] / v->pixel_clock[k] / 4.0f);
                                        }
+                               } else {
+                                       v->time_for_fetching_meta_pte = v->htotal[k] / v->pixel_clock[k] / 4.0f;
                                }
-                               else {
-                                       v->time_for_fetching_meta_pte = v->htotal[k] / v->pixel_clock[k] / 4.0;
-                               }
-                               v->destination_lines_to_request_vm_inv_blank[k] =dcn_bw_floor2(4.0 * (v->time_for_fetching_meta_pte / (v->htotal[k] / v->pixel_clock[k]) + 0.125), 1.0) / 4;
+                               v->destination_lines_to_request_vm_inv_blank[k] = dcn_bw_floor2(4.0f * (v->time_for_fetching_meta_pte / (v->htotal[k] / v->pixel_clock[k]) + 0.125f), 1.0f) / 4;
                                if ((v->pte_enable == dcn_bw_yes || v->dcc_enable[k] == dcn_bw_yes)) {
                                        if (v->immediate_flip_supported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
-                                               v->time_for_fetching_row_in_vblank =dcn_bw_max5((v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / v->prefetch_bandwidth[k], (v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) * v->tot_immediate_flip_bytes / (v->bandwidth_available_for_immediate_flip * (v->meta_pte_bytes_frame[k] + v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k])), v->urgent_extra_latency, 2.0 * v->urgent_latency, v->htotal[k] / v->pixel_clock[k] - v->time_for_fetching_meta_pte);
-                                       }
-                                       else {
-                                               v->time_for_fetching_row_in_vblank =dcn_bw_max3((v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / v->prefetch_bandwidth[k], v->urgent_extra_latency, v->htotal[k] / v->pixel_clock[k] - v->time_for_fetching_meta_pte);
+                                               v->time_for_fetching_row_in_vblank = dcn_bw_max5((v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / v->prefetch_bandwidth[k], (v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) * v->tot_immediate_flip_bytes / (v->bandwidth_available_for_immediate_flip * (v->meta_pte_bytes_frame[k] + v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k])), v->urgent_extra_latency, 2.0f * v->urgent_latency, v->htotal[k] / v->pixel_clock[k] - v->time_for_fetching_meta_pte);
+                                       } else {
+                                               v->time_for_fetching_row_in_vblank = dcn_bw_max3((v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / v->prefetch_bandwidth[k], v->urgent_extra_latency, v->htotal[k] / v->pixel_clock[k] - v->time_for_fetching_meta_pte);
                                        }
+                               } else {
+                                       v->time_for_fetching_row_in_vblank = dcn_bw_max2(v->urgent_extra_latency - v->time_for_fetching_meta_pte, v->htotal[k] / v->pixel_clock[k] - v->time_for_fetching_meta_pte);
                                }
-                               else {
-                                       v->time_for_fetching_row_in_vblank =dcn_bw_max2(v->urgent_extra_latency - v->time_for_fetching_meta_pte, v->htotal[k] / v->pixel_clock[k] - v->time_for_fetching_meta_pte);
-                               }
-                               v->destination_lines_to_request_row_in_vblank[k] =dcn_bw_floor2(4.0 * (v->time_for_fetching_row_in_vblank / (v->htotal[k] / v->pixel_clock[k]) + 0.125), 1.0) / 4;
+                               v->destination_lines_to_request_row_in_vblank[k] = dcn_bw_floor2(4.0f * (v->time_for_fetching_row_in_vblank / (v->htotal[k] / v->pixel_clock[k]) + 0.125f), 1.0f) / 4;
                                v->lines_to_request_prefetch_pixel_data = v->destination_lines_for_prefetch[k] - v->destination_lines_to_request_vm_inv_blank[k] - v->destination_lines_to_request_row_in_vblank[k];
-                               if (v->lines_to_request_prefetch_pixel_data > 0.0) {
+                               if (v->lines_to_request_prefetch_pixel_data > 0.0f) {
                                        v->v_ratio_prefetch_y[k] = v->prefetch_source_lines_y[k] / v->lines_to_request_prefetch_pixel_data;
-                                       if ((v->swath_height_y[k] > 4.0)) {
-                                               if (v->lines_to_request_prefetch_pixel_data > (v->v_init_pre_fill_y[k] - 3.0) / 2.0) {
-                                                       v->v_ratio_prefetch_y[k] =dcn_bw_max2(v->v_ratio_prefetch_y[k], v->max_num_swath_y[k] * v->swath_height_y[k] / (v->lines_to_request_prefetch_pixel_data - (v->v_init_pre_fill_y[k] - 3.0) / 2.0));
-                                               }
-                                               else {
-                                                       v->v_ratio_prefetch_y[k] = 999999.0;
+                                       if ((v->swath_height_y[k] > 4.0f)) {
+                                               if (v->lines_to_request_prefetch_pixel_data > (v->v_init_pre_fill_y[k] - 3.0f) / 2.0f) {
+                                                       v->v_ratio_prefetch_y[k] = dcn_bw_max2(v->v_ratio_prefetch_y[k], v->max_num_swath_y[k] * v->swath_height_y[k] / (v->lines_to_request_prefetch_pixel_data - (v->v_init_pre_fill_y[k] - 3.0f) / 2.0f));
+                                               } else {
+                                                       v->v_ratio_prefetch_y[k] = 999999.0f;
                                                }
                                        }
+                               } else {
+                                       v->v_ratio_prefetch_y[k] = 999999.0f;
                                }
-                               else {
-                                       v->v_ratio_prefetch_y[k] = 999999.0;
-                               }
-                               v->v_ratio_prefetch_y[k] =dcn_bw_max2(v->v_ratio_prefetch_y[k], 1.0);
-                               if (v->lines_to_request_prefetch_pixel_data > 0.0) {
+                               v->v_ratio_prefetch_y[k] = dcn_bw_max2(v->v_ratio_prefetch_y[k], 1.0f);
+                               if (v->lines_to_request_prefetch_pixel_data > 0.0f) {
                                        v->v_ratio_prefetch_c[k] = v->prefetch_source_lines_c[k] / v->lines_to_request_prefetch_pixel_data;
-                                       if ((v->swath_height_c[k] > 4.0)) {
-                                               if (v->lines_to_request_prefetch_pixel_data > (v->v_init_pre_fill_c[k] - 3.0) / 2.0) {
-                                                       v->v_ratio_prefetch_c[k] =dcn_bw_max2(v->v_ratio_prefetch_c[k], v->max_num_swath_c[k] * v->swath_height_c[k] / (v->lines_to_request_prefetch_pixel_data - (v->v_init_pre_fill_c[k] - 3.0) / 2.0));
-                                               }
-                                               else {
-                                                       v->v_ratio_prefetch_c[k] = 999999.0;
+                                       if ((v->swath_height_c[k] > 4.0f)) {
+                                               if (v->lines_to_request_prefetch_pixel_data > (v->v_init_pre_fill_c[k] - 3.0f) / 2.0f) {
+                                                       v->v_ratio_prefetch_c[k] = dcn_bw_max2(v->v_ratio_prefetch_c[k], v->max_num_swath_c[k] * v->swath_height_c[k] / (v->lines_to_request_prefetch_pixel_data - (v->v_init_pre_fill_c[k] - 3.0f) / 2.0f));
+                                               } else {
+                                                       v->v_ratio_prefetch_c[k] = 999999.0f;
                                                }
                                        }
+                               } else {
+                                       v->v_ratio_prefetch_c[k] = 999999.0f;
                                }
-                               else {
-                                       v->v_ratio_prefetch_c[k] = 999999.0;
-                               }
-                               v->v_ratio_prefetch_c[k] =dcn_bw_max2(v->v_ratio_prefetch_c[k], 1.0);
-                               if (v->lines_to_request_prefetch_pixel_data > 0.0) {
-                                       v->required_prefetch_pix_data_bw = v->dpp_per_plane[k] * (v->prefetch_source_lines_y[k] / v->lines_to_request_prefetch_pixel_data *dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) + v->prefetch_source_lines_c[k] / v->lines_to_request_prefetch_pixel_data *dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / 2.0) * v->swath_width_y[k] / (v->htotal[k] / v->pixel_clock[k]);
+                               v->v_ratio_prefetch_c[k] = dcn_bw_max2(v->v_ratio_prefetch_c[k], 1.0f);
+                               if (v->lines_to_request_prefetch_pixel_data > 0.0f) {
+                                       v->required_prefetch_pix_data_bw = v->dpp_per_plane[k] * (v->prefetch_source_lines_y[k] / v->lines_to_request_prefetch_pixel_data * dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) + v->prefetch_source_lines_c[k] / v->lines_to_request_prefetch_pixel_data * dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / 2.0f) * v->swath_width_y[k] / (v->htotal[k] / v->pixel_clock[k]);
+                               } else {
+                                       v->required_prefetch_pix_data_bw = 999999.0f;
                                }
-                               else {
-                                       v->required_prefetch_pix_data_bw = 999999.0;
-                               }
-                               v->max_rd_bandwidth = v->max_rd_bandwidth +dcn_bw_max2(v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k], v->required_prefetch_pix_data_bw);
+                               v->max_rd_bandwidth = v->max_rd_bandwidth + dcn_bw_max2(v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k], v->required_prefetch_pix_data_bw);
                                if (v->immediate_flip_supported == dcn_bw_yes && (v->source_pixel_format[k] != dcn_bw_yuv420_sub_8 && v->source_pixel_format[k] != dcn_bw_yuv420_sub_10)) {
-                                       v->max_rd_bandwidth = v->max_rd_bandwidth +dcn_bw_max2(v->meta_pte_bytes_frame[k] / (v->destination_lines_to_request_vm_inv_blank[k] * v->htotal[k] / v->pixel_clock[k]), (v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / (v->destination_lines_to_request_row_in_vblank[k] * v->htotal[k] / v->pixel_clock[k]));
+                                       v->max_rd_bandwidth = v->max_rd_bandwidth + dcn_bw_max2(v->meta_pte_bytes_frame[k] / (v->destination_lines_to_request_vm_inv_blank[k] * v->htotal[k] / v->pixel_clock[k]), (v->meta_row_byte[k] + v->pixel_pte_bytes_per_row[k]) / (v->destination_lines_to_request_row_in_vblank[k] * v->htotal[k] / v->pixel_clock[k]));
                                }
-                               if (v->v_ratio_prefetch_y[k] > 4.0 || v->v_ratio_prefetch_c[k] > 4.0) {
+                               if (v->v_ratio_prefetch_y[k] > 4.0f || v->v_ratio_prefetch_c[k] > 4.0f) {
                                        v->v_ratio_prefetch_more_than4 = dcn_bw_yes;
                                }
-                               if (v->destination_lines_for_prefetch[k] < 2.0) {
+                               if (v->destination_lines_for_prefetch[k] < 2.0f) {
                                        v->destination_line_times_for_prefetch_less_than2 = dcn_bw_yes;
                                }
                                if (v->max_vstartup_lines[k] > v->v_startup_lines) {
                                        if (v->required_prefetch_pix_data_bw > (v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k])) {
                                                v->planes_with_room_to_increase_vstartup_prefetch_bw_less_than_active_bw = dcn_bw_no;
                                        }
-                                       if (v->v_ratio_prefetch_y[k] > 4.0 || v->v_ratio_prefetch_c[k] > 4.0) {
+                                       if (v->v_ratio_prefetch_y[k] > 4.0f || v->v_ratio_prefetch_c[k] > 4.0f) {
                                                v->planes_with_room_to_increase_vstartup_vratio_prefetch_more_than4 = dcn_bw_yes;
                                        }
-                                       if (v->destination_lines_for_prefetch[k] < 2.0) {
+                                       if (v->destination_lines_for_prefetch[k] < 2.0f) {
                                                v->planes_with_room_to_increase_vstartup_destination_line_times_for_prefetch_less_than2 = dcn_bw_yes;
                                        }
                                }
                        }
                        if (v->max_rd_bandwidth <= v->return_bw && v->v_ratio_prefetch_more_than4 == dcn_bw_no && v->destination_line_times_for_prefetch_less_than2 == dcn_bw_no) {
                                v->prefetch_mode_supported = dcn_bw_yes;
-                       }
-                       else {
+                       } else {
                                v->prefetch_mode_supported = dcn_bw_no;
                        }
-                       v->v_startup_lines = v->v_startup_lines + 1.0;
+                       v->v_startup_lines = v->v_startup_lines + 1.0f;
                } while (!(v->prefetch_mode_supported == dcn_bw_yes || (v->planes_with_room_to_increase_vstartup_prefetch_bw_less_than_active_bw == dcn_bw_yes && v->planes_with_room_to_increase_vstartup_vratio_prefetch_more_than4 == dcn_bw_no && v->planes_with_room_to_increase_vstartup_destination_line_times_for_prefetch_less_than2 == dcn_bw_no)));
-               v->next_prefetch_mode = v->next_prefetch_mode + 1.0;
-       } while (!(v->prefetch_mode_supported == dcn_bw_yes || v->prefetch_mode == 2.0));
+               v->next_prefetch_mode = v->next_prefetch_mode + 1.0f;
+       } while (!(v->prefetch_mode_supported == dcn_bw_yes || v->prefetch_mode == 2.0f));
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->v_ratio_prefetch_y[k] <= 1.0) {
+               if (v->v_ratio_prefetch_y[k] <= 1.0f) {
                        v->display_pipe_line_delivery_time_luma_prefetch[k] = v->swath_width_y[k] * v->dpp_per_plane[k] / v->h_ratio[k] / v->pixel_clock[k];
-               }
-               else {
+               } else {
                        v->display_pipe_line_delivery_time_luma_prefetch[k] = v->swath_width_y[k] / v->pscl_throughput[k] / v->dppclk;
                }
-               if (v->byte_per_pixel_detc[k] == 0.0) {
-                       v->display_pipe_line_delivery_time_chroma_prefetch[k] = 0.0;
-               }
-               else {
-                       if (v->v_ratio_prefetch_c[k] <= 1.0) {
+               if (v->byte_per_pixel_detc[k] == 0.0f) {
+                       v->display_pipe_line_delivery_time_chroma_prefetch[k] = 0.0f;
+               } else {
+                       if (v->v_ratio_prefetch_c[k] <= 1.0f) {
                                v->display_pipe_line_delivery_time_chroma_prefetch[k] = v->swath_width_y[k] * v->dpp_per_plane[k] / v->h_ratio[k] / v->pixel_clock[k];
-                       }
-                       else {
+                       } else {
                                v->display_pipe_line_delivery_time_chroma_prefetch[k] = v->swath_width_y[k] / v->pscl_throughput[k] / v->dppclk;
                        }
                }
@@ -1800,17 +1611,15 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
        /*min ttuv_blank*/
 
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               if (v->prefetch_mode == 0.0) {
+               if (v->prefetch_mode == 0.0f) {
                        v->allow_dram_clock_change_during_vblank[k] = dcn_bw_yes;
                        v->allow_dram_self_refresh_during_vblank[k] = dcn_bw_yes;
-                       v->min_ttuv_blank[k] = v->t_calc +dcn_bw_max3(v->dram_clock_change_watermark, v->stutter_enter_plus_exit_watermark, v->urgent_watermark);
-               }
-               else if (v->prefetch_mode == 1.0) {
+                       v->min_ttuv_blank[k] = v->t_calc + dcn_bw_max3(v->dram_clock_change_watermark, v->stutter_enter_plus_exit_watermark, v->urgent_watermark);
+               } else if (v->prefetch_mode == 1.0f) {
                        v->allow_dram_clock_change_during_vblank[k] = dcn_bw_no;
                        v->allow_dram_self_refresh_during_vblank[k] = dcn_bw_yes;
-                       v->min_ttuv_blank[k] = v->t_calc +dcn_bw_max2(v->stutter_enter_plus_exit_watermark, v->urgent_watermark);
-               }
-               else {
+                       v->min_ttuv_blank[k] = v->t_calc + dcn_bw_max2(v->stutter_enter_plus_exit_watermark, v->urgent_watermark);
+               } else {
                        v->allow_dram_clock_change_during_vblank[k] = dcn_bw_no;
                        v->allow_dram_self_refresh_during_vblank[k] = dcn_bw_no;
                        v->min_ttuv_blank[k] = v->t_calc + v->urgent_watermark;
@@ -1818,115 +1627,102 @@ void dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performan
        }
        /*nb p-state/dram clock change support*/
 
-       v->active_dp_ps = 0.0;
+       v->active_dp_ps = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                v->active_dp_ps = v->active_dp_ps + v->dpp_per_plane[k];
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
-               v->lb_latency_hiding_source_lines_y =dcn_bw_min2(v->max_line_buffer_lines,dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_y[k] /dcn_bw_max2(v->h_ratio[k], 1.0)), 1.0)) - (v->vtaps[k] - 1.0);
-               v->lb_latency_hiding_source_lines_c =dcn_bw_min2(v->max_line_buffer_lines,dcn_bw_floor2(v->line_buffer_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)), 1.0)) - (v->vta_pschroma[k] - 1.0);
+               v->lb_latency_hiding_source_lines_y = dcn_bw_min2(v->max_line_buffer_lines, dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_y[k] / dcn_bw_max2(v->h_ratio[k], 1.0f)), 1.0f)) - (v->vtaps[k] - 1.0f);
+               v->lb_latency_hiding_source_lines_c = dcn_bw_min2(v->max_line_buffer_lines, dcn_bw_floor2(v->line_buffer_size / v->lb_bit_per_pixel[k] / (v->swath_width_y[k] / 2.0f / dcn_bw_max2(v->h_ratio[k] / 2.0f, 1.0f)), 1.0f)) - (v->vta_pschroma[k] - 1.0f);
                v->effective_lb_latency_hiding_y = v->lb_latency_hiding_source_lines_y / v->v_ratio[k] * (v->htotal[k] / v->pixel_clock[k]);
-               v->effective_lb_latency_hiding_c = v->lb_latency_hiding_source_lines_c / (v->v_ratio[k] / 2.0) * (v->htotal[k] / v->pixel_clock[k]);
-               if (v->swath_width_y[k] > 2.0 * v->dpp_output_buffer_pixels) {
+               v->effective_lb_latency_hiding_c = v->lb_latency_hiding_source_lines_c / (v->v_ratio[k] / 2.0f) * (v->htotal[k] / v->pixel_clock[k]);
+               if (v->swath_width_y[k] > 2.0f * v->dpp_output_buffer_pixels) {
                        v->dpp_output_buffer_lines_y = v->dpp_output_buffer_pixels / v->swath_width_y[k];
-               }
-               else if (v->swath_width_y[k] > v->dpp_output_buffer_pixels) {
-                       v->dpp_output_buffer_lines_y = 0.5;
-               }
-               else {
-                       v->dpp_output_buffer_lines_y = 1.0;
-               }
-               if (v->swath_width_y[k] / 2.0 > 2.0 * v->dpp_output_buffer_pixels) {
-                       v->dpp_output_buffer_lines_c = v->dpp_output_buffer_pixels / (v->swath_width_y[k] / 2.0);
-               }
-               else if (v->swath_width_y[k] / 2.0 > v->dpp_output_buffer_pixels) {
-                       v->dpp_output_buffer_lines_c = 0.5;
-               }
-               else {
-                       v->dpp_output_buffer_lines_c = 1.0;
+               } else if (v->swath_width_y[k] > v->dpp_output_buffer_pixels) {
+                       v->dpp_output_buffer_lines_y = 0.5f;
+               } else {
+                       v->dpp_output_buffer_lines_y = 1.0f;
+               }
+               if (v->swath_width_y[k] / 2.0f > 2.0f * v->dpp_output_buffer_pixels) {
+                       v->dpp_output_buffer_lines_c = v->dpp_output_buffer_pixels / (v->swath_width_y[k] / 2.0f);
+               } else if (v->swath_width_y[k] / 2.0f > v->dpp_output_buffer_pixels) {
+                       v->dpp_output_buffer_lines_c = 0.5f;
+               } else {
+                       v->dpp_output_buffer_lines_c = 1.0f;
                }
                v->dppopp_buffering_y = (v->htotal[k] / v->pixel_clock[k]) * (v->dpp_output_buffer_lines_y + v->opp_output_buffer_lines);
                v->max_det_buffering_time_y = v->full_det_buffering_time_y[k] + (v->lines_in_dety[k] - v->lines_in_dety_rounded_down_to_swath[k]) / v->swath_height_y[k] * (v->htotal[k] / v->pixel_clock[k]);
                v->active_dram_clock_change_latency_margin_y = v->dppopp_buffering_y + v->effective_lb_latency_hiding_y + v->max_det_buffering_time_y - v->dram_clock_change_watermark;
-               if (v->active_dp_ps > 1.0) {
-                       v->active_dram_clock_change_latency_margin_y = v->active_dram_clock_change_latency_margin_y - (1.0 - 1.0 / (v->active_dp_ps - 1.0)) * v->swath_height_y[k] * (v->htotal[k] / v->pixel_clock[k]);
+               if (v->active_dp_ps > 1.0f) {
+                       v->active_dram_clock_change_latency_margin_y = v->active_dram_clock_change_latency_margin_y - (1.0f - 1.0f / (v->active_dp_ps - 1.0f)) * v->swath_height_y[k] * (v->htotal[k] / v->pixel_clock[k]);
                }
-               if (v->byte_per_pixel_detc[k] > 0.0) {
+               if (v->byte_per_pixel_detc[k] > 0.0f) {
                        v->dppopp_buffering_c = (v->htotal[k] / v->pixel_clock[k]) * (v->dpp_output_buffer_lines_c + v->opp_output_buffer_lines);
                        v->max_det_buffering_time_c = v->full_det_buffering_time_c[k] + (v->lines_in_detc[k] - v->lines_in_detc_rounded_down_to_swath[k]) / v->swath_height_c[k] * (v->htotal[k] / v->pixel_clock[k]);
                        v->active_dram_clock_change_latency_margin_c = v->dppopp_buffering_c + v->effective_lb_latency_hiding_c + v->max_det_buffering_time_c - v->dram_clock_change_watermark;
-                       if (v->active_dp_ps > 1.0) {
-                               v->active_dram_clock_change_latency_margin_c = v->active_dram_clock_change_latency_margin_c - (1.0 - 1.0 / (v->active_dp_ps - 1.0)) * v->swath_height_c[k] * (v->htotal[k] / v->pixel_clock[k]);
+                       if (v->active_dp_ps > 1.0f) {
+                               v->active_dram_clock_change_latency_margin_c = v->active_dram_clock_change_latency_margin_c - (1.0f - 1.0f / (v->active_dp_ps - 1.0f)) * v->swath_height_c[k] * (v->htotal[k] / v->pixel_clock[k]);
                        }
-                       v->active_dram_clock_change_latency_margin[k] =dcn_bw_min2(v->active_dram_clock_change_latency_margin_y, v->active_dram_clock_change_latency_margin_c);
-               }
-               else {
+                       v->active_dram_clock_change_latency_margin[k] = dcn_bw_min2(v->active_dram_clock_change_latency_margin_y, v->active_dram_clock_change_latency_margin_c);
+               } else {
                        v->active_dram_clock_change_latency_margin[k] = v->active_dram_clock_change_latency_margin_y;
                }
                if (v->output_format[k] == dcn_bw_444) {
-                       v->writeback_dram_clock_change_latency_margin = (v->writeback_luma_buffer_size + v->writeback_chroma_buffer_size) * 1024.0 / (v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0) - v->writeback_dram_clock_change_watermark;
-               }
-               else {
-                       v->writeback_dram_clock_change_latency_margin =dcn_bw_min2(v->writeback_luma_buffer_size, 2.0 * v->writeback_chroma_buffer_size) * 1024.0 / (v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k])) - v->writeback_dram_clock_change_watermark;
+                       v->writeback_dram_clock_change_latency_margin = (v->writeback_luma_buffer_size + v->writeback_chroma_buffer_size) * 1024.0f / (v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0f) - v->writeback_dram_clock_change_watermark;
+               } else {
+                       v->writeback_dram_clock_change_latency_margin = dcn_bw_min2(v->writeback_luma_buffer_size, 2.0f * v->writeback_chroma_buffer_size) * 1024.0f / (v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k])) - v->writeback_dram_clock_change_watermark;
                }
                if (v->output[k] == dcn_bw_writeback) {
-                       v->active_dram_clock_change_latency_margin[k] =dcn_bw_min2(v->active_dram_clock_change_latency_margin[k], v->writeback_dram_clock_change_latency_margin);
+                       v->active_dram_clock_change_latency_margin[k] = dcn_bw_min2(v->active_dram_clock_change_latency_margin[k], v->writeback_dram_clock_change_latency_margin);
                }
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->allow_dram_clock_change_during_vblank[k] == dcn_bw_yes) {
                        v->v_blank_dram_clock_change_latency_margin[k] = (v->vtotal[k] - v->scaler_recout_height[k]) * (v->htotal[k] / v->pixel_clock[k]) -dcn_bw_max2(v->dram_clock_change_watermark, v->writeback_dram_clock_change_watermark);
-               }
-               else {
-                       v->v_blank_dram_clock_change_latency_margin[k] = 0.0;
+               } else {
+                       v->v_blank_dram_clock_change_latency_margin[k] = 0.0f;
                }
        }
-       v->min_active_dram_clock_change_margin = 999999.0;
-       v->v_blank_of_min_active_dram_clock_change_margin = 999999.0;
-       v->second_min_active_dram_clock_change_margin = 999999.0;
+       v->min_active_dram_clock_change_margin = 999999.0f;
+       v->v_blank_of_min_active_dram_clock_change_margin = 999999.0f;
+       v->second_min_active_dram_clock_change_margin = 999999.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->active_dram_clock_change_latency_margin[k] < v->min_active_dram_clock_change_margin) {
                        v->second_min_active_dram_clock_change_margin = v->min_active_dram_clock_change_margin;
                        v->min_active_dram_clock_change_margin = v->active_dram_clock_change_latency_margin[k];
                        v->v_blank_of_min_active_dram_clock_change_margin = v->v_blank_dram_clock_change_latency_margin[k];
-               }
-               else if (v->active_dram_clock_change_latency_margin[k] < v->second_min_active_dram_clock_change_margin) {
+               } else if (v->active_dram_clock_change_latency_margin[k] < v->second_min_active_dram_clock_change_margin) {
                        v->second_min_active_dram_clock_change_margin = v->active_dram_clock_change_latency_margin[k];
                }
        }
-       v->min_vblank_dram_clock_change_margin = 999999.0;
+       v->min_vblank_dram_clock_change_margin = 999999.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->min_vblank_dram_clock_change_margin > v->v_blank_dram_clock_change_latency_margin[k]) {
                        v->min_vblank_dram_clock_change_margin = v->v_blank_dram_clock_change_latency_margin[k];
                }
        }
        if (v->synchronized_vblank == dcn_bw_yes || v->number_of_active_planes == 1) {
-               v->dram_clock_change_margin =dcn_bw_max2(v->min_active_dram_clock_change_margin, v->min_vblank_dram_clock_change_margin);
-       }
-       else if (v->v_blank_of_min_active_dram_clock_change_margin > v->min_active_dram_clock_change_margin) {
-               v->dram_clock_change_margin =dcn_bw_min2(v->second_min_active_dram_clock_change_margin, v->v_blank_of_min_active_dram_clock_change_margin);
-       }
-       else {
+               v->dram_clock_change_margin = dcn_bw_max2(v->min_active_dram_clock_change_margin, v->min_vblank_dram_clock_change_margin);
+       } else if (v->v_blank_of_min_active_dram_clock_change_margin > v->min_active_dram_clock_change_margin) {
+               v->dram_clock_change_margin = dcn_bw_min2(v->second_min_active_dram_clock_change_margin, v->v_blank_of_min_active_dram_clock_change_margin);
+       } else {
                v->dram_clock_change_margin = v->min_active_dram_clock_change_margin;
        }
-       if (v->min_active_dram_clock_change_margin > 0.0) {
+       if (v->min_active_dram_clock_change_margin > 0.0f) {
                v->dram_clock_change_support = dcn_bw_supported_in_v_active;
-       }
-       else if (v->dram_clock_change_margin > 0.0) {
+       } else if (v->dram_clock_change_margin > 0.0f) {
                v->dram_clock_change_support = dcn_bw_supported_in_v_blank;
-       }
-       else {
+       } else {
                v->dram_clock_change_support = dcn_bw_not_supported;
        }
        /*maximum bandwidth used*/
 
-       v->wr_bandwidth = 0.0;
+       v->wr_bandwidth = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->output[k] == dcn_bw_writeback && v->output_format[k] == dcn_bw_444) {
-                       v->wr_bandwidth = v->wr_bandwidth + v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0;
-               }
-               else if (v->output[k] == dcn_bw_writeback) {
-                       v->wr_bandwidth = v->wr_bandwidth + v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 1.5;
+                       v->wr_bandwidth = v->wr_bandwidth + v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 4.0f;
+               } else if (v->output[k] == dcn_bw_writeback) {
+                       v->wr_bandwidth = v->wr_bandwidth + v->scaler_rec_out_width[k] / (v->htotal[k] / v->pixel_clock[k]) * 1.5f;
                }
        }
        v->max_used_bw = v->max_rd_bandwidth + v->wr_bandwidth;
index cac72413a0977ec6f428e9a780bacc3db5492932..16b990147d1dde8861d2f8ed0226a2360143771d 100644 (file)
@@ -76,12 +76,12 @@ float dcn_bw_floor2(const float arg, const float significance)
 }
 float dcn_bw_floor(const float arg)
 {
-       return ((int) (arg));
+       return (float)((int)(arg));
 }
 
 float dcn_bw_ceil(const float arg)
 {
-       return (int) (arg + 0.99999);
+       return (float)((int)(arg + 0.99999f));
 }
 
 float dcn_bw_ceil2(const float arg, const float significance)
@@ -107,7 +107,7 @@ float dcn_bw_pow(float a, float exp)
        /*ASSERT(exp == (int)exp);*/
        if ((int)exp == 0)
                return 1;
-       temp = dcn_bw_pow(a, (int)(exp / 2));
+       temp = dcn_bw_pow(a, (float)((int)(exp / 2)));
        if (((int)exp % 2) == 0) {
                return temp * temp;
        } else {
index a95f94d6c7c320d00952eb9eaf4d834d4d3edd2d..00048bad094a4c3f15929f59a08199ed3b80bdc8 100644 (file)
@@ -72,21 +72,21 @@ const struct dcn_soc_bounding_box dcn10_soc_defaults = {
                 * Use these value if fused value doesn't make sense as earlier
                 * part don't have correct value fused */
                /* default DCF CLK DPM on RV*/
-               .dcfclkv_max0p9 = 655,  /* MHz, = 3600/5.5 */
-               .dcfclkv_nom0p8 = 626,  /* MHz, = 3600/5.75 */
+               .dcfclkv_max0p9 = 655,  /* MHz, = 3600/5.5f */
+               .dcfclkv_nom0p8 = 626,  /* MHz, = 3600/5.75f */
                .dcfclkv_mid0p72 = 600, /* MHz, = 3600/6, bypass */
                .dcfclkv_min0p65 = 300, /* MHz, = 3600/12, bypass */
 
                /* default DISP CLK voltage state on RV */
-               .max_dispclk_vmax0p9 = 1108,    /* MHz, = 3600/3.25 */
-               .max_dispclk_vnom0p8 = 1029,    /* MHz, = 3600/3.5 */
-               .max_dispclk_vmid0p72 = 960,    /* MHz, = 3600/3.75 */
-               .max_dispclk_vmin0p65 = 626,    /* MHz, = 3600/5.75 */
+               .max_dispclk_vmax0p9 = 1108,    /* MHz, = 3600/3.25f */
+               .max_dispclk_vnom0p8 = 1029,    /* MHz, = 3600/3.5f */
+               .max_dispclk_vmid0p72 = 960,    /* MHz, = 3600/3.75f */
+               .max_dispclk_vmin0p65 = 626,    /* MHz, = 3600/5.75f */
 
                /* default DPP CLK voltage state on RV */
                .max_dppclk_vmax0p9 = 720,      /* MHz, = 3600/5 */
-               .max_dppclk_vnom0p8 = 686,      /* MHz, = 3600/5.25 */
-               .max_dppclk_vmid0p72 = 626,     /* MHz, = 3600/5.75 */
+               .max_dppclk_vnom0p8 = 686,      /* MHz, = 3600/5.25f */
+               .max_dppclk_vmid0p72 = 626,     /* MHz, = 3600/5.75f */
                .max_dppclk_vmin0p65 = 400,     /* MHz, = 3600/9 */
 
                /* default PHY CLK voltage state on RV */
@@ -326,7 +326,7 @@ static void pipe_ctx_to_e2e_pipe_params (
                 * allow us to disable dcc on the fly without re-calculating WM
                 *
                 * extra overhead for DCC is quite small.  for 1080p WM without
-                * DCC is only 0.417us lower (urgent goes from 6.979us to 6.562us)
+                * DCC is only 0.417fus lower (urgent goes from 6.979fus to 6.562fus)
                 */
                unsigned int bpe;
 
@@ -396,18 +396,18 @@ static void pipe_ctx_to_e2e_pipe_params (
        }
 
        input->scale_taps.htaps                = pipe->plane_res.scl_data.taps.h_taps;
-       input->scale_ratio_depth.hscl_ratio    = pipe->plane_res.scl_data.ratios.horz.value/4294967296.0;
-       input->scale_ratio_depth.vscl_ratio    = pipe->plane_res.scl_data.ratios.vert.value/4294967296.0;
-       input->scale_ratio_depth.vinit =  pipe->plane_res.scl_data.inits.v.value/4294967296.0;
-       if (input->scale_ratio_depth.vinit < 1.0)
+       input->scale_ratio_depth.hscl_ratio    = pipe->plane_res.scl_data.ratios.horz.value/4294967296.0f;
+       input->scale_ratio_depth.vscl_ratio    = pipe->plane_res.scl_data.ratios.vert.value/4294967296.0f;
+       input->scale_ratio_depth.vinit =  pipe->plane_res.scl_data.inits.v.value/4294967296.0f;
+       if (input->scale_ratio_depth.vinit < 1.0f)
                        input->scale_ratio_depth.vinit = 1;
        input->scale_taps.vtaps = pipe->plane_res.scl_data.taps.v_taps;
        input->scale_taps.vtaps_c = pipe->plane_res.scl_data.taps.v_taps_c;
        input->scale_taps.htaps_c              = pipe->plane_res.scl_data.taps.h_taps_c;
-       input->scale_ratio_depth.hscl_ratio_c  = pipe->plane_res.scl_data.ratios.horz_c.value/4294967296.0;
-       input->scale_ratio_depth.vscl_ratio_c  = pipe->plane_res.scl_data.ratios.vert_c.value/4294967296.0;
-       input->scale_ratio_depth.vinit_c       = pipe->plane_res.scl_data.inits.v_c.value/4294967296.0;
-       if (input->scale_ratio_depth.vinit_c < 1.0)
+       input->scale_ratio_depth.hscl_ratio_c  = pipe->plane_res.scl_data.ratios.horz_c.value/4294967296.0f;
+       input->scale_ratio_depth.vscl_ratio_c  = pipe->plane_res.scl_data.ratios.vert_c.value/4294967296.0f;
+       input->scale_ratio_depth.vinit_c       = pipe->plane_res.scl_data.inits.v_c.value/4294967296.0f;
+       if (input->scale_ratio_depth.vinit_c < 1.0f)
                        input->scale_ratio_depth.vinit_c = 1;
        switch (pipe->plane_res.scl_data.lb_params.depth) {
        case LB_PIXEL_DEPTH_30BPP:
@@ -441,7 +441,7 @@ static void pipe_ctx_to_e2e_pipe_params (
                        - pipe->stream->timing.v_addressable
                        - pipe->stream->timing.v_border_bottom
                        - pipe->stream->timing.v_border_top;
-       input->dest.pixel_rate_mhz = pipe->stream->timing.pix_clk_100hz/10000.0;
+       input->dest.pixel_rate_mhz = pipe->stream->timing.pix_clk_100hz/10000.0f;
        input->dest.vstartup_start = pipe->pipe_dlg_param.vstartup_start;
        input->dest.vupdate_offset = pipe->pipe_dlg_param.vupdate_offset;
        input->dest.vupdate_offset = pipe->pipe_dlg_param.vupdate_offset;
@@ -477,10 +477,10 @@ static void dcn_bw_calc_rq_dlg_ttu(
        for (i = 0; i < number_of_planes; i++) {
                total_active_bw += v->read_bandwidth[i];
                total_prefetch_bw += v->prefetch_bandwidth[i];
-               total_flip_bytes += v->total_immediate_flip_bytes[i];
+               total_flip_bytes += (int)v->total_immediate_flip_bytes[i];
        }
        dlg_sys_param->total_flip_bw = v->return_bw - dcn_bw_max2(total_active_bw, total_prefetch_bw);
-       if (dlg_sys_param->total_flip_bw < 0.0)
+       if (dlg_sys_param->total_flip_bw < 0.0f)
                dlg_sys_param->total_flip_bw = 0;
 
        dlg_sys_param->t_mclk_wm_us = v->dram_clock_change_watermark;
@@ -494,7 +494,7 @@ static void dcn_bw_calc_rq_dlg_ttu(
        input->clks_cfg.dcfclk_mhz = v->dcfclk;
        input->clks_cfg.dispclk_mhz = v->dispclk;
        input->clks_cfg.dppclk_mhz = v->dppclk;
-       input->clks_cfg.refclk_mhz = dc->res_pool->ref_clocks.dchub_ref_clock_inKhz / 1000.0;
+       input->clks_cfg.refclk_mhz = dc->res_pool->ref_clocks.dchub_ref_clock_inKhz / 1000.0f;
        input->clks_cfg.socclk_mhz = v->socclk;
        input->clks_cfg.voltage = v->voltage_level;
 //     dc->dml.logger = pool->base.logger;
@@ -644,7 +644,7 @@ static bool dcn_bw_apply_registry_override(struct dc *dc)
        if ((int)(dc->dcn_soc->sr_exit_time * 1000) != dc->debug.sr_exit_time_ns
                        && dc->debug.sr_exit_time_ns) {
                updated = true;
-               dc->dcn_soc->sr_exit_time = dc->debug.sr_exit_time_ns / 1000.0;
+               dc->dcn_soc->sr_exit_time = dc->debug.sr_exit_time_ns / 1000.0f;
        }
 
        if ((int)(dc->dcn_soc->sr_enter_plus_exit_time * 1000)
@@ -652,13 +652,13 @@ static bool dcn_bw_apply_registry_override(struct dc *dc)
                        && dc->debug.sr_enter_plus_exit_time_ns) {
                updated = true;
                dc->dcn_soc->sr_enter_plus_exit_time =
-                               dc->debug.sr_enter_plus_exit_time_ns / 1000.0;
+                               dc->debug.sr_enter_plus_exit_time_ns / 1000.0f;
        }
 
        if ((int)(dc->dcn_soc->urgent_latency * 1000) != dc->debug.urgent_latency_ns
                        && dc->debug.urgent_latency_ns) {
                updated = true;
-               dc->dcn_soc->urgent_latency = dc->debug.urgent_latency_ns / 1000.0;
+               dc->dcn_soc->urgent_latency = dc->debug.urgent_latency_ns / 1000.0f;
        }
 
        if ((int)(dc->dcn_soc->percent_of_ideal_drambw_received_after_urg_latency * 1000)
@@ -666,7 +666,7 @@ static bool dcn_bw_apply_registry_override(struct dc *dc)
                        && dc->debug.percent_of_ideal_drambw) {
                updated = true;
                dc->dcn_soc->percent_of_ideal_drambw_received_after_urg_latency =
-                               dc->debug.percent_of_ideal_drambw;
+                               (float)dc->debug.percent_of_ideal_drambw;
        }
 
        if ((int)(dc->dcn_soc->dram_clock_change_latency * 1000)
@@ -674,7 +674,7 @@ static bool dcn_bw_apply_registry_override(struct dc *dc)
                        && dc->debug.dram_clock_change_latency_ns) {
                updated = true;
                dc->dcn_soc->dram_clock_change_latency =
-                               dc->debug.dram_clock_change_latency_ns / 1000.0;
+                               dc->debug.dram_clock_change_latency_ns / 1000.0f;
        }
 
        return updated;
@@ -692,7 +692,7 @@ static void hack_disable_optional_pipe_split(struct dcn_bw_internal_vars *v)
 static void hack_force_pipe_split(struct dcn_bw_internal_vars *v,
                unsigned int pixel_rate_100hz)
 {
-       float pixel_rate_mhz = pixel_rate_100hz / 10000.0;
+       float pixel_rate_mhz = pixel_rate_100hz / 10000.0f;
 
        /*
         * force enabling pipe split by lower dpp clock for DPM0 to just
@@ -809,12 +809,12 @@ bool dcn_validate_bandwidth(
        v->phyclkv_max0p9 = dc->dcn_soc->phyclkv_max0p9;
 
        v->downspreading = dc->dcn_soc->downspreading;
-       v->round_trip_ping_latency_cycles = dc->dcn_soc->round_trip_ping_latency_cycles;
-       v->urgent_out_of_order_return_per_channel = dc->dcn_soc->urgent_out_of_order_return_per_channel;
-       v->number_of_channels = dc->dcn_soc->number_of_channels;
-       v->vmm_page_size = dc->dcn_soc->vmm_page_size;
+       v->round_trip_ping_latency_cycles = (float)dc->dcn_soc->round_trip_ping_latency_cycles;
+       v->urgent_out_of_order_return_per_channel = (float)dc->dcn_soc->urgent_out_of_order_return_per_channel;
+       v->number_of_channels = (float)dc->dcn_soc->number_of_channels;
+       v->vmm_page_size = (float)dc->dcn_soc->vmm_page_size;
        v->dram_clock_change_latency = dc->dcn_soc->dram_clock_change_latency;
-       v->return_bus_width = dc->dcn_soc->return_bus_width;
+       v->return_bus_width = (float)dc->dcn_soc->return_bus_width;
 
        v->rob_buffer_size_in_kbyte = dc->dcn_ip->rob_buffer_size_in_kbyte;
        v->det_buffer_size_in_kbyte = dc->dcn_ip->det_buffer_size_in_kbyte;
@@ -822,31 +822,31 @@ bool dcn_validate_bandwidth(
        v->opp_output_buffer_lines = dc->dcn_ip->opp_output_buffer_lines;
        v->pixel_chunk_size_in_kbyte = dc->dcn_ip->pixel_chunk_size_in_kbyte;
        v->pte_enable = dc->dcn_ip->pte_enable;
-       v->pte_chunk_size = dc->dcn_ip->pte_chunk_size;
-       v->meta_chunk_size = dc->dcn_ip->meta_chunk_size;
-       v->writeback_chunk_size = dc->dcn_ip->writeback_chunk_size;
+       v->pte_chunk_size = (float)dc->dcn_ip->pte_chunk_size;
+       v->meta_chunk_size = (float)dc->dcn_ip->meta_chunk_size;
+       v->writeback_chunk_size = (float)dc->dcn_ip->writeback_chunk_size;
        v->odm_capability = dc->dcn_ip->odm_capability;
        v->dsc_capability = dc->dcn_ip->dsc_capability;
-       v->line_buffer_size = dc->dcn_ip->line_buffer_size;
+       v->line_buffer_size = (float)dc->dcn_ip->line_buffer_size;
        v->is_line_buffer_bpp_fixed = dc->dcn_ip->is_line_buffer_bpp_fixed;
-       v->line_buffer_fixed_bpp = dc->dcn_ip->line_buffer_fixed_bpp;
-       v->max_line_buffer_lines = dc->dcn_ip->max_line_buffer_lines;
-       v->writeback_luma_buffer_size = dc->dcn_ip->writeback_luma_buffer_size;
-       v->writeback_chroma_buffer_size = dc->dcn_ip->writeback_chroma_buffer_size;
-       v->max_num_dpp = dc->dcn_ip->max_num_dpp;
-       v->max_num_writeback = dc->dcn_ip->max_num_writeback;
-       v->max_dchub_topscl_throughput = dc->dcn_ip->max_dchub_topscl_throughput;
-       v->max_pscl_tolb_throughput = dc->dcn_ip->max_pscl_tolb_throughput;
-       v->max_lb_tovscl_throughput = dc->dcn_ip->max_lb_tovscl_throughput;
-       v->max_vscl_tohscl_throughput = dc->dcn_ip->max_vscl_tohscl_throughput;
+       v->line_buffer_fixed_bpp = (float)dc->dcn_ip->line_buffer_fixed_bpp;
+       v->max_line_buffer_lines = (float)dc->dcn_ip->max_line_buffer_lines;
+       v->writeback_luma_buffer_size = (float)dc->dcn_ip->writeback_luma_buffer_size;
+       v->writeback_chroma_buffer_size = (float)dc->dcn_ip->writeback_chroma_buffer_size;
+       v->max_num_dpp = (float)dc->dcn_ip->max_num_dpp;
+       v->max_num_writeback = (float)dc->dcn_ip->max_num_writeback;
+       v->max_dchub_topscl_throughput = (float)dc->dcn_ip->max_dchub_topscl_throughput;
+       v->max_pscl_tolb_throughput = (float)dc->dcn_ip->max_pscl_tolb_throughput;
+       v->max_lb_tovscl_throughput = (float)dc->dcn_ip->max_lb_tovscl_throughput;
+       v->max_vscl_tohscl_throughput = (float)dc->dcn_ip->max_vscl_tohscl_throughput;
        v->max_hscl_ratio = dc->dcn_ip->max_hscl_ratio;
        v->max_vscl_ratio = dc->dcn_ip->max_vscl_ratio;
-       v->max_hscl_taps = dc->dcn_ip->max_hscl_taps;
-       v->max_vscl_taps = dc->dcn_ip->max_vscl_taps;
+       v->max_hscl_taps = (float)dc->dcn_ip->max_hscl_taps;
+       v->max_vscl_taps = (float)dc->dcn_ip->max_vscl_taps;
        v->under_scan_factor = dc->dcn_ip->under_scan_factor;
-       v->pte_buffer_size_in_requests = dc->dcn_ip->pte_buffer_size_in_requests;
-       v->dispclk_ramping_margin = dc->dcn_ip->dispclk_ramping_margin;
-       v->max_inter_dcn_tile_repeaters = dc->dcn_ip->max_inter_dcn_tile_repeaters;
+       v->pte_buffer_size_in_requests = (float)dc->dcn_ip->pte_buffer_size_in_requests;
+       v->dispclk_ramping_margin = (float)dc->dcn_ip->dispclk_ramping_margin;
+       v->max_inter_dcn_tile_repeaters = (float)dc->dcn_ip->max_inter_dcn_tile_repeaters;
        v->can_vstartup_lines_exceed_vsync_plus_back_porch_lines_minus_one =
                        dc->dcn_ip->can_vstartup_lines_exceed_vsync_plus_back_porch_lines_minus_one;
        v->bug_forcing_luma_and_chroma_request_to_same_size_fixed =
@@ -904,14 +904,14 @@ bool dcn_validate_bandwidth(
                v->underscan_output[input_idx] = false; /* taken care of in recout already*/
                v->interlace_output[input_idx] = false;
 
-               v->htotal[input_idx] = pipe->stream->timing.h_total;
-               v->vtotal[input_idx] = pipe->stream->timing.v_total;
-               v->vactive[input_idx] = pipe->stream->timing.v_addressable +
-                               pipe->stream->timing.v_border_top + pipe->stream->timing.v_border_bottom;
-               v->v_sync_plus_back_porch[input_idx] = pipe->stream->timing.v_total
+               v->htotal[input_idx] = (float)pipe->stream->timing.h_total;
+               v->vtotal[input_idx] = (float)pipe->stream->timing.v_total;
+               v->vactive[input_idx] = (float)(pipe->stream->timing.v_addressable +
+                               pipe->stream->timing.v_border_top + pipe->stream->timing.v_border_bottom);
+               v->v_sync_plus_back_porch[input_idx] = (float)(pipe->stream->timing.v_total
                                - v->vactive[input_idx]
-                               - pipe->stream->timing.v_front_porch;
-               v->pixel_clock[input_idx] = pipe->stream->timing.pix_clk_100hz/10000.0;
+                               - pipe->stream->timing.v_front_porch);
+               v->pixel_clock[input_idx] = pipe->stream->timing.pix_clk_100hz/10000.0f;
                if (pipe->stream->timing.timing_3d_format == TIMING_3D_FORMAT_HW_FRAME_PACKING)
                        v->pixel_clock[input_idx] *= 2;
                if (!pipe->plane_state) {
@@ -919,8 +919,8 @@ bool dcn_validate_bandwidth(
                        v->source_pixel_format[input_idx] = dcn_bw_rgb_sub_32;
                        v->source_surface_mode[input_idx] = dcn_bw_sw_4_kb_s;
                        v->lb_bit_per_pixel[input_idx] = 30;
-                       v->viewport_width[input_idx] = pipe->stream->timing.h_addressable;
-                       v->viewport_height[input_idx] = pipe->stream->timing.v_addressable;
+                       v->viewport_width[input_idx] = (float)pipe->stream->timing.h_addressable;
+                       v->viewport_height[input_idx] = (float)pipe->stream->timing.v_addressable;
                        /*
                         * for cases where we have no plane, we want to validate up to 1080p
                         * source size because here we are only interested in if the output
@@ -934,17 +934,17 @@ bool dcn_validate_bandwidth(
                                v->viewport_height[input_idx] = 1080;
                        v->scaler_rec_out_width[input_idx] = v->viewport_width[input_idx];
                        v->scaler_recout_height[input_idx] = v->viewport_height[input_idx];
-                       v->override_hta_ps[input_idx] = 1;
-                       v->override_vta_ps[input_idx] = 1;
-                       v->override_hta_pschroma[input_idx] = 1;
-                       v->override_vta_pschroma[input_idx] = 1;
+                       v->override_hta_ps[input_idx] = 1.0f;
+                       v->override_vta_ps[input_idx] = 1.0f;
+                       v->override_hta_pschroma[input_idx] = 1.0f;
+                       v->override_vta_pschroma[input_idx] = 1.0f;
                        v->source_scan[input_idx] = dcn_bw_hor;
 
                } else {
-                       v->viewport_height[input_idx] =  pipe->plane_res.scl_data.viewport.height;
-                       v->viewport_width[input_idx] = pipe->plane_res.scl_data.viewport.width;
-                       v->scaler_rec_out_width[input_idx] = pipe->plane_res.scl_data.recout.width;
-                       v->scaler_recout_height[input_idx] = pipe->plane_res.scl_data.recout.height;
+                       v->viewport_height[input_idx] =  (float)pipe->plane_res.scl_data.viewport.height;
+                       v->viewport_width[input_idx] = (float)pipe->plane_res.scl_data.viewport.width;
+                       v->scaler_rec_out_width[input_idx] = (float)pipe->plane_res.scl_data.recout.width;
+                       v->scaler_recout_height[input_idx] = (float)pipe->plane_res.scl_data.recout.height;
                        if (pipe->bottom_pipe && pipe->bottom_pipe->plane_state == pipe->plane_state) {
                                if (pipe->plane_state->rotation % 2 == 0) {
                                        int viewport_end = pipe->plane_res.scl_data.viewport.width
@@ -953,11 +953,11 @@ bool dcn_validate_bandwidth(
                                                        + pipe->bottom_pipe->plane_res.scl_data.viewport.x;
 
                                        if (viewport_end > viewport_b_end)
-                                               v->viewport_width[input_idx] = viewport_end
-                                                       - pipe->bottom_pipe->plane_res.scl_data.viewport.x;
+                                               v->viewport_width[input_idx] = (float)(viewport_end
+                                                       - pipe->bottom_pipe->plane_res.scl_data.viewport.x);
                                        else
-                                               v->viewport_width[input_idx] = viewport_b_end
-                                                                       - pipe->plane_res.scl_data.viewport.x;
+                                               v->viewport_width[input_idx] = (float)(viewport_b_end
+                                                                       - pipe->plane_res.scl_data.viewport.x);
                                } else  {
                                        int viewport_end = pipe->plane_res.scl_data.viewport.height
                                                + pipe->plane_res.scl_data.viewport.y;
@@ -965,14 +965,14 @@ bool dcn_validate_bandwidth(
                                                + pipe->bottom_pipe->plane_res.scl_data.viewport.y;
 
                                        if (viewport_end > viewport_b_end)
-                                               v->viewport_height[input_idx] = viewport_end
-                                                       - pipe->bottom_pipe->plane_res.scl_data.viewport.y;
+                                               v->viewport_height[input_idx] = (float)(viewport_end
+                                                       - pipe->bottom_pipe->plane_res.scl_data.viewport.y);
                                        else
-                                               v->viewport_height[input_idx] = viewport_b_end
-                                                                       - pipe->plane_res.scl_data.viewport.y;
+                                               v->viewport_height[input_idx] = (float)(viewport_b_end
+                                                                       - pipe->plane_res.scl_data.viewport.y);
                                }
-                               v->scaler_rec_out_width[input_idx] = pipe->plane_res.scl_data.recout.width
-                                               + pipe->bottom_pipe->plane_res.scl_data.recout.width;
+                               v->scaler_rec_out_width[input_idx] = (float)(pipe->plane_res.scl_data.recout.width
+                                               + pipe->bottom_pipe->plane_res.scl_data.recout.width);
                        }
 
                        if (pipe->plane_state->rotation % 2 == 0) {
@@ -998,7 +998,7 @@ bool dcn_validate_bandwidth(
                                 * allow us to disable dcc on the fly without re-calculating WM
                                 *
                                 * extra overhead for DCC is quite small.  for 1080p WM without
-                                * DCC is only 0.417us lower (urgent goes from 6.979us to 6.562us)
+                                * DCC is only 0.417fus lower (urgent goes from 6.979fus to 6.562fus)
                                 */
                                unsigned int bpe;
 
@@ -1010,11 +1010,11 @@ bool dcn_validate_bandwidth(
                                        pipe->plane_state->format);
                        v->source_surface_mode[input_idx] = tl_sw_mode_to_bw_defs(
                                        pipe->plane_state->tiling_info.gfx9.swizzle);
-                       v->lb_bit_per_pixel[input_idx] = tl_lb_bpp_to_int(pipe->plane_res.scl_data.lb_params.depth);
-                       v->override_hta_ps[input_idx] = pipe->plane_res.scl_data.taps.h_taps;
-                       v->override_vta_ps[input_idx] = pipe->plane_res.scl_data.taps.v_taps;
-                       v->override_hta_pschroma[input_idx] = pipe->plane_res.scl_data.taps.h_taps_c;
-                       v->override_vta_pschroma[input_idx] = pipe->plane_res.scl_data.taps.v_taps_c;
+                       v->lb_bit_per_pixel[input_idx] = (float)tl_lb_bpp_to_int(pipe->plane_res.scl_data.lb_params.depth);
+                       v->override_hta_ps[input_idx] = (float)pipe->plane_res.scl_data.taps.h_taps;
+                       v->override_vta_ps[input_idx] = (float)pipe->plane_res.scl_data.taps.v_taps;
+                       v->override_hta_pschroma[input_idx] = (float)pipe->plane_res.scl_data.taps.h_taps_c;
+                       v->override_vta_pschroma[input_idx] = (float)pipe->plane_res.scl_data.taps.v_taps_c;
                        /*
                         * Spreadsheet doesn't handle taps_c is one properly,
                         * need to force Chroma to always be scaled to pass
@@ -1092,29 +1092,29 @@ bool dcn_validate_bandwidth(
        }
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                if (v->source_pixel_format[k] == dcn_bw_rgb_sub_64) {
-                       v->byte_per_pixel_dety[k] = 8.0;
-                       v->byte_per_pixel_detc[k] = 0.0;
+                       v->byte_per_pixel_dety[k] = 8.0f;
+                       v->byte_per_pixel_detc[k] = 0.0f;
                } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_32) {
-                       v->byte_per_pixel_dety[k] = 4.0;
-                       v->byte_per_pixel_detc[k] = 0.0;
+                       v->byte_per_pixel_dety[k] = 4.0f;
+                       v->byte_per_pixel_detc[k] = 0.0f;
                } else if (v->source_pixel_format[k] == dcn_bw_rgb_sub_16) {
-                       v->byte_per_pixel_dety[k] = 2.0;
-                       v->byte_per_pixel_detc[k] = 0.0;
+                       v->byte_per_pixel_dety[k] = 2.0f;
+                       v->byte_per_pixel_detc[k] = 0.0f;
                } else if (v->source_pixel_format[k] == dcn_bw_yuv420_sub_8) {
-                       v->byte_per_pixel_dety[k] = 1.0;
-                       v->byte_per_pixel_detc[k] = 2.0;
+                       v->byte_per_pixel_dety[k] = 1.0f;
+                       v->byte_per_pixel_detc[k] = 2.0f;
                } else {
                        v->byte_per_pixel_dety[k] = 4.0f / 3.0f;
                        v->byte_per_pixel_detc[k] = 8.0f / 3.0f;
                }
        }
 
-       v->total_data_read_bandwidth = 0.0;
+       v->total_data_read_bandwidth = 0.0f;
        for (k = 0; k <= v->number_of_active_planes - 1; k++) {
                v->read_bandwidth_plane_luma[k] = v->swath_width_y[k] * v->dpp_per_plane[k] *
-                               dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k];
-               v->read_bandwidth_plane_chroma[k] = v->swath_width_y[k] / 2.0 * v->dpp_per_plane[k] *
-                               dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k] / 2.0;
+                               dcn_bw_ceil2(v->byte_per_pixel_dety[k], 1.0f) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k];
+               v->read_bandwidth_plane_chroma[k] = v->swath_width_y[k] / 2.0f * v->dpp_per_plane[k] *
+                               dcn_bw_ceil2(v->byte_per_pixel_detc[k], 2.0f) / (v->htotal[k] / v->pixel_clock[k]) * v->v_ratio[k] / 2.0f;
                v->total_data_read_bandwidth = v->total_data_read_bandwidth +
                                v->read_bandwidth_plane_luma[k] + v->read_bandwidth_plane_chroma[k];
        }
@@ -1145,13 +1145,13 @@ bool dcn_validate_bandwidth(
                dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation(v);
 
                context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns =
-                       v->stutter_exit_watermark * 1000;
+                       (uint32_t)(v->stutter_exit_watermark * 1000.0f);
                context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns =
-                               v->stutter_enter_plus_exit_watermark * 1000;
+                               (uint32_t)(v->stutter_enter_plus_exit_watermark * 1000.0f);
                context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns =
-                               v->dram_clock_change_watermark * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = v->ptemeta_urgent_watermark * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = v->urgent_watermark * 1000;
+                               (uint32_t)(v->dram_clock_change_watermark * 1000.0f);
+               context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = (uint32_t)(v->ptemeta_urgent_watermark * 1000.0f);
+               context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = (uint32_t)(v->urgent_watermark * 1000.0f);
                context->bw_ctx.bw.dcn.watermarks.b = context->bw_ctx.bw.dcn.watermarks.a;
                context->bw_ctx.bw.dcn.watermarks.c = context->bw_ctx.bw.dcn.watermarks.a;
                context->bw_ctx.bw.dcn.watermarks.d = context->bw_ctx.bw.dcn.watermarks.a;
@@ -1176,7 +1176,7 @@ bool dcn_validate_bandwidth(
 
                context->bw_ctx.bw.dcn.clk.dppclk_khz = context->bw_ctx.bw.dcn.clk.dispclk_khz /
                                v->dispclk_dppclk_ratio;
-               context->bw_ctx.bw.dcn.clk.phyclk_khz = v->phyclk_per_state[v->voltage_level];
+               context->bw_ctx.bw.dcn.clk.phyclk_khz = (int)v->phyclk_per_state[v->voltage_level];
                switch (v->voltage_level) {
                case 0:
                        context->bw_ctx.bw.dcn.clk.max_supported_dppclk_khz =
@@ -1208,10 +1208,10 @@ bool dcn_validate_bandwidth(
                        if (pipe->top_pipe && pipe->top_pipe->plane_state == pipe->plane_state)
                                continue;
 
-                       pipe->pipe_dlg_param.vupdate_width = v->v_update_width_pix[input_idx];
-                       pipe->pipe_dlg_param.vupdate_offset = v->v_update_offset_pix[input_idx];
-                       pipe->pipe_dlg_param.vready_offset = v->v_ready_offset_pix[input_idx];
-                       pipe->pipe_dlg_param.vstartup_start = v->v_startup[input_idx];
+                       pipe->pipe_dlg_param.vupdate_width = (unsigned int)v->v_update_width_pix[input_idx];
+                       pipe->pipe_dlg_param.vupdate_offset = (unsigned int)v->v_update_offset_pix[input_idx];
+                       pipe->pipe_dlg_param.vready_offset = (unsigned int)v->v_ready_offset_pix[input_idx];
+                       pipe->pipe_dlg_param.vstartup_start = (unsigned int)v->v_startup[input_idx];
 
                        pipe->pipe_dlg_param.htotal = pipe->stream->timing.h_total;
                        pipe->pipe_dlg_param.vtotal = pipe->stream->timing.v_total;
@@ -1249,10 +1249,10 @@ bool dcn_validate_bandwidth(
                                         TIMING_3D_FORMAT_SIDE_BY_SIDE))) {
                                        if (hsplit_pipe && hsplit_pipe->plane_state == pipe->plane_state) {
                                                /* update previously split pipe */
-                                               hsplit_pipe->pipe_dlg_param.vupdate_width = v->v_update_width_pix[input_idx];
-                                               hsplit_pipe->pipe_dlg_param.vupdate_offset = v->v_update_offset_pix[input_idx];
-                                               hsplit_pipe->pipe_dlg_param.vready_offset = v->v_ready_offset_pix[input_idx];
-                                               hsplit_pipe->pipe_dlg_param.vstartup_start = v->v_startup[input_idx];
+                                               hsplit_pipe->pipe_dlg_param.vupdate_width = (unsigned int)v->v_update_width_pix[input_idx];
+                                               hsplit_pipe->pipe_dlg_param.vupdate_offset = (unsigned int)v->v_update_offset_pix[input_idx];
+                                               hsplit_pipe->pipe_dlg_param.vready_offset = (unsigned int)v->v_ready_offset_pix[input_idx];
+                                               hsplit_pipe->pipe_dlg_param.vstartup_start = (unsigned int)v->v_startup[input_idx];
 
                                                hsplit_pipe->pipe_dlg_param.htotal = pipe->stream->timing.h_total;
                                                hsplit_pipe->pipe_dlg_param.vtotal = pipe->stream->timing.v_total;
@@ -1303,7 +1303,7 @@ bool dcn_validate_bandwidth(
         */
 
        bw_limit = dc->dcn_soc->percent_disp_bw_limit * v->fabric_and_dram_bandwidth_vmax0p9;
-       bw_limit_pass = (v->total_data_read_bandwidth / 1000.0) < bw_limit;
+       bw_limit_pass = (v->total_data_read_bandwidth / 1000.0f) < bw_limit;
 
        PERFORMANCE_TRACE_END();
        BW_VAL_TRACE_FINISH();
@@ -1328,19 +1328,19 @@ void dcn_bw_update_from_pplib_fclks(
        vmax0p9_idx = fclks->num_levels > 0 ? fclks->num_levels - 1 : 0;
 
        dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 =
-               32 * (fclks->data[vmin0p65_idx].clocks_in_khz / 1000.0) / 1000.0;
+               32 * (fclks->data[vmin0p65_idx].clocks_in_khz / 1000.0f) / 1000.0f;
        dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 =
                dc->dcn_soc->number_of_channels *
-               (fclks->data[vmid0p72_idx].clocks_in_khz / 1000.0)
-               * ddr4_dram_factor_single_Channel / 1000.0;
+               (fclks->data[vmid0p72_idx].clocks_in_khz / 1000.0f)
+               * ddr4_dram_factor_single_Channel / 1000.0f;
        dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 =
                dc->dcn_soc->number_of_channels *
-               (fclks->data[vnom0p8_idx].clocks_in_khz / 1000.0)
-               * ddr4_dram_factor_single_Channel / 1000.0;
+               (fclks->data[vnom0p8_idx].clocks_in_khz / 1000.0f)
+               * ddr4_dram_factor_single_Channel / 1000.0f;
        dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 =
                dc->dcn_soc->number_of_channels *
-               (fclks->data[vmax0p9_idx].clocks_in_khz / 1000.0)
-               * ddr4_dram_factor_single_Channel / 1000.0;
+               (fclks->data[vmax0p9_idx].clocks_in_khz / 1000.0f)
+               * ddr4_dram_factor_single_Channel / 1000.0f;
 }
 
 void dcn_bw_update_from_pplib_dcfclks(
@@ -1348,10 +1348,10 @@ void dcn_bw_update_from_pplib_dcfclks(
        struct dm_pp_clock_levels_with_voltage *dcfclks)
 {
        if (dcfclks->num_levels >= 3) {
-               dc->dcn_soc->dcfclkv_min0p65 = dcfclks->data[0].clocks_in_khz / 1000.0;
-               dc->dcn_soc->dcfclkv_mid0p72 = dcfclks->data[dcfclks->num_levels - 3].clocks_in_khz / 1000.0;
-               dc->dcn_soc->dcfclkv_nom0p8 = dcfclks->data[dcfclks->num_levels - 2].clocks_in_khz / 1000.0;
-               dc->dcn_soc->dcfclkv_max0p9 = dcfclks->data[dcfclks->num_levels - 1].clocks_in_khz / 1000.0;
+               dc->dcn_soc->dcfclkv_min0p65 = dcfclks->data[0].clocks_in_khz / 1000.0f;
+               dc->dcn_soc->dcfclkv_mid0p72 = dcfclks->data[dcfclks->num_levels - 3].clocks_in_khz / 1000.0f;
+               dc->dcn_soc->dcfclkv_nom0p8 = dcfclks->data[dcfclks->num_levels - 2].clocks_in_khz / 1000.0f;
+               dc->dcn_soc->dcfclkv_max0p9 = dcfclks->data[dcfclks->num_levels - 1].clocks_in_khz / 1000.0f;
        }
 }
 
@@ -1361,9 +1361,9 @@ void dcn_get_soc_clks(
        int *min_dcfclk_khz,
        int *socclk_khz)
 {
-       *min_fclk_khz = dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 * 1000000 / 32;
-       *min_dcfclk_khz = dc->dcn_soc->dcfclkv_min0p65 * 1000;
-       *socclk_khz = dc->dcn_soc->socclk * 1000;
+       *min_fclk_khz = (int)(dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 * 1000000.0f / 32.0f);
+       *min_dcfclk_khz = (int)(dc->dcn_soc->dcfclkv_min0p65 * 1000.0f);
+       *socclk_khz = (int)(dc->dcn_soc->socclk * 1000.0f);
 }
 
 void dcn_bw_notify_pplib_of_wm_ranges(
@@ -1392,15 +1392,15 @@ void dcn_bw_notify_pplib_of_wm_ranges(
        ranges.num_reader_wm_sets = WM_SET_COUNT;
        ranges.num_writer_wm_sets = WM_SET_COUNT;
        ranges.reader_wm_sets[0].wm_inst = WM_A;
-       ranges.reader_wm_sets[0].min_drain_clk_mhz = min_dcfclk_khz / 1000;
-       ranges.reader_wm_sets[0].max_drain_clk_mhz = overdrive / 1000;
-       ranges.reader_wm_sets[0].min_fill_clk_mhz = min_fclk_khz / 1000;
-       ranges.reader_wm_sets[0].max_fill_clk_mhz = overdrive / 1000;
+       ranges.reader_wm_sets[0].min_drain_clk_mhz = (uint16_t)(min_dcfclk_khz / 1000);
+       ranges.reader_wm_sets[0].max_drain_clk_mhz = (uint16_t)(overdrive / 1000);
+       ranges.reader_wm_sets[0].min_fill_clk_mhz = (uint16_t)(min_fclk_khz / 1000);
+       ranges.reader_wm_sets[0].max_fill_clk_mhz = (uint16_t)(overdrive / 1000);
        ranges.writer_wm_sets[0].wm_inst = WM_A;
-       ranges.writer_wm_sets[0].min_fill_clk_mhz = socclk_khz / 1000;
-       ranges.writer_wm_sets[0].max_fill_clk_mhz = overdrive / 1000;
-       ranges.writer_wm_sets[0].min_drain_clk_mhz = min_fclk_khz / 1000;
-       ranges.writer_wm_sets[0].max_drain_clk_mhz = overdrive / 1000;
+       ranges.writer_wm_sets[0].min_fill_clk_mhz = (uint16_t)(socclk_khz / 1000);
+       ranges.writer_wm_sets[0].max_fill_clk_mhz = (uint16_t)(overdrive / 1000);
+       ranges.writer_wm_sets[0].min_drain_clk_mhz = (uint16_t)(min_fclk_khz / 1000);
+       ranges.writer_wm_sets[0].max_drain_clk_mhz = (uint16_t)(overdrive / 1000);
 
        if (dc->debug.pplib_wm_report_mode == WM_REPORT_OVERRIDE) {
                ranges.reader_wm_sets[0].wm_inst = WM_A;
@@ -1584,14 +1584,14 @@ void dcn_bw_sync_calcs_and_dml(struct dc *dc)
        dc->dml.soc.dram_clock_change_latency_us = dc->dcn_soc->dram_clock_change_latency;
        dc->dml.soc.return_bus_width_bytes = dc->dcn_soc->return_bus_width;
 
-       dc->dml.ip.rob_buffer_size_kbytes = dc->dcn_ip->rob_buffer_size_in_kbyte;
-       dc->dml.ip.det_buffer_size_kbytes = dc->dcn_ip->det_buffer_size_in_kbyte;
-       dc->dml.ip.dpp_output_buffer_pixels = dc->dcn_ip->dpp_output_buffer_pixels;
-       dc->dml.ip.opp_output_buffer_lines = dc->dcn_ip->opp_output_buffer_lines;
-       dc->dml.ip.pixel_chunk_size_kbytes = dc->dcn_ip->pixel_chunk_size_in_kbyte;
+       dc->dml.ip.rob_buffer_size_kbytes = (unsigned int)dc->dcn_ip->rob_buffer_size_in_kbyte;
+       dc->dml.ip.det_buffer_size_kbytes = (unsigned int)dc->dcn_ip->det_buffer_size_in_kbyte;
+       dc->dml.ip.dpp_output_buffer_pixels = (unsigned int)dc->dcn_ip->dpp_output_buffer_pixels;
+       dc->dml.ip.opp_output_buffer_lines = (unsigned int)dc->dcn_ip->opp_output_buffer_lines;
+       dc->dml.ip.pixel_chunk_size_kbytes = (unsigned int)dc->dcn_ip->pixel_chunk_size_in_kbyte;
        dc->dml.ip.pte_enable = dc->dcn_ip->pte_enable == dcn_bw_yes;
-       dc->dml.ip.pte_chunk_size_kbytes = dc->dcn_ip->pte_chunk_size;
-       dc->dml.ip.meta_chunk_size_kbytes = dc->dcn_ip->meta_chunk_size;
+       dc->dml.ip.pte_chunk_size_kbytes = (unsigned int)dc->dcn_ip->pte_chunk_size;
+       dc->dml.ip.meta_chunk_size_kbytes = (unsigned int)dc->dcn_ip->meta_chunk_size;
        dc->dml.ip.writeback_chunk_size_kbytes = dc->dcn_ip->writeback_chunk_size;
        dc->dml.ip.line_buffer_size_bits = dc->dcn_ip->line_buffer_size;
        dc->dml.ip.max_line_buffer_lines = dc->dcn_ip->max_line_buffer_lines;
index 82f50847cbac07bffee4ef250af8b741bca1c562..3b13f05151731777259bd19f94a5c355ac804dc3 100644 (file)
@@ -1036,10 +1036,10 @@ void dcn20_fpu_set_wb_arb_params(struct mcif_arb_params *wb_arb_params,
        dc_assert_fp_enabled();
 
        for (k = 0; k < sizeof(wb_arb_params->cli_watermark)/sizeof(wb_arb_params->cli_watermark[0]); k++) {
-               wb_arb_params->cli_watermark[k] = get_wm_writeback_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               wb_arb_params->pstate_watermark[k] = get_wm_writeback_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+               wb_arb_params->cli_watermark[k] = (unsigned int)(get_wm_writeback_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+               wb_arb_params->pstate_watermark[k] = (unsigned int)(get_wm_writeback_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
        }
-       wb_arb_params->time_per_pixel = 16.0 * 1000 / (context->res_ctx.pipe_ctx[i].stream->phy_pix_clk / 1000); /* 4 bit fraction, ms */
+       wb_arb_params->time_per_pixel = (unsigned int)(16.0 * 1000.0 / (context->res_ctx.pipe_ctx[i].stream->phy_pix_clk / 1000)); /* 4 bit fraction, ms */
 }
 
 static bool is_dtbclk_required(struct dc *dc, struct dc_state *context)
@@ -1150,16 +1150,16 @@ void dcn20_calculate_dlg_params(struct dc *dc,
        /* Writeback MCIF_WB arbitration parameters */
        dc->res_pool->funcs->set_mcif_arb_params(dc, context, pipes, pipe_cnt);
 
-       context->bw_ctx.bw.dcn.clk.dispclk_khz = context->bw_ctx.dml.vba.DISPCLK * 1000;
-       context->bw_ctx.bw.dcn.clk.dcfclk_khz = context->bw_ctx.dml.vba.DCFCLK * 1000;
-       context->bw_ctx.bw.dcn.clk.socclk_khz = context->bw_ctx.dml.vba.SOCCLK * 1000;
-       context->bw_ctx.bw.dcn.clk.dramclk_khz = context->bw_ctx.dml.vba.DRAMSpeed * 1000 / 16;
+       context->bw_ctx.bw.dcn.clk.dispclk_khz = (int)(context->bw_ctx.dml.vba.DISPCLK * 1000.0);
+       context->bw_ctx.bw.dcn.clk.dcfclk_khz = (int)(context->bw_ctx.dml.vba.DCFCLK * 1000.0);
+       context->bw_ctx.bw.dcn.clk.socclk_khz = (int)(context->bw_ctx.dml.vba.SOCCLK * 1000.0);
+       context->bw_ctx.bw.dcn.clk.dramclk_khz = (int)(context->bw_ctx.dml.vba.DRAMSpeed * 1000.0 / 16.0);
 
        if (dc->debug.min_dram_clk_khz > context->bw_ctx.bw.dcn.clk.dramclk_khz)
                context->bw_ctx.bw.dcn.clk.dramclk_khz = dc->debug.min_dram_clk_khz;
 
-       context->bw_ctx.bw.dcn.clk.dcfclk_deep_sleep_khz = context->bw_ctx.dml.vba.DCFCLKDeepSleep * 1000;
-       context->bw_ctx.bw.dcn.clk.fclk_khz = context->bw_ctx.dml.vba.FabricClock * 1000;
+       context->bw_ctx.bw.dcn.clk.dcfclk_deep_sleep_khz = (int)(context->bw_ctx.dml.vba.DCFCLKDeepSleep * 1000.0);
+       context->bw_ctx.bw.dcn.clk.fclk_khz = (int)(context->bw_ctx.dml.vba.FabricClock * 1000.0);
        context->bw_ctx.bw.dcn.clk.p_state_change_support =
                context->bw_ctx.dml.vba.DRAMClockChangeSupport[vlevel][context->bw_ctx.dml.vba.maxMpcComb]
                                                        != dm_dram_clock_change_unsupported;
@@ -1181,10 +1181,10 @@ void dcn20_calculate_dlg_params(struct dc *dc,
                        continue;
                if (context->res_ctx.pipe_ctx[i].plane_state)
                        active_hubp_count++;
-               pipes[pipe_idx].pipe.dest.vstartup_start = get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
-               pipes[pipe_idx].pipe.dest.vupdate_offset = get_vupdate_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
-               pipes[pipe_idx].pipe.dest.vupdate_width = get_vupdate_width(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
-               pipes[pipe_idx].pipe.dest.vready_offset = get_vready_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+               pipes[pipe_idx].pipe.dest.vstartup_start = (unsigned int)get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+               pipes[pipe_idx].pipe.dest.vupdate_offset = (unsigned int)get_vupdate_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+               pipes[pipe_idx].pipe.dest.vupdate_width = (unsigned int)get_vupdate_width(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+               pipes[pipe_idx].pipe.dest.vready_offset = (unsigned int)get_vready_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
 
                if (dc_state_get_pipe_subvp_type(context, &context->res_ctx.pipe_ctx[i]) == SUBVP_PHANTOM) {
                        // Phantom pipe requires that DET_SIZE = 0 and no unbounded requests
@@ -1196,9 +1196,9 @@ void dcn20_calculate_dlg_params(struct dc *dc,
                }
 
                if (context->bw_ctx.bw.dcn.clk.dppclk_khz < pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000)
-                       context->bw_ctx.bw.dcn.clk.dppclk_khz = pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000;
+                       context->bw_ctx.bw.dcn.clk.dppclk_khz = (int)(pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000.0);
                context->res_ctx.pipe_ctx[i].plane_res.bw.dppclk_khz =
-                                               pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000;
+                                               (int)(pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000.0);
                context->res_ctx.pipe_ctx[i].pipe_dlg_param = pipes[pipe_idx].pipe.dest;
                if (dc->ctx->dce_version < DCN_VERSION_3_1 &&
                    context->res_ctx.pipe_ctx[i].stream->adaptive_sync_infopacket.valid)
@@ -1215,8 +1215,8 @@ void dcn20_calculate_dlg_params(struct dc *dc,
        /*save a original dppclock copy*/
        context->bw_ctx.bw.dcn.clk.bw_dppclk_khz = context->bw_ctx.bw.dcn.clk.dppclk_khz;
        context->bw_ctx.bw.dcn.clk.bw_dispclk_khz = context->bw_ctx.bw.dcn.clk.dispclk_khz;
-       context->bw_ctx.bw.dcn.clk.max_supported_dppclk_khz = context->bw_ctx.dml.soc.clock_limits[vlevel].dppclk_mhz * 1000;
-       context->bw_ctx.bw.dcn.clk.max_supported_dispclk_khz = context->bw_ctx.dml.soc.clock_limits[vlevel].dispclk_mhz * 1000;
+       context->bw_ctx.bw.dcn.clk.max_supported_dppclk_khz = (int)(context->bw_ctx.dml.soc.clock_limits[vlevel].dppclk_mhz * 1000.0);
+       context->bw_ctx.bw.dcn.clk.max_supported_dispclk_khz = (int)(context->bw_ctx.dml.soc.clock_limits[vlevel].dispclk_mhz * 1000.0);
 
        context->bw_ctx.bw.dcn.compbuf_size_kb = context->bw_ctx.dml.ip.config_return_buffer_size_in_kbytes
                                                - context->bw_ctx.dml.ip.det_buffer_size_kbytes * pipe_idx;
@@ -1799,51 +1799,51 @@ void dcn20_calculate_wm(struct dc *dc, struct dc_state *context,
                pipes[0].clks_cfg.dcfclk_mhz = context->bw_ctx.dml.soc.clock_limits[1].dcfclk_mhz;
                pipes[0].clks_cfg.socclk_mhz = context->bw_ctx.dml.soc.clock_limits[1].socclk_mhz;
        }
-       context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
 
        if (vlevel < 2) {
                pipes[0].clks_cfg.voltage = 2;
                pipes[0].clks_cfg.dcfclk_mhz = context->bw_ctx.dml.soc.clock_limits[2].dcfclk_mhz;
                pipes[0].clks_cfg.socclk_mhz = context->bw_ctx.dml.soc.clock_limits[2].socclk_mhz;
        }
-       context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
 
        if (vlevel < 3) {
                pipes[0].clks_cfg.voltage = 3;
                pipes[0].clks_cfg.dcfclk_mhz = context->bw_ctx.dml.soc.clock_limits[2].dcfclk_mhz;
                pipes[0].clks_cfg.socclk_mhz = context->bw_ctx.dml.soc.clock_limits[2].socclk_mhz;
        }
-       context->bw_ctx.bw.dcn.watermarks.d.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.d.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.d.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.d.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.d.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.d.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.d.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.d.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.d.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.d.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.d.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.d.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.d.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.d.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
 
        pipes[0].clks_cfg.voltage = vlevel;
        pipes[0].clks_cfg.dcfclk_mhz = context->bw_ctx.dml.soc.clock_limits[vlevel].dcfclk_mhz;
        pipes[0].clks_cfg.socclk_mhz = context->bw_ctx.dml.soc.clock_limits[vlevel].socclk_mhz;
-       context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
+       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000.0);
 }
 
 void dcn20_update_bounding_box(struct dc *dc,
@@ -2135,8 +2135,8 @@ void dcn20_fpu_set_wm_ranges(int i,
 {
        dc_assert_fp_enabled();
 
-       ranges->reader_wm_sets[i].min_fill_clk_mhz = (i > 0) ? (loaded_bb->clock_limits[i - 1].dram_speed_mts / 16) + 1 : 0;
-       ranges->reader_wm_sets[i].max_fill_clk_mhz = loaded_bb->clock_limits[i].dram_speed_mts / 16;
+       ranges->reader_wm_sets[i].min_fill_clk_mhz = (uint16_t)((i > 0) ? (loaded_bb->clock_limits[i - 1].dram_speed_mts / 16) + 1 : 0);
+       ranges->reader_wm_sets[i].max_fill_clk_mhz = (uint16_t)(loaded_bb->clock_limits[i].dram_speed_mts / 16);
 }
 
 void dcn20_fpu_adjust_dppclk(struct vba_vars_st *v,
@@ -2223,14 +2223,14 @@ static void calculate_wm_set_for_vlevel(int vlevel,
        dml->soc.sr_exit_time_us = table_entry->sr_exit_time_us;
        dml->soc.sr_enter_plus_exit_time_us = table_entry->sr_enter_plus_exit_time_us;
 
-       wm_set->urgent_ns = get_wm_urgent(dml, pipes, pipe_cnt) * 1000;
-       wm_set->cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(dml, pipes, pipe_cnt) * 1000;
-       wm_set->cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(dml, pipes, pipe_cnt) * 1000;
-       wm_set->cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(dml, pipes, pipe_cnt) * 1000;
-       wm_set->pte_meta_urgent_ns = get_wm_memory_trip(dml, pipes, pipe_cnt) * 1000;
-       wm_set->frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(dml, pipes, pipe_cnt) * 1000;
-       wm_set->frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(dml, pipes, pipe_cnt) * 1000;
-       wm_set->urgent_latency_ns = get_urgent_latency(dml, pipes, pipe_cnt) * 1000;
+       wm_set->urgent_ns = (uint32_t)(get_wm_urgent(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(dml, pipes, pipe_cnt) * 1000.0);
+       wm_set->urgent_latency_ns = (uint32_t)(get_urgent_latency(dml, pipes, pipe_cnt) * 1000.0);
        dml->soc.dram_clock_change_latency_us = dram_clock_change_latency_cached;
 }
 
index f5f636afe33ceac2ca3f840ffb48589d1f9782bb..653372823fb03ec1ff91c06d4a4718b25f6f4ff2 100644 (file)
@@ -326,7 +326,7 @@ static unsigned int dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / bpp / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / bpp / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -519,13 +519,13 @@ static bool CalculatePrefetchSchedule(
        double LinesToRequestPrefetchPixelData = 0;
 
        if (ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotal + DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotal + DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotal + DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotal + DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + DPPCLKDelayCNVCFormater + NumberOfCursors * DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + DPPCLKDelayCNVCFormater + NumberOfCursors * DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)DISPCLKDelaySubtotal;
 
        if (DPPCLK == 0.0 || DISPCLK == 0.0)
                return true;
@@ -545,7 +545,7 @@ static bool CalculatePrefetchSchedule(
        *DSTYAfterScaler = dml_floor(DSTTotalPixelsAfterScaler / HTotal, 1);
        *DSTXAfterScaler = DSTTotalPixelsAfterScaler - ((double) (*DSTYAfterScaler * HTotal));
 
-       *VUpdateOffsetPix = dml_ceil(HTotal / 4.0, 1);
+       *VUpdateOffsetPix = (unsigned int)dml_ceil(HTotal / 4.0, 1);
        TotalRepeaterDelayTime = MaxInterDCNTileRepeaters * (2.0 / DPPCLK + 3.0 / DISPCLK);
        *VUpdateWidthPix = (14.0 / DCFCLKDeepSleep + 12.0 / DPPCLK + TotalRepeaterDelayTime)
                        * PixelClock;
@@ -574,10 +574,10 @@ static bool CalculatePrefetchSchedule(
                if (VStartup * LineTime
                                < Tsetup + TWait + UrgentExtraLatency + Tdmbf + Tdmec + Tdmsks) {
                        MyError = true;
-                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = (Tsetup + TWait
-                                       + UrgentExtraLatency + Tdmbf + Tdmec + Tdmsks) / LineTime;
+                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = (unsigned int)((Tsetup + TWait
+                                       + UrgentExtraLatency + Tdmbf + Tdmec + Tdmsks) / LineTime);
                } else
-                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = 0.0;
+                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = (unsigned int)0.0;
        } else
                Tdm = 0;
 
@@ -828,14 +828,13 @@ static double CalculatePrefetchSourceLines(
 
        if (!mode_lib->vba.IgnoreViewportPositioning) {
 
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0;
+               *MaxNumSwath = (unsigned int)(dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0);
 
                if (*VInitPreFill > 1.0)
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill - 2) % SwathHeight;
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill - 2) % SwathHeight);
                else
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 2)
-                                       % SwathHeight;
-               MaxPartialSwath = dml_max(1U, MaxPartialSwath);
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill + SwathHeight - 2) % SwathHeight);
+               MaxPartialSwath = (unsigned int)dml_max(1U, MaxPartialSwath);
 
        } else {
 
@@ -843,13 +842,12 @@ static double CalculatePrefetchSourceLines(
                        dml_print(
                                        "WARNING DML: using viewport y position of 0 even though actual viewport y position is non-zero in prefetch source lines calculation\n");
 
-               *MaxNumSwath = dml_ceil(*VInitPreFill / SwathHeight, 1);
+               *MaxNumSwath = (unsigned int)dml_ceil(*VInitPreFill / SwathHeight, 1);
 
                if (*VInitPreFill > 1.0)
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill - 1) % SwathHeight;
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill - 1) % SwathHeight);
                else
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 1)
-                                       % SwathHeight;
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill + SwathHeight - 1) % SwathHeight);
        }
 
        return *MaxNumSwath * SwathHeight + MaxPartialSwath;
@@ -899,34 +897,34 @@ static unsigned int CalculateVMAndRowBytes(
                MetaRequestHeight = 8 * BlockHeight256Bytes;
                MetaRequestWidth = 8 * BlockWidth256Bytes;
                if (ScanDirection == dm_horz) {
-                       *meta_row_height = MetaRequestHeight;
-                       MetaSurfWidth = dml_ceil((double) SwathWidth - 1, MetaRequestWidth)
-                                       + MetaRequestWidth;
-                       *MetaRowByte = MetaSurfWidth * MetaRequestHeight * BytePerPixel / 256.0;
+                          *meta_row_height = (unsigned int)MetaRequestHeight;
+                          MetaSurfWidth = (unsigned int)(dml_ceil((double) SwathWidth - 1, MetaRequestWidth)
+                                  + MetaRequestWidth);
+                          *MetaRowByte = (unsigned int)(MetaSurfWidth * MetaRequestHeight * BytePerPixel / 256.0);
                } else {
-                       *meta_row_height = MetaRequestWidth;
-                       MetaSurfHeight = dml_ceil((double) SwathWidth - 1, MetaRequestHeight)
-                                       + MetaRequestHeight;
-                       *MetaRowByte = MetaSurfHeight * MetaRequestWidth * BytePerPixel / 256.0;
+                          *meta_row_height = (unsigned int)MetaRequestWidth;
+                          MetaSurfHeight = (unsigned int)(dml_ceil((double) SwathWidth - 1, MetaRequestHeight)
+                                  + MetaRequestHeight);
+                          *MetaRowByte = (unsigned int)(MetaSurfHeight * MetaRequestWidth * BytePerPixel / 256.0);
                }
                if (ScanDirection == dm_horz) {
-                       DCCMetaSurfaceBytes = DCCMetaPitch
+                       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch
                                        * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes)
                                                        + 64 * BlockHeight256Bytes) * BytePerPixel
-                                       / 256;
+                                       / 256);
                } else {
-                       DCCMetaSurfaceBytes = DCCMetaPitch
+                       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch
                                        * (dml_ceil(
                                                        (double) ViewportHeight - 1,
                                                        64 * BlockHeight256Bytes)
                                                        + 64 * BlockHeight256Bytes) * BytePerPixel
-                                       / 256;
+                                       / 256);
                }
                if (GPUVMEnable == true) {
-                       MetaPTEBytesFrame = (dml_ceil(
+                       MetaPTEBytesFrame = (unsigned int)((dml_ceil(
                                        (double) (DCCMetaSurfaceBytes - VMMPageSize)
                                                        / (8 * VMMPageSize),
-                                       1) + 1) * 64;
+                                       1) + 1) * 64);
                        MPDEBytesFrame = 128 * (mode_lib->vba.GPUVMMaxPageTableLevels - 1);
                } else {
                        MetaPTEBytesFrame = 0;
@@ -960,7 +958,7 @@ static unsigned int CalculateVMAndRowBytes(
        if (GPUVMEnable == true && mode_lib->vba.GPUVMMaxPageTableLevels > 1) {
                if (ScanDirection == dm_horz) {
                        DPDE0BytesFrame =
-                                       64
+                                       (unsigned int)(64
                                                        * (dml_ceil(
                                                                        ((Pitch
                                                                                        * (dml_ceil(
@@ -972,10 +970,10 @@ static unsigned int CalculateVMAndRowBytes(
                                                                                        - MacroTileSizeBytes)
                                                                                        / (8
                                                                                                        * 2097152),
-                                                                       1) + 1);
+                                                                       1) + 1));
                } else {
                        DPDE0BytesFrame =
-                                       64
+                                       (unsigned int)(64
                                                        * (dml_ceil(
                                                                        ((Pitch
                                                                                        * (dml_ceil(
@@ -987,7 +985,7 @@ static unsigned int CalculateVMAndRowBytes(
                                                                                        - MacroTileSizeBytes)
                                                                                        / (8
                                                                                                        * 2097152),
-                                                                       1) + 1);
+                                                                       1) + 1));
                }
                ExtraDPDEBytesFrame = 128 * (mode_lib->vba.GPUVMMaxPageTableLevels - 2);
        } else {
@@ -1007,7 +1005,7 @@ static unsigned int CalculateVMAndRowBytes(
 
                if (SurfaceTiling == dm_sw_linear) {
                        PixelPTEReqHeight = 1;
-                       PixelPTEReqWidth = 8.0 * VMMPageSize / BytePerPixel;
+                       PixelPTEReqWidth = (unsigned int)8.0 * VMMPageSize / BytePerPixel;
                        PTERequestSize = 64;
                        FractionOfPTEReturnDrop = 0;
                } else if (MacroTileSizeBytes == 4096) {
@@ -1036,7 +1034,7 @@ static unsigned int CalculateVMAndRowBytes(
                        EffectivePDEProcessingBufIn64KBReqs = PDEProcessingBufIn64KBReqs;
 
                if (SurfaceTiling == dm_sw_linear) {
-                       *dpte_row_height =
+                       *dpte_row_height = (unsigned int)(
                                        dml_min(
                                                        128,
                                                        1
@@ -1049,21 +1047,21 @@ static unsigned int CalculateVMAndRowBytes(
                                                                                                                                        * 65536.0
                                                                                                                                        / BytePerPixel)
                                                                                                                        / Pitch),
-                                                                                       1));
+                                                                               1)));
                        *PixelPTEBytesPerRow = PTERequestSize
-                                       * (dml_ceil(
+                                       * (unsigned int)(dml_ceil(
                                                        (double) (Pitch * *dpte_row_height - 1)
                                                                        / PixelPTEReqWidth,
                                                        1) + 1);
                } else if (ScanDirection == dm_horz) {
                        *dpte_row_height = PixelPTEReqHeight;
                        *PixelPTEBytesPerRow = PTERequestSize
-                                       * (dml_ceil(((double) SwathWidth - 1) / PixelPTEReqWidth, 1)
+                                       * (unsigned int)(dml_ceil(((double) SwathWidth - 1) / PixelPTEReqWidth, 1)
                                                        + 1);
                } else {
-                       *dpte_row_height = dml_min(PixelPTEReqWidth, *MacroTileWidth);
+                       *dpte_row_height = (unsigned int)dml_min(PixelPTEReqWidth, *MacroTileWidth);
                        *PixelPTEBytesPerRow = PTERequestSize
-                                       * (dml_ceil(
+                                       * (unsigned int)(dml_ceil(
                                                        ((double) SwathWidth - 1)
                                                                        / PixelPTEReqHeight,
                                                        1) + 1);
@@ -1539,10 +1537,10 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                / mode_lib->vba.PixelClock[k])
                                                / mode_lib->vba.VRatio[k];
                if (mode_lib->vba.BytePerPixelDETC[k] > 0) {
-                       mode_lib->vba.LinesInDETC[k] = mode_lib->vba.DETBufferSizeC[k]
+                       mode_lib->vba.LinesInDETC[k] = (unsigned int)(mode_lib->vba.DETBufferSizeC[k]
                                        / mode_lib->vba.BytePerPixelDETC[k]
-                                       / (mode_lib->vba.SwathWidthY[k] / 2);
-                       mode_lib->vba.LinesInDETCRoundedDownToSwath[k] = dml_floor(
+                                       / (mode_lib->vba.SwathWidthY[k] / 2));
+                       mode_lib->vba.LinesInDETCRoundedDownToSwath[k] = (unsigned int)dml_floor(
                                        mode_lib->vba.LinesInDETC[k],
                                        mode_lib->vba.SwathHeightC[k]);
                        mode_lib->vba.FullDETBufferingTimeC[k] =
@@ -1811,7 +1809,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                dscceComputeDelay(
                                                                mode_lib->vba.DSCInputBitPerComponent[k],
                                                                bpp,
-                                                               dml_ceil(
+                                                               (unsigned int)dml_ceil(
                                                                                (double) mode_lib->vba.HActive[k]
                                                                                                / mode_lib->vba.NumberOfDSCSlices[k],
                                                                                1),
@@ -1821,22 +1819,22 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                                mode_lib->vba.OutputFormat[k]);
                        } else {
                                mode_lib->vba.DSCDelay[k] =
-                                               2
+                                               (unsigned int)(2
                                                                * (dscceComputeDelay(
                                                                                mode_lib->vba.DSCInputBitPerComponent[k],
                                                                                bpp,
-                                                                               dml_ceil(
+                                                                               (unsigned int)dml_ceil(
                                                                                                (double) mode_lib->vba.HActive[k]
                                                                                                                / mode_lib->vba.NumberOfDSCSlices[k],
                                                                                                1),
-                                                                               slices / 2.0,
+                                                                               (unsigned int)(slices / 2.0),
                                                                                mode_lib->vba.OutputFormat[k])
                                                                                + dscComputeDelay(
-                                                                                               mode_lib->vba.OutputFormat[k]));
+                                                                                               mode_lib->vba.OutputFormat[k])));
                        }
-                       mode_lib->vba.DSCDelay[k] = mode_lib->vba.DSCDelay[k]
+                               mode_lib->vba.DSCDelay[k] = (unsigned int)(mode_lib->vba.DSCDelay[k]
                                        * mode_lib->vba.PixelClock[k]
-                                       / mode_lib->vba.PixelClockBackEnd[k];
+                                               / mode_lib->vba.PixelClockBackEnd[k]);
                } else {
                        mode_lib->vba.DSCDelay[k] = 0;
                }
@@ -1860,8 +1858,8 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                Calculate256BBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
-                               dml_ceil(mode_lib->vba.BytePerPixelDETC[k], 2),
+                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
+                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelDETC[k], 2),
                                &mode_lib->vba.BlockHeight256BytesY[k],
                                &mode_lib->vba.BlockHeight256BytesC[k],
                                &mode_lib->vba.BlockWidth256BytesY[k],
@@ -1873,11 +1871,11 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                mode_lib->vba.BlockWidth256BytesY[k],
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
+                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
                                mode_lib->vba.SourceScan[k],
                                mode_lib->vba.ViewportWidth[k],
                                mode_lib->vba.ViewportHeight[k],
-                               mode_lib->vba.SwathWidthY[k],
+                               (unsigned int)mode_lib->vba.SwathWidthY[k],
                                mode_lib->vba.GPUVMEnable,
                                mode_lib->vba.VMMPageSize,
                                mode_lib->vba.PTEBufferSizeInRequestsLuma,
@@ -1913,13 +1911,13 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                        mode_lib->vba.BlockWidth256BytesC[k],
                                                        mode_lib->vba.SourcePixelFormat[k],
                                                        mode_lib->vba.SurfaceTiling[k],
-                                                       dml_ceil(
+                                                       (unsigned int)dml_ceil(
                                                                        mode_lib->vba.BytePerPixelDETC[k],
                                                                        2),
                                                        mode_lib->vba.SourceScan[k],
                                                        mode_lib->vba.ViewportWidth[k] / 2,
                                                        mode_lib->vba.ViewportHeight[k] / 2,
-                                                       mode_lib->vba.SwathWidthY[k] / 2,
+                                                       (unsigned int)mode_lib->vba.SwathWidthY[k] / 2,
                                                        mode_lib->vba.GPUVMEnable,
                                                        mode_lib->vba.VMMPageSize,
                                                        mode_lib->vba.PTEBufferSizeInRequestsLuma,
@@ -1989,7 +1987,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                                mode_lib->vba.WritebackLumaVTaps[k],
                                                                                mode_lib->vba.WritebackChromaHTaps[k],
                                                                                mode_lib->vba.WritebackChromaVTaps[k],
-                                                                               mode_lib->vba.WritebackDestinationWidth[k])
+                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[k])
                                                                                / mode_lib->vba.DISPCLK;
                        } else
                                mode_lib->vba.WritebackDelay[mode_lib->vba.VoltageLevel][k] = 0;
@@ -2008,7 +2006,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                                                        mode_lib->vba.WritebackLumaVTaps[j],
                                                                                                        mode_lib->vba.WritebackChromaHTaps[j],
                                                                                                        mode_lib->vba.WritebackChromaVTaps[j],
-                                                                                                       mode_lib->vba.WritebackDestinationWidth[j])
+                                                                                                       (unsigned int)mode_lib->vba.WritebackDestinationWidth[j])
                                                                                                        / mode_lib->vba.DISPCLK);
                                }
                        }
@@ -2023,7 +2021,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
 
        mode_lib->vba.VStartupLines = 13;
        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
-               mode_lib->vba.MaxVStartupLines[k] =
+               mode_lib->vba.MaxVStartupLines[k] = (unsigned int)(
                                mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k]
                                                - dml_max(
                                                                1.0,
@@ -2031,11 +2029,11 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                                mode_lib->vba.WritebackDelay[mode_lib->vba.VoltageLevel][k]
                                                                                                / (mode_lib->vba.HTotal[k]
                                                                                                                / mode_lib->vba.PixelClock[k]),
-                                                                               1));
+                                                                               1)));
        }
 
        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k)
-               mode_lib->vba.MaximumMaxVStartupLines = dml_max(
+               mode_lib->vba.MaximumMaxVStartupLines = (unsigned int)dml_max(
                                mode_lib->vba.MaximumMaxVStartupLines,
                                mode_lib->vba.MaxVStartupLines[k]);
 
@@ -2111,7 +2109,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                        - mode_lib->vba.VActive[k],
                                                        mode_lib->vba.HTotal[k],
                                                        mode_lib->vba.MaxInterDCNTileRepeaters,
-                                                       dml_min(
+                                                       (unsigned int)dml_min(
                                                                        mode_lib->vba.VStartupLines,
                                                                        mode_lib->vba.MaxVStartupLines[k]),
                                                        mode_lib->vba.GPUVMMaxPageTableLevels,
@@ -2123,11 +2121,11 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                        mode_lib->vba.UrgentLatencyPixelDataOnly,
                                                        mode_lib->vba.UrgentExtraLatency,
                                                        mode_lib->vba.TCalc,
-                                                       mode_lib->vba.PDEAndMetaPTEBytesFrame[k],
-                                                       mode_lib->vba.MetaRowByte[k],
-                                                       mode_lib->vba.PixelPTEBytesPerRow[k],
+                                                       (unsigned int)mode_lib->vba.PDEAndMetaPTEBytesFrame[k],
+                                                       (unsigned int)mode_lib->vba.MetaRowByte[k],
+                                                       (unsigned int)mode_lib->vba.PixelPTEBytesPerRow[k],
                                                        mode_lib->vba.PrefetchSourceLinesY[k],
-                                                       mode_lib->vba.SwathWidthY[k],
+                                                       (unsigned int)mode_lib->vba.SwathWidthY[k],
                                                        mode_lib->vba.BytePerPixelDETY[k],
                                                        mode_lib->vba.VInitPreFillY[k],
                                                        mode_lib->vba.MaxNumSwathY[k],
@@ -2157,7 +2155,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                        &mode_lib->vba.VUpdateWidthPix[k],
                                                        &mode_lib->vba.VReadyOffsetPix[k]);
                        if (mode_lib->vba.BlendingAndTiming[k] == k) {
-                               mode_lib->vba.VStartup[k] = dml_min(
+                               mode_lib->vba.VStartup[k] = (unsigned int)dml_min(
                                                mode_lib->vba.VStartupLines,
                                                mode_lib->vba.MaxVStartupLines[k]);
                                if (mode_lib->vba.VStartupRequiredWhenNotEnoughTimeForDynamicMetadata
@@ -2166,7 +2164,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                        mode_lib->vba.VStartupRequiredWhenNotEnoughTimeForDynamicMetadata;
                                }
                        } else {
-                               mode_lib->vba.VStartup[k] =
+                               mode_lib->vba.VStartup[k] = (unsigned int)
                                                dml_min(
                                                                mode_lib->vba.VStartupLines,
                                                                mode_lib->vba.MaxVStartupLines[mode_lib->vba.BlendingAndTiming[k]]);
@@ -2253,10 +2251,10 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                ImmediateFlipBytes[k] = 0;
                                if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
-                                       ImmediateFlipBytes[k] =
+                                       ImmediateFlipBytes[k] = (unsigned int)(
                                                        mode_lib->vba.PDEAndMetaPTEBytesFrame[k]
                                                                        + mode_lib->vba.MetaRowByte[k]
-                                                                       + mode_lib->vba.PixelPTEBytesPerRow[k];
+                                                                       + mode_lib->vba.PixelPTEBytesPerRow[k]);
                                }
                        }
                        mode_lib->vba.TotImmediateFlipBytes = 0;
@@ -2264,8 +2262,8 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
                                        mode_lib->vba.TotImmediateFlipBytes =
-                                                       mode_lib->vba.TotImmediateFlipBytes
-                                                                       + ImmediateFlipBytes[k];
+                                                       (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
+                                                                       + ImmediateFlipBytes[k]);
                                }
                        }
                        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
@@ -2284,8 +2282,8 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                mode_lib->vba.VRatio[k],
                                                mode_lib->vba.Tno_bw[k],
                                                mode_lib->vba.PDEAndMetaPTEBytesFrame[k],
-                                               mode_lib->vba.MetaRowByte[k],
-                                               mode_lib->vba.PixelPTEBytesPerRow[k],
+                                               (unsigned int)mode_lib->vba.MetaRowByte[k],
+                                               (unsigned int)mode_lib->vba.PixelPTEBytesPerRow[k],
                                                mode_lib->vba.DCCEnable[k],
                                                mode_lib->vba.dpte_row_height[k],
                                                mode_lib->vba.meta_row_height[k],
@@ -2409,7 +2407,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                double MaxDETBufferingTimeY;
                double ActiveDRAMClockChangeLatencyMarginY;
 
-               mode_lib->vba.LBLatencyHidingSourceLinesY =
+               mode_lib->vba.LBLatencyHidingSourceLinesY = (unsigned int)(
                                dml_min(
                                                mode_lib->vba.MaxLineBufferLines,
                                                (unsigned int) dml_floor(
@@ -2419,9 +2417,9 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                                                / dml_max(
                                                                                                                mode_lib->vba.HRatio[k],
                                                                                                                1.0)),
-                                                               1)) - (mode_lib->vba.vtaps[k] - 1);
+                                                               1)) -(mode_lib->vba.vtaps[k] - 1));
 
-               mode_lib->vba.LBLatencyHidingSourceLinesC =
+               mode_lib->vba.LBLatencyHidingSourceLinesC = (unsigned int)(
                                dml_min(
                                                mode_lib->vba.MaxLineBufferLines,
                                                (unsigned int) dml_floor(
@@ -2434,7 +2432,7 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
                                                                                                                                / 2,
                                                                                                                1.0)),
                                                                1))
-                                               - (mode_lib->vba.VTAPsChroma[k] - 1);
+                               -(mode_lib->vba.VTAPsChroma[k] - 1));
 
                EffectiveLBLatencyHidingY = mode_lib->vba.LBLatencyHidingSourceLinesY
                                / mode_lib->vba.VRatio[k]
@@ -2691,14 +2689,14 @@ static void dml20_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPer
 
                for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
                        if (mode_lib->vba.BlendingAndTiming[k] == k) {
-                               unsigned int Margin = (mode_lib->vba.MaxVStartupLines[k] - mode_lib->vba.VStartup[k])
-                                               * mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k];
+                               unsigned int Margin = (unsigned int)((mode_lib->vba.MaxVStartupLines[k] - mode_lib->vba.VStartup[k])
+                                               * mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]);
 
                                if (FirstMainPlane) {
                                        VStartupMargin = Margin;
                                        FirstMainPlane = false;
                                } else
-                                       VStartupMargin = dml_min(VStartupMargin, Margin);
+                                       VStartupMargin = (unsigned int)dml_min(VStartupMargin, Margin);
                }
 
                if (mode_lib->vba.UseMaximumVStartup) {
@@ -2896,26 +2894,26 @@ static void dml20_DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
 
                if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
                                <= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
-                       mode_lib->vba.SwathHeightY[k] = MaximumSwathHeightY;
-                       mode_lib->vba.SwathHeightC[k] = MaximumSwathHeightC;
+                          mode_lib->vba.SwathHeightY[k] = (unsigned int)MaximumSwathHeightY;
+                          mode_lib->vba.SwathHeightC[k] = (unsigned int)MaximumSwathHeightC;
                } else {
-                       mode_lib->vba.SwathHeightY[k] = MinimumSwathHeightY;
-                       mode_lib->vba.SwathHeightC[k] = MinimumSwathHeightC;
+                          mode_lib->vba.SwathHeightY[k] = (unsigned int)MinimumSwathHeightY;
+                          mode_lib->vba.SwathHeightC[k] = (unsigned int)MinimumSwathHeightC;
                }
 
                if (mode_lib->vba.SwathHeightC[k] == 0) {
-                       mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0] * 1024;
-                       mode_lib->vba.DETBufferSizeC[k] = 0;
+                          mode_lib->vba.DETBufferSizeY[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0] * 1024);
+                          mode_lib->vba.DETBufferSizeC[k] = 0;
                } else if (mode_lib->vba.SwathHeightY[k] <= mode_lib->vba.SwathHeightC[k]) {
-                       mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 / 2;
-                       mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 / 2;
+                          mode_lib->vba.DETBufferSizeY[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 / 2);
+                          mode_lib->vba.DETBufferSizeC[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 / 2);
                } else {
-                       mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 * 2 / 3;
-                       mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 / 3;
+                          mode_lib->vba.DETBufferSizeY[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 * 2 / 3);
+                          mode_lib->vba.DETBufferSizeC[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 / 3);
                }
        }
 }
@@ -3233,23 +3231,23 @@ static unsigned int TruncToValidBPP(
                                if (DecimalBPP < 6)
                                        return BPP_INVALID;
                                else if (DecimalBPP >= 1.5 * DSCInputBitPerComponent - 1.0 / 16)
-                                       return 1.5 * DSCInputBitPerComponent - 1.0 / 16;
+                                       return (unsigned int)(1.5 * DSCInputBitPerComponent - 1.0 / 16);
                                else
-                                       return dml_floor(16 * DecimalBPP, 1) / 16;
+                                       return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16);
                        } else if (Format == dm_n422) {
                                if (DecimalBPP < 7)
                                        return BPP_INVALID;
                                else if (DecimalBPP >= 2 * DSCInputBitPerComponent - 1.0 / 16)
-                                       return 2 * DSCInputBitPerComponent - 1.0 / 16;
+                                       return (unsigned int)(2 * DSCInputBitPerComponent - 1.0 / 16);
                                else
-                                       return dml_floor(16 * DecimalBPP, 1) / 16;
+                                       return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16);
                        } else {
                                if (DecimalBPP < 8)
                                        return BPP_INVALID;
                                else if (DecimalBPP >= 3 * DSCInputBitPerComponent - 1.0 / 16)
-                                       return 3 * DSCInputBitPerComponent - 1.0 / 16;
+                                       return (unsigned int)(3 * DSCInputBitPerComponent - 1.0 / 16);
                                else
-                                       return dml_floor(16 * DecimalBPP, 1) / 16;
+                                       return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16);
                        }
                } else if (Format == dm_420) {
                        if (DecimalBPP >= 18)
@@ -3752,8 +3750,8 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                Calculate256BBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
-                               dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
+                               (unsigned int)dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
+                               (unsigned int)dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
                                &locals->Read256BlockHeightY[k],
                                &locals->Read256BlockHeightC[k],
                                &locals->Read256BlockWidthY[k],
@@ -3930,7 +3928,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        locals->DISPCLK_DPPCLK_Support[i][j] = false;
                                }
                        }
-                       locals->TotalNumberOfActiveDPP[i][j] = 0.0;
+                       locals->TotalNumberOfActiveDPP[i][j] = (unsigned int)0.0;
                        for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++)
                                locals->TotalNumberOfActiveDPP[i][j] = locals->TotalNumberOfActiveDPP[i][j] + locals->NoOfDPP[i][j][k];
                        if (j == 1) {
@@ -3985,7 +3983,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        || mode_lib->vba.PlaneRequiredDISPCLK > mode_lib->vba.MaxDispclkRoundedDownToDFSGranularity)
                                                locals->DISPCLK_DPPCLK_Support[i][j] = false;
                                }
-                               locals->TotalNumberOfActiveDPP[i][j] = 0.0;
+                               locals->TotalNumberOfActiveDPP[i][j] = (unsigned int)0.0;
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++)
                                        locals->TotalNumberOfActiveDPP[i][j] = locals->TotalNumberOfActiveDPP[i][j] + locals->NoOfDPP[i][j][k];
                        }
@@ -4239,17 +4237,17 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        || locals->RequiresDSC[i][k] == false) {
                                mode_lib->vba.slices = 0;
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 3200.0) {
-                               mode_lib->vba.slices = dml_ceil(
+                               mode_lib->vba.slices = (unsigned int)dml_ceil(
                                                mode_lib->vba.PixelClockBackEnd[k] / 400.0,
                                                4.0);
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 1360.0) {
-                               mode_lib->vba.slices = 8.0;
+                               mode_lib->vba.slices = (unsigned int)8.0;
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 680.0) {
-                               mode_lib->vba.slices = 4.0;
+                               mode_lib->vba.slices = (unsigned int)4.0;
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 340.0) {
-                               mode_lib->vba.slices = 2.0;
+                               mode_lib->vba.slices = (unsigned int)2.0;
                        } else {
-                               mode_lib->vba.slices = 1.0;
+                               mode_lib->vba.slices = (unsigned int)1.0;
                        }
                        if (locals->OutputBppPerState[i][k] == BPP_BLENDED_PIPE
                                        || locals->OutputBppPerState[i][k] == BPP_INVALID) {
@@ -4263,7 +4261,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        dscceComputeDelay(
                                                                        mode_lib->vba.DSCInputBitPerComponent[k],
                                                                        mode_lib->vba.bpp,
-                                                                       dml_ceil(
+                                                                       (unsigned int)dml_ceil(
                                                                                        mode_lib->vba.HActive[k]
                                                                                                        / mode_lib->vba.slices,
                                                                                        1.0),
@@ -4276,7 +4274,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        2.0 * (dscceComputeDelay(
                                                                                        mode_lib->vba.DSCInputBitPerComponent[k],
                                                                                        mode_lib->vba.bpp,
-                                                                                       dml_ceil(mode_lib->vba.HActive[k] / mode_lib->vba.slices, 1.0),
+                                                                                       (unsigned int)dml_ceil(mode_lib->vba.HActive[k] / mode_lib->vba.slices, 1.0),
                                                                                        mode_lib->vba.slices / 2,
                                                                                        mode_lib->vba.OutputFormat[k])
                                                                        + dscComputeDelay(mode_lib->vba.OutputFormat[k]));
@@ -4302,9 +4300,9 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                for (j = 0; j < 2; j++) {
                        for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
                                if (locals->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1)
-                                       locals->SwathWidthYPerState[i][j][k] = dml_min(locals->SwathWidthYSingleDPP[k], dml_round(locals->HActive[k] / 2 * locals->HRatio[k]));
+                                       locals->SwathWidthYPerState[i][j][k] = (unsigned int)dml_min(locals->SwathWidthYSingleDPP[k], dml_round(locals->HActive[k] / 2 * locals->HRatio[k]));
                                else
-                                       locals->SwathWidthYPerState[i][j][k] = locals->SwathWidthYSingleDPP[k] / locals->NoOfDPP[i][j][k];
+                                       locals->SwathWidthYPerState[i][j][k] = (unsigned int)locals->SwathWidthYSingleDPP[k] / locals->NoOfDPP[i][j][k];
                                locals->SwathWidthGranularityY = 256  / dml_ceil(locals->BytePerPixelInDETY[k], 1) / locals->MaxSwathHeightY[k];
                                locals->RoundedUpMaxSwathSizeBytesY = (dml_ceil(locals->SwathWidthYPerState[i][j][k] - 1, locals->SwathWidthGranularityY)
                                                + locals->SwathWidthGranularityY) * locals->BytePerPixelInDETY[k] * locals->MaxSwathHeightY[k];
@@ -4324,11 +4322,11 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                }
 
                                if (locals->RoundedUpMaxSwathSizeBytesY + locals->RoundedUpMaxSwathSizeBytesC <= locals->DETBufferSizeInKByte[0] * 1024.0 / 2) {
-                                       locals->SwathHeightYPerState[i][j][k] = locals->MaxSwathHeightY[k];
-                                       locals->SwathHeightCPerState[i][j][k] = locals->MaxSwathHeightC[k];
+                                       locals->SwathHeightYPerState[i][j][k] = (unsigned int)locals->MaxSwathHeightY[k];
+                                       locals->SwathHeightCPerState[i][j][k] = (unsigned int)locals->MaxSwathHeightC[k];
                                } else {
-                                       locals->SwathHeightYPerState[i][j][k] = locals->MinSwathHeightY[k];
-                                       locals->SwathHeightCPerState[i][j][k] = locals->MinSwathHeightC[k];
+                                       locals->SwathHeightYPerState[i][j][k] = (unsigned int)locals->MinSwathHeightY[k];
+                                       locals->SwathHeightCPerState[i][j][k] = (unsigned int)locals->MinSwathHeightC[k];
                                }
 
                                if (locals->BytePerPixelInDETC[k] == 0) {
@@ -4343,16 +4341,16 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        locals->LinesInDETChroma = locals->DETBufferSizeInKByte[0] * 1024 / 3 / locals->BytePerPixelInDETY[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
                                }
 
-                               locals->EffectiveLBLatencyHidingSourceLinesLuma = dml_min(locals->MaxLineBufferLines,
+                               locals->EffectiveLBLatencyHidingSourceLinesLuma = (unsigned int)dml_min(locals->MaxLineBufferLines,
                                        dml_floor(locals->LineBufferSize / locals->LBBitPerPixel[k] / (locals->SwathWidthYPerState[i][j][k]
                                        / dml_max(locals->HRatio[k], 1)), 1)) - (locals->vtaps[k] - 1);
 
-                               locals->EffectiveLBLatencyHidingSourceLinesChroma =  dml_min(locals->MaxLineBufferLines,
+                               locals->EffectiveLBLatencyHidingSourceLinesChroma =  (unsigned int)dml_min(locals->MaxLineBufferLines,
                                                dml_floor(locals->LineBufferSize / locals->LBBitPerPixel[k]
                                                / (locals->SwathWidthYPerState[i][j][k] / 2
                                                / dml_max(locals->HRatio[k] / 2, 1)), 1)) - (locals->VTAPsChroma[k] - 1);
 
-                               locals->EffectiveDETLBLinesLuma = dml_floor(locals->LinesInDETLuma +  dml_min(
+                               locals->EffectiveDETLBLinesLuma = (unsigned int)dml_floor(locals->LinesInDETLuma +  dml_min(
                                                locals->LinesInDETLuma * locals->RequiredDISPCLK[i][j] * locals->BytePerPixelInDETY[k] *
                                                locals->PSCL_FACTOR[k] / locals->ReturnBWPerState[i][0],
                                                locals->EffectiveLBLatencyHidingSourceLinesLuma),
@@ -4507,7 +4505,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                mode_lib->vba.Read256BlockWidthY[k],
                                                mode_lib->vba.SourcePixelFormat[k],
                                                mode_lib->vba.SurfaceTiling[k],
-                                               dml_ceil(mode_lib->vba.BytePerPixelInDETY[k], 1.0),
+                                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelInDETY[k], 1.0),
                                                mode_lib->vba.SourceScan[k],
                                                mode_lib->vba.ViewportWidth[k],
                                                mode_lib->vba.ViewportHeight[k],
@@ -4546,17 +4544,17 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.Read256BlockWidthY[k],
                                                        mode_lib->vba.SourcePixelFormat[k],
                                                        mode_lib->vba.SurfaceTiling[k],
-                                                       dml_ceil(mode_lib->vba.BytePerPixelInDETC[k], 2.0),
+                                                       (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelInDETC[k], 2.0),
                                                        mode_lib->vba.SourceScan[k],
-                                                       mode_lib->vba.ViewportWidth[k] / 2.0,
-                                                       mode_lib->vba.ViewportHeight[k] / 2.0,
-                                                       mode_lib->vba.SwathWidthYPerState[i][j][k] / 2.0,
+                                                       (unsigned int)(mode_lib->vba.ViewportWidth[k] / 2.0),
+                                                       (unsigned int)(mode_lib->vba.ViewportHeight[k] / 2.0),
+                                                       (unsigned int)(mode_lib->vba.SwathWidthYPerState[i][j][k] / 2.0),
                                                        mode_lib->vba.GPUVMEnable,
                                                        mode_lib->vba.VMMPageSize,
                                                        mode_lib->vba.PTEBufferSizeInRequestsLuma,
                                                        mode_lib->vba.PDEProcessingBufIn64KBReqs,
                                                        mode_lib->vba.PitchC[k],
-                                                       0.0,
+                                                       (unsigned int)0.0,
                                                        &mode_lib->vba.MacroTileWidthC[k],
                                                        &mode_lib->vba.MetaRowBytesC,
                                                        &mode_lib->vba.DPTEBytesPerRowC,
@@ -4575,8 +4573,8 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        &mode_lib->vba.MaxNumSwC[k]);
                                } else {
                                        mode_lib->vba.PDEAndMetaPTEBytesPerFrameC = 0.0;
-                                       mode_lib->vba.MetaRowBytesC = 0.0;
-                                       mode_lib->vba.DPTEBytesPerRowC = 0.0;
+                                       mode_lib->vba.MetaRowBytesC = (unsigned int)0.0;
+                                       mode_lib->vba.DPTEBytesPerRowC = (unsigned int)0.0;
                                        locals->PrefetchLinesC[0][0][k] = 0.0;
                                        locals->PTEBufferSizeNotExceededC[i][j][k] = true;
                                        locals->PTEBufferSizeInRequestsForLuma = mode_lib->vba.PTEBufferSizeInRequestsLuma + mode_lib->vba.PTEBufferSizeInRequestsChroma;
@@ -4632,7 +4630,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                mode_lib->vba.WritebackLumaVTaps[k],
                                                                                mode_lib->vba.WritebackChromaHTaps[k],
                                                                                mode_lib->vba.WritebackChromaVTaps[k],
-                                                                               mode_lib->vba.WritebackDestinationWidth[k]) / locals->RequiredDISPCLK[i][j];
+                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[k]) / locals->RequiredDISPCLK[i][j];
                                        } else {
                                                locals->WritebackDelay[i][k] = 0.0;
                                        }
@@ -4649,7 +4647,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                                        mode_lib->vba.WritebackLumaVTaps[m],
                                                                                                        mode_lib->vba.WritebackChromaHTaps[m],
                                                                                                        mode_lib->vba.WritebackChromaVTaps[m],
-                                                                                                       mode_lib->vba.WritebackDestinationWidth[m]) / locals->RequiredDISPCLK[i][j]);
+                                                                                                       (unsigned int)mode_lib->vba.WritebackDestinationWidth[m]) / locals->RequiredDISPCLK[i][j]);
                                                }
                                        }
                                }
@@ -4714,7 +4712,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                        mode_lib->vba.RequiredDISPCLK[i][j],
                                                                        mode_lib->vba.PixelClock[k],
                                                                        mode_lib->vba.ProjectedDCFCLKDeepSleep[0][0],
-                                                                       mode_lib->vba.DSCDelayPerState[i][k],
+                                                                       (unsigned int)mode_lib->vba.DSCDelayPerState[i][k],
                                                                        mode_lib->vba.NoOfDPP[i][j][k],
                                                                        mode_lib->vba.ScalerEnabled[k],
                                                                        mode_lib->vba.NumberOfCursors[k],
@@ -4724,14 +4722,14 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                        mode_lib->vba.DPPCLKDelayCNVCFormater,
                                                                        mode_lib->vba.DPPCLKDelayCNVCCursor,
                                                                        mode_lib->vba.DISPCLKDelaySubtotal,
-                                                                       mode_lib->vba.SwathWidthYPerState[i][j][k]
-                                                                                       / mode_lib->vba.HRatio[k],
+                                                                       (unsigned int)(mode_lib->vba.SwathWidthYPerState[i][j][k]
+                                                                                     / mode_lib->vba.HRatio[k]),
                                                                        mode_lib->vba.OutputFormat[k],
                                                                        mode_lib->vba.VTotal[k]
                                                                                        - mode_lib->vba.VActive[k],
                                                                        mode_lib->vba.HTotal[k],
                                                                        mode_lib->vba.MaxInterDCNTileRepeaters,
-                                                                       mode_lib->vba.MaximumVStartup[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.MaximumVStartup[0][0][k],
                                                                        mode_lib->vba.GPUVMMaxPageTableLevels,
                                                                        mode_lib->vba.GPUVMEnable,
                                                                        mode_lib->vba.DynamicMetadataEnable[k],
@@ -4741,9 +4739,9 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                        mode_lib->vba.UrgentLatencyPixelDataOnly,
                                                                        mode_lib->vba.ExtraLatency,
                                                                        mode_lib->vba.TimeCalc,
-                                                                       mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k],
-                                                                       mode_lib->vba.MetaRowBytes[0][0][k],
-                                                                       mode_lib->vba.DPTEBytesPerRow[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.MetaRowBytes[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.DPTEBytesPerRow[0][0][k],
                                                                        mode_lib->vba.PrefetchLinesY[0][0][k],
                                                                        mode_lib->vba.SwathWidthYPerState[i][j][k],
                                                                        mode_lib->vba.BytePerPixelInDETY[k],
@@ -4852,16 +4850,16 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                        mode_lib->vba.PrefetchBW[k]);
                                }
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
-                                       mode_lib->vba.ImmediateFlipBytes[k] = 0.0;
+                                       mode_lib->vba.ImmediateFlipBytes[k] = (unsigned int)0.0;
                                        if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                        && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
                                                mode_lib->vba.ImmediateFlipBytes[k] =
-                                                               mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k]
+                                                               (unsigned int)(mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k]
                                                                                + mode_lib->vba.MetaRowBytes[0][0][k]
-                                                                               + mode_lib->vba.DPTEBytesPerRow[0][0][k];
+                                                                               + mode_lib->vba.DPTEBytesPerRow[0][0][k]);
                                        }
                                }
-                               mode_lib->vba.TotImmediateFlipBytes = 0.0;
+                                  mode_lib->vba.TotImmediateFlipBytes = 0;
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
                                        if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                        && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
@@ -4887,8 +4885,8 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.VRatio[k],
                                                        mode_lib->vba.Tno_bw[k],
                                                        mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k],
-                                                       mode_lib->vba.MetaRowBytes[0][0][k],
-                                                       mode_lib->vba.DPTEBytesPerRow[0][0][k],
+                                                       (unsigned int)mode_lib->vba.MetaRowBytes[0][0][k],
+                                                       (unsigned int)mode_lib->vba.DPTEBytesPerRow[0][0][k],
                                                        mode_lib->vba.DCCEnable[k],
                                                        mode_lib->vba.dpte_row_height[k],
                                                        mode_lib->vba.meta_row_height[k],
index 95b0a350188063eb7a7489d32e4f552b1d0b46e3..d869759cda94f21093aa3ae7175d1337e597fd90 100644 (file)
@@ -350,7 +350,7 @@ static unsigned int dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / bpp / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / bpp / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -510,13 +510,13 @@ static bool CalculateDelayAfterScaler(
        }
 
        if (ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotal + DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotal + DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotal + DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotal + DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + DPPCLKDelayCNVCFormater + NumberOfCursors * DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + DPPCLKDelayCNVCFormater + NumberOfCursors * DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)DISPCLKDelaySubtotal;
 
        if (DPPCLK == 0.0 || DISPCLK == 0.0)
                return true;
@@ -609,7 +609,7 @@ static bool CalculatePrefetchSchedule(
        double TimeForFetchingRowInVBlank = 0;
        double LinesToRequestPrefetchPixelData = 0;
 
-       *VUpdateOffsetPix = dml_ceil(HTotal / 4.0, 1);
+       *VUpdateOffsetPix = (unsigned int)dml_ceil(HTotal / 4.0, 1);
        TotalRepeaterDelayTime = MaxInterDCNTileRepeaters * (2.0 / DPPCLK + 3.0 / DISPCLK);
        *VUpdateWidthPix = (14.0 / DCFCLKDeepSleep + 12.0 / DPPCLK + TotalRepeaterDelayTime)
                        * PixelClock;
@@ -889,14 +889,13 @@ static double CalculatePrefetchSourceLines(
 
        if (!mode_lib->vba.IgnoreViewportPositioning) {
 
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0;
+               *MaxNumSwath = (unsigned int)(dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0);
 
                if (*VInitPreFill > 1.0)
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill - 2) % SwathHeight;
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill - 2) % SwathHeight);
                else
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 2)
-                                       % SwathHeight;
-               MaxPartialSwath = dml_max(1U, MaxPartialSwath);
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill + SwathHeight - 2) % SwathHeight);
+               MaxPartialSwath = (unsigned int)dml_max(1U, MaxPartialSwath);
 
        } else {
 
@@ -904,13 +903,12 @@ static double CalculatePrefetchSourceLines(
                        dml_print(
                                        "WARNING DML: using viewport y position of 0 even though actual viewport y position is non-zero in prefetch source lines calculation\n");
 
-               *MaxNumSwath = dml_ceil(*VInitPreFill / SwathHeight, 1);
+               *MaxNumSwath = (unsigned int)dml_ceil(*VInitPreFill / SwathHeight, 1);
 
                if (*VInitPreFill > 1.0)
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill - 1) % SwathHeight;
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill - 1) % SwathHeight);
                else
-                       MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 1)
-                                       % SwathHeight;
+                          MaxPartialSwath = (unsigned int)((unsigned int)(*VInitPreFill + SwathHeight - 1) % SwathHeight);
        }
 
        return *MaxNumSwath * SwathHeight + MaxPartialSwath;
@@ -960,34 +958,34 @@ static unsigned int CalculateVMAndRowBytes(
                MetaRequestHeight = 8 * BlockHeight256Bytes;
                MetaRequestWidth = 8 * BlockWidth256Bytes;
                if (ScanDirection == dm_horz) {
-                       *meta_row_height = MetaRequestHeight;
-                       MetaSurfWidth = dml_ceil((double) SwathWidth - 1, MetaRequestWidth)
-                                       + MetaRequestWidth;
-                       *MetaRowByte = MetaSurfWidth * MetaRequestHeight * BytePerPixel / 256.0;
+                       *meta_row_height = (unsigned int)MetaRequestHeight;
+                       MetaSurfWidth = (unsigned int)(dml_ceil((double) SwathWidth - 1, MetaRequestWidth)
+                                       + MetaRequestWidth);
+                          *MetaRowByte = (unsigned int)(MetaSurfWidth * MetaRequestHeight * BytePerPixel / 256.0);
                } else {
-                       *meta_row_height = MetaRequestWidth;
-                       MetaSurfHeight = dml_ceil((double) SwathWidth - 1, MetaRequestHeight)
-                                       + MetaRequestHeight;
-                       *MetaRowByte = MetaSurfHeight * MetaRequestWidth * BytePerPixel / 256.0;
+                       *meta_row_height = (unsigned int)MetaRequestWidth;
+                       MetaSurfHeight = (unsigned int)(dml_ceil((double) SwathWidth - 1, MetaRequestHeight)
+                                       + MetaRequestHeight);
+                          *MetaRowByte = (unsigned int)(MetaSurfHeight * MetaRequestWidth * BytePerPixel / 256.0);
                }
                if (ScanDirection == dm_horz) {
-                       DCCMetaSurfaceBytes = DCCMetaPitch
+                       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch
                                        * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes)
                                                        + 64 * BlockHeight256Bytes) * BytePerPixel
-                                       / 256;
+                                       / 256);
                } else {
-                       DCCMetaSurfaceBytes = DCCMetaPitch
+                       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch
                                        * (dml_ceil(
                                                        (double) ViewportHeight - 1,
                                                        64 * BlockHeight256Bytes)
                                                        + 64 * BlockHeight256Bytes) * BytePerPixel
-                                       / 256;
+                                       / 256);
                }
                if (GPUVMEnable == true) {
-                       MetaPTEBytesFrame = (dml_ceil(
+                       MetaPTEBytesFrame = (unsigned int)((dml_ceil(
                                        (double) (DCCMetaSurfaceBytes - VMMPageSize)
                                                        / (8 * VMMPageSize),
-                                       1) + 1) * 64;
+                                       1) + 1) * 64);
                        MPDEBytesFrame = 128 * (mode_lib->vba.GPUVMMaxPageTableLevels - 1);
                } else {
                        MetaPTEBytesFrame = 0;
@@ -1021,7 +1019,7 @@ static unsigned int CalculateVMAndRowBytes(
        if (GPUVMEnable == true && mode_lib->vba.GPUVMMaxPageTableLevels > 1) {
                if (ScanDirection == dm_horz) {
                        DPDE0BytesFrame =
-                                       64
+                                       (unsigned int)(64
                                                        * (dml_ceil(
                                                                        ((Pitch
                                                                                        * (dml_ceil(
@@ -1033,10 +1031,10 @@ static unsigned int CalculateVMAndRowBytes(
                                                                                        - MacroTileSizeBytes)
                                                                                        / (8
                                                                                                        * 2097152),
-                                                                       1) + 1);
+                                                                       1) + 1));
                } else {
                        DPDE0BytesFrame =
-                                       64
+                                       (unsigned int)(64
                                                        * (dml_ceil(
                                                                        ((Pitch
                                                                                        * (dml_ceil(
@@ -1048,7 +1046,7 @@ static unsigned int CalculateVMAndRowBytes(
                                                                                        - MacroTileSizeBytes)
                                                                                        / (8
                                                                                                        * 2097152),
-                                                                       1) + 1);
+                                                                       1) + 1));
                }
                ExtraDPDEBytesFrame = 128 * (mode_lib->vba.GPUVMMaxPageTableLevels - 2);
        } else {
@@ -1068,7 +1066,7 @@ static unsigned int CalculateVMAndRowBytes(
 
                if (SurfaceTiling == dm_sw_linear) {
                        PixelPTEReqHeight = 1;
-                       PixelPTEReqWidth = 8.0 * VMMPageSize / BytePerPixel;
+                       PixelPTEReqWidth = (unsigned int)8.0 * VMMPageSize / BytePerPixel;
                        PTERequestSize = 64;
                        FractionOfPTEReturnDrop = 0;
                } else if (MacroTileSizeBytes == 4096) {
@@ -1097,7 +1095,7 @@ static unsigned int CalculateVMAndRowBytes(
                        EffectivePDEProcessingBufIn64KBReqs = PDEProcessingBufIn64KBReqs;
 
                if (SurfaceTiling == dm_sw_linear) {
-                       *dpte_row_height =
+                       *dpte_row_height = (unsigned int)(
                                        dml_min(
                                                        128,
                                                        1
@@ -1110,21 +1108,21 @@ static unsigned int CalculateVMAndRowBytes(
                                                                                                                                        * 65536.0
                                                                                                                                        / BytePerPixel)
                                                                                                                        / Pitch),
-                                                                                       1));
+                                                                               1)));
                        *PixelPTEBytesPerRow = PTERequestSize
-                                       * (dml_ceil(
+                                       * (unsigned int)(dml_ceil(
                                                        (double) (Pitch * *dpte_row_height - 1)
                                                                        / PixelPTEReqWidth,
                                                        1) + 1);
                } else if (ScanDirection == dm_horz) {
                        *dpte_row_height = PixelPTEReqHeight;
                        *PixelPTEBytesPerRow = PTERequestSize
-                                       * (dml_ceil(((double) SwathWidth - 1) / PixelPTEReqWidth, 1)
+                                       * (unsigned int)(dml_ceil(((double) SwathWidth - 1) / PixelPTEReqWidth, 1)
                                                        + 1);
                } else {
-                       *dpte_row_height = dml_min(PixelPTEReqWidth, *MacroTileWidth);
+                       *dpte_row_height = (unsigned int)dml_min(PixelPTEReqWidth, *MacroTileWidth);
                        *PixelPTEBytesPerRow = PTERequestSize
-                                       * (dml_ceil(
+                                       * (unsigned int)(dml_ceil(
                                                        ((double) SwathWidth - 1)
                                                                        / PixelPTEReqHeight,
                                                        1) + 1);
@@ -1576,10 +1574,10 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                / mode_lib->vba.PixelClock[k])
                                                / mode_lib->vba.VRatio[k];
                if (mode_lib->vba.BytePerPixelDETC[k] > 0) {
-                       mode_lib->vba.LinesInDETC[k] = mode_lib->vba.DETBufferSizeC[k]
+                       mode_lib->vba.LinesInDETC[k] = (unsigned int)(mode_lib->vba.DETBufferSizeC[k]
                                        / mode_lib->vba.BytePerPixelDETC[k]
-                                       / (mode_lib->vba.SwathWidthY[k] / 2);
-                       mode_lib->vba.LinesInDETCRoundedDownToSwath[k] = dml_floor(
+                                       / (mode_lib->vba.SwathWidthY[k] / 2));
+                       mode_lib->vba.LinesInDETCRoundedDownToSwath[k] = (unsigned int)dml_floor(
                                        mode_lib->vba.LinesInDETC[k],
                                        mode_lib->vba.SwathHeightC[k]);
                        mode_lib->vba.FullDETBufferingTimeC[k] =
@@ -1848,7 +1846,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                dscceComputeDelay(
                                                                mode_lib->vba.DSCInputBitPerComponent[k],
                                                                bpp,
-                                                               dml_ceil(
+                                                               (unsigned int)dml_ceil(
                                                                                (double) mode_lib->vba.HActive[k]
                                                                                                / mode_lib->vba.NumberOfDSCSlices[k],
                                                                                1),
@@ -1862,18 +1860,18 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                * (dscceComputeDelay(
                                                                                mode_lib->vba.DSCInputBitPerComponent[k],
                                                                                bpp,
-                                                                               dml_ceil(
+                                                                               (unsigned int)dml_ceil(
                                                                                                (double) mode_lib->vba.HActive[k]
                                                                                                                / mode_lib->vba.NumberOfDSCSlices[k],
                                                                                                1),
-                                                                               slices / 2.0,
+                                                                               (unsigned int)(slices / 2.0),
                                                                                mode_lib->vba.OutputFormat[k])
                                                                                + dscComputeDelay(
                                                                                                mode_lib->vba.OutputFormat[k]));
                        }
-                       mode_lib->vba.DSCDelay[k] = mode_lib->vba.DSCDelay[k]
+                               mode_lib->vba.DSCDelay[k] = (unsigned int)(mode_lib->vba.DSCDelay[k]
                                        * mode_lib->vba.PixelClock[k]
-                                       / mode_lib->vba.PixelClockBackEnd[k];
+                                               / mode_lib->vba.PixelClockBackEnd[k]);
                } else {
                        mode_lib->vba.DSCDelay[k] = 0;
                }
@@ -1897,8 +1895,8 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                Calculate256BBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
-                               dml_ceil(mode_lib->vba.BytePerPixelDETC[k], 2),
+                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
+                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelDETC[k], 2),
                                &mode_lib->vba.BlockHeight256BytesY[k],
                                &mode_lib->vba.BlockHeight256BytesC[k],
                                &mode_lib->vba.BlockWidth256BytesY[k],
@@ -1910,11 +1908,11 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                mode_lib->vba.BlockWidth256BytesY[k],
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
+                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelDETY[k], 1),
                                mode_lib->vba.SourceScan[k],
                                mode_lib->vba.ViewportWidth[k],
                                mode_lib->vba.ViewportHeight[k],
-                               mode_lib->vba.SwathWidthY[k],
+                               (unsigned int)mode_lib->vba.SwathWidthY[k],
                                mode_lib->vba.GPUVMEnable,
                                mode_lib->vba.VMMPageSize,
                                mode_lib->vba.PTEBufferSizeInRequestsLuma,
@@ -1950,13 +1948,13 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                        mode_lib->vba.BlockWidth256BytesC[k],
                                                        mode_lib->vba.SourcePixelFormat[k],
                                                        mode_lib->vba.SurfaceTiling[k],
-                                                       dml_ceil(
+                                                       (unsigned int)dml_ceil(
                                                                        mode_lib->vba.BytePerPixelDETC[k],
                                                                        2),
                                                        mode_lib->vba.SourceScan[k],
                                                        mode_lib->vba.ViewportWidth[k] / 2,
                                                        mode_lib->vba.ViewportHeight[k] / 2,
-                                                       mode_lib->vba.SwathWidthY[k] / 2,
+                                                       (unsigned int)mode_lib->vba.SwathWidthY[k] / 2,
                                                        mode_lib->vba.GPUVMEnable,
                                                        mode_lib->vba.VMMPageSize,
                                                        mode_lib->vba.PTEBufferSizeInRequestsLuma,
@@ -2026,7 +2024,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                                mode_lib->vba.WritebackLumaVTaps[k],
                                                                                mode_lib->vba.WritebackChromaHTaps[k],
                                                                                mode_lib->vba.WritebackChromaVTaps[k],
-                                                                               mode_lib->vba.WritebackDestinationWidth[k])
+                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[k])
                                                                                / mode_lib->vba.DISPCLK;
                        } else
                                mode_lib->vba.WritebackDelay[mode_lib->vba.VoltageLevel][k] = 0;
@@ -2045,7 +2043,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                                                        mode_lib->vba.WritebackLumaVTaps[j],
                                                                                                        mode_lib->vba.WritebackChromaHTaps[j],
                                                                                                        mode_lib->vba.WritebackChromaVTaps[j],
-                                                                                                       mode_lib->vba.WritebackDestinationWidth[j])
+                                                                                                       (unsigned int)mode_lib->vba.WritebackDestinationWidth[j])
                                                                                                        / mode_lib->vba.DISPCLK);
                                }
                        }
@@ -2060,7 +2058,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
 
        mode_lib->vba.VStartupLines = 13;
        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
-               mode_lib->vba.MaxVStartupLines[k] =
+               mode_lib->vba.MaxVStartupLines[k] = (unsigned int)(
                                mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k]
                                                - dml_max(
                                                                1.0,
@@ -2068,11 +2066,11 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                                mode_lib->vba.WritebackDelay[mode_lib->vba.VoltageLevel][k]
                                                                                                / (mode_lib->vba.HTotal[k]
                                                                                                                / mode_lib->vba.PixelClock[k]),
-                                                                               1));
+                                                                               1)));
        }
 
        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k)
-               mode_lib->vba.MaximumMaxVStartupLines = dml_max(
+               mode_lib->vba.MaximumMaxVStartupLines = (unsigned int)dml_max(
                                mode_lib->vba.MaximumMaxVStartupLines,
                                mode_lib->vba.MaxVStartupLines[k]);
 
@@ -2129,8 +2127,8 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                        mode_lib->vba.DisplayPipeLineDeliveryTimeLuma[k], mode_lib->vba.DisplayPipeLineDeliveryTimeChroma[k],
                                        mode_lib->vba.DPPCLK[k], mode_lib->vba.DISPCLK, mode_lib->vba.PixelClock[k], mode_lib->vba.DSCDelay[k], mode_lib->vba.DPPPerPlane[k], mode_lib->vba.ScalerEnabled[k], mode_lib->vba.NumberOfCursors[k],
                                        mode_lib->vba.DPPCLKDelaySubtotal, mode_lib->vba.DPPCLKDelaySCL, mode_lib->vba.DPPCLKDelaySCLLBOnly, mode_lib->vba.DPPCLKDelayCNVCFormater, mode_lib->vba.DPPCLKDelayCNVCCursor, mode_lib->vba.DISPCLKDelaySubtotal,
-                                       mode_lib->vba.SwathWidthY[k] / mode_lib->vba.HRatio[k], mode_lib->vba.OutputFormat[k], mode_lib->vba.HTotal[k],
-                                       mode_lib->vba.SwathWidthSingleDPPY[k], mode_lib->vba.BytePerPixelDETY[k], mode_lib->vba.BytePerPixelDETC[k], mode_lib->vba.SwathHeightY[k], mode_lib->vba.SwathHeightC[k], mode_lib->vba.Interlace[k],
+                                       (unsigned int)(mode_lib->vba.SwathWidthY[k] / mode_lib->vba.HRatio[k]), mode_lib->vba.OutputFormat[k], mode_lib->vba.HTotal[k],
+                                       (unsigned int)mode_lib->vba.SwathWidthSingleDPPY[k], mode_lib->vba.BytePerPixelDETY[k], mode_lib->vba.BytePerPixelDETC[k], mode_lib->vba.SwathHeightY[k], mode_lib->vba.SwathHeightC[k], mode_lib->vba.Interlace[k],
                                        mode_lib->vba.ProgressiveToInterlaceUnitInOPP, &mode_lib->vba.DSTXAfterScaler[k], &mode_lib->vba.DSTYAfterScaler[k]);
 
                        mode_lib->vba.ErrorResult[k] =
@@ -2146,7 +2144,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                        - mode_lib->vba.VActive[k],
                                                        mode_lib->vba.HTotal[k],
                                                        mode_lib->vba.MaxInterDCNTileRepeaters,
-                                                       dml_min(
+                                                       (unsigned int)dml_min(
                                                                        mode_lib->vba.VStartupLines,
                                                                        mode_lib->vba.MaxVStartupLines[k]),
                                                        mode_lib->vba.GPUVMMaxPageTableLevels,
@@ -2158,11 +2156,11 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                        mode_lib->vba.UrgentLatencyPixelDataOnly,
                                                        mode_lib->vba.UrgentExtraLatency,
                                                        mode_lib->vba.TCalc,
-                                                       mode_lib->vba.PDEAndMetaPTEBytesFrame[k],
-                                                       mode_lib->vba.MetaRowByte[k],
-                                                       mode_lib->vba.PixelPTEBytesPerRow[k],
+                                                       (unsigned int)mode_lib->vba.PDEAndMetaPTEBytesFrame[k],
+                                                       (unsigned int)mode_lib->vba.MetaRowByte[k],
+                                                       (unsigned int)mode_lib->vba.PixelPTEBytesPerRow[k],
                                                        mode_lib->vba.PrefetchSourceLinesY[k],
-                                                       mode_lib->vba.SwathWidthY[k],
+                                                       (unsigned int)mode_lib->vba.SwathWidthY[k],
                                                        mode_lib->vba.BytePerPixelDETY[k],
                                                        mode_lib->vba.VInitPreFillY[k],
                                                        mode_lib->vba.MaxNumSwathY[k],
@@ -2192,7 +2190,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                        &mode_lib->vba.VReadyOffsetPix[k]);
 
                        if (mode_lib->vba.BlendingAndTiming[k] == k) {
-                               mode_lib->vba.VStartup[k] = dml_min(
+                               mode_lib->vba.VStartup[k] = (unsigned int)dml_min(
                                                mode_lib->vba.VStartupLines,
                                                mode_lib->vba.MaxVStartupLines[k]);
                                if (mode_lib->vba.VStartupRequiredWhenNotEnoughTimeForDynamicMetadata
@@ -2201,7 +2199,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                        mode_lib->vba.VStartupRequiredWhenNotEnoughTimeForDynamicMetadata;
                                }
                        } else {
-                               mode_lib->vba.VStartup[k] =
+                               mode_lib->vba.VStartup[k] = (unsigned int)
                                                dml_min(
                                                                mode_lib->vba.VStartupLines,
                                                                mode_lib->vba.MaxVStartupLines[mode_lib->vba.BlendingAndTiming[k]]);
@@ -2288,10 +2286,10 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                ImmediateFlipBytes[k] = 0;
                                if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
-                                       ImmediateFlipBytes[k] =
+                                       ImmediateFlipBytes[k] = (unsigned int)(
                                                        mode_lib->vba.PDEAndMetaPTEBytesFrame[k]
                                                                        + mode_lib->vba.MetaRowByte[k]
-                                                                       + mode_lib->vba.PixelPTEBytesPerRow[k];
+                                                                       + mode_lib->vba.PixelPTEBytesPerRow[k]);
                                }
                        }
                        mode_lib->vba.TotImmediateFlipBytes = 0;
@@ -2319,8 +2317,8 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                mode_lib->vba.VRatio[k],
                                                mode_lib->vba.Tno_bw[k],
                                                mode_lib->vba.PDEAndMetaPTEBytesFrame[k],
-                                               mode_lib->vba.MetaRowByte[k],
-                                               mode_lib->vba.PixelPTEBytesPerRow[k],
+                                               (unsigned int)mode_lib->vba.MetaRowByte[k],
+                                               (unsigned int)mode_lib->vba.PixelPTEBytesPerRow[k],
                                                mode_lib->vba.DCCEnable[k],
                                                mode_lib->vba.dpte_row_height[k],
                                                mode_lib->vba.meta_row_height[k],
@@ -2444,7 +2442,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                double MaxDETBufferingTimeY;
                double ActiveDRAMClockChangeLatencyMarginY;
 
-               mode_lib->vba.LBLatencyHidingSourceLinesY =
+               mode_lib->vba.LBLatencyHidingSourceLinesY = (unsigned int)(
                                dml_min(
                                                mode_lib->vba.MaxLineBufferLines,
                                                (unsigned int) dml_floor(
@@ -2454,9 +2452,9 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                                                / dml_max(
                                                                                                                mode_lib->vba.HRatio[k],
                                                                                                                1.0)),
-                                                               1)) - (mode_lib->vba.vtaps[k] - 1);
+                                                               1)) -(mode_lib->vba.vtaps[k] - 1));
 
-               mode_lib->vba.LBLatencyHidingSourceLinesC =
+               mode_lib->vba.LBLatencyHidingSourceLinesC = (unsigned int)(
                                dml_min(
                                                mode_lib->vba.MaxLineBufferLines,
                                                (unsigned int) dml_floor(
@@ -2469,7 +2467,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                                                                                                                / 2,
                                                                                                                1.0)),
                                                                1))
-                                               - (mode_lib->vba.VTAPsChroma[k] - 1);
+                               -(mode_lib->vba.VTAPsChroma[k] - 1));
 
                EffectiveLBLatencyHidingY = mode_lib->vba.LBLatencyHidingSourceLinesY
                                / mode_lib->vba.VRatio[k]
@@ -2631,7 +2629,7 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
                                && mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k]
                                                < SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank) {
                        SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank =
-                                       mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k];
+                                       (float)mode_lib->vba.ActiveDRAMClockChangeLatencyMargin[k];
                }
        }
 
@@ -2765,14 +2763,14 @@ static void dml20v2_DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndP
 
                for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
                        if (mode_lib->vba.BlendingAndTiming[k] == k) {
-                               unsigned int Margin = (mode_lib->vba.MaxVStartupLines[k] - mode_lib->vba.VStartup[k])
-                                               * mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k];
+                               unsigned int Margin = (unsigned int)((mode_lib->vba.MaxVStartupLines[k] - mode_lib->vba.VStartup[k])
+                                               * mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]);
 
                                if (FirstMainPlane) {
                                        VStartupMargin = Margin;
                                        FirstMainPlane = false;
                                } else
-                                       VStartupMargin = dml_min(VStartupMargin, Margin);
+                                       VStartupMargin = (unsigned int)dml_min(VStartupMargin, Margin);
                }
 
                if (mode_lib->vba.UseMaximumVStartup) {
@@ -2970,26 +2968,26 @@ static void dml20v2_DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
 
                if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
                                <= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
-                       mode_lib->vba.SwathHeightY[k] = MaximumSwathHeightY;
-                       mode_lib->vba.SwathHeightC[k] = MaximumSwathHeightC;
+                          mode_lib->vba.SwathHeightY[k] = (unsigned int)MaximumSwathHeightY;
+                          mode_lib->vba.SwathHeightC[k] = (unsigned int)MaximumSwathHeightC;
                } else {
-                       mode_lib->vba.SwathHeightY[k] = MinimumSwathHeightY;
-                       mode_lib->vba.SwathHeightC[k] = MinimumSwathHeightC;
+                          mode_lib->vba.SwathHeightY[k] = (unsigned int)MinimumSwathHeightY;
+                          mode_lib->vba.SwathHeightC[k] = (unsigned int)MinimumSwathHeightC;
                }
 
                if (mode_lib->vba.SwathHeightC[k] == 0) {
-                       mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0] * 1024;
-                       mode_lib->vba.DETBufferSizeC[k] = 0;
+                          mode_lib->vba.DETBufferSizeY[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0] * 1024);
+                          mode_lib->vba.DETBufferSizeC[k] = 0;
                } else if (mode_lib->vba.SwathHeightY[k] <= mode_lib->vba.SwathHeightC[k]) {
-                       mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 / 2;
-                       mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 / 2;
+                          mode_lib->vba.DETBufferSizeY[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 / 2);
+                          mode_lib->vba.DETBufferSizeC[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 / 2);
                } else {
-                       mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 * 2 / 3;
-                       mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
-                                       * 1024.0 / 3;
+                          mode_lib->vba.DETBufferSizeY[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 * 2 / 3);
+                          mode_lib->vba.DETBufferSizeC[k] = (unsigned int)(mode_lib->vba.DETBufferSizeInKByte[0]
+                                  * 1024.0 / 3);
                }
        }
 }
@@ -3309,9 +3307,9 @@ static unsigned int TruncToValidBPP(
                                        if (DecimalBPP < 6)
                                                return BPP_INVALID;
                                        else if (DecimalBPP >= 1.5 * DSCInputBitPerComponent - 1.0 / 16.0)
-                                               return 1.5 * DSCInputBitPerComponent - 1.0 / 16.0;
+                                               return (unsigned int)(1.5 * DSCInputBitPerComponent - 1.0 / 16.0);
                                        else
-                                               return dml_floor(16 * DecimalBPP, 1) / 16.0;
+                                               return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16.0);
                                } else {
                                        if (DecimalBPP < 6
                                                        || DesiredBPP < 6
@@ -3319,7 +3317,7 @@ static unsigned int TruncToValidBPP(
                                                        || DecimalBPP < DesiredBPP) {
                                                return BPP_INVALID;
                                        } else {
-                                               return DesiredBPP;
+                                               return (unsigned int)DesiredBPP;
                                        }
                                }
                        } else if (Format == dm_n422) {
@@ -3327,9 +3325,9 @@ static unsigned int TruncToValidBPP(
                                        if (DecimalBPP < 7)
                                                return BPP_INVALID;
                                        else if (DecimalBPP >= 2 * DSCInputBitPerComponent - 1.0 / 16.0)
-                                               return 2 * DSCInputBitPerComponent - 1.0 / 16.0;
+                                               return (unsigned int)(2 * DSCInputBitPerComponent - 1.0 / 16.0);
                                        else
-                                               return dml_floor(16 * DecimalBPP, 1) / 16.0;
+                                               return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16.0);
                                } else {
                                        if (DecimalBPP < 7
                                                        || DesiredBPP < 7
@@ -3337,7 +3335,7 @@ static unsigned int TruncToValidBPP(
                                                        || DecimalBPP < DesiredBPP) {
                                                return BPP_INVALID;
                                        } else {
-                                               return DesiredBPP;
+                                               return (unsigned int)DesiredBPP;
                                        }
                                }
                        } else {
@@ -3345,9 +3343,9 @@ static unsigned int TruncToValidBPP(
                                        if (DecimalBPP < 8)
                                                return BPP_INVALID;
                                        else if (DecimalBPP >= 3 * DSCInputBitPerComponent - 1.0 / 16.0)
-                                               return 3 * DSCInputBitPerComponent - 1.0 / 16.0;
+                                               return (unsigned int)(3 * DSCInputBitPerComponent - 1.0 / 16.0);
                                        else
-                                               return dml_floor(16 * DecimalBPP, 1) / 16.0;
+                                               return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16.0);
                                } else {
                                        if (DecimalBPP < 8
                                                        || DesiredBPP < 8
@@ -3355,7 +3353,7 @@ static unsigned int TruncToValidBPP(
                                                        || DecimalBPP < DesiredBPP) {
                                                return BPP_INVALID;
                                        } else {
-                                               return DesiredBPP;
+                                               return (unsigned int)DesiredBPP;
                                        }
                                }
                        }
@@ -3860,8 +3858,8 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                Calculate256BBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
-                               dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
+                               (unsigned int)dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
+                               (unsigned int)dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
                                &locals->Read256BlockHeightY[k],
                                &locals->Read256BlockHeightC[k],
                                &locals->Read256BlockWidthY[k],
@@ -4045,7 +4043,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                        locals->DISPCLK_DPPCLK_Support[i][j] = false;
                                }
                        }
-                       locals->TotalNumberOfActiveDPP[i][j] = 0.0;
+                       locals->TotalNumberOfActiveDPP[i][j] = (unsigned int)0.0;
                        for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++)
                                locals->TotalNumberOfActiveDPP[i][j] = locals->TotalNumberOfActiveDPP[i][j] + locals->NoOfDPP[i][j][k];
                        if (j == 1) {
@@ -4100,7 +4098,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                        || mode_lib->vba.PlaneRequiredDISPCLK > mode_lib->vba.MaxDispclkRoundedDownToDFSGranularity)
                                                locals->DISPCLK_DPPCLK_Support[i][j] = false;
                                }
-                               locals->TotalNumberOfActiveDPP[i][j] = 0.0;
+                               locals->TotalNumberOfActiveDPP[i][j] = (unsigned int)0.0;
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++)
                                        locals->TotalNumberOfActiveDPP[i][j] = locals->TotalNumberOfActiveDPP[i][j] + locals->NoOfDPP[i][j][k];
                        }
@@ -4361,17 +4359,17 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                        || locals->RequiresDSC[i][k] == false) {
                                mode_lib->vba.slices = 0;
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 3200.0) {
-                               mode_lib->vba.slices = dml_ceil(
+                               mode_lib->vba.slices = (unsigned int)dml_ceil(
                                                mode_lib->vba.PixelClockBackEnd[k] / 400.0,
                                                4.0);
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 1360.0) {
-                               mode_lib->vba.slices = 8.0;
+                               mode_lib->vba.slices = (unsigned int)8.0;
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 680.0) {
-                               mode_lib->vba.slices = 4.0;
+                               mode_lib->vba.slices = (unsigned int)4.0;
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 340.0) {
-                               mode_lib->vba.slices = 2.0;
+                               mode_lib->vba.slices = (unsigned int)2.0;
                        } else {
-                               mode_lib->vba.slices = 1.0;
+                               mode_lib->vba.slices = (unsigned int)1.0;
                        }
                        if (locals->OutputBppPerState[i][k] == BPP_BLENDED_PIPE
                                        || locals->OutputBppPerState[i][k] == BPP_INVALID) {
@@ -4385,7 +4383,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                        dscceComputeDelay(
                                                                        mode_lib->vba.DSCInputBitPerComponent[k],
                                                                        mode_lib->vba.bpp,
-                                                                       dml_ceil(
+                                                                       (unsigned int)dml_ceil(
                                                                                        mode_lib->vba.HActive[k]
                                                                                                        / mode_lib->vba.slices,
                                                                                        1.0),
@@ -4398,7 +4396,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                        2.0 * (dscceComputeDelay(
                                                                                        mode_lib->vba.DSCInputBitPerComponent[k],
                                                                                        mode_lib->vba.bpp,
-                                                                                       dml_ceil(mode_lib->vba.HActive[k] / mode_lib->vba.slices, 1.0),
+                                                                                       (unsigned int)dml_ceil(mode_lib->vba.HActive[k] / mode_lib->vba.slices, 1.0),
                                                                                        mode_lib->vba.slices / 2,
                                                                                        mode_lib->vba.OutputFormat[k])
                                                                        + dscComputeDelay(mode_lib->vba.OutputFormat[k]));
@@ -4424,9 +4422,9 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                for (j = 0; j < 2; j++) {
                        for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
                                if (locals->ODMCombineEnablePerState[i][k] == dm_odm_combine_mode_2to1)
-                                       locals->SwathWidthYPerState[i][j][k] = dml_min(locals->SwathWidthYSingleDPP[k], dml_round(locals->HActive[k] / 2 * locals->HRatio[k]));
+                                       locals->SwathWidthYPerState[i][j][k] = (unsigned int)dml_min(locals->SwathWidthYSingleDPP[k], dml_round(locals->HActive[k] / 2 * locals->HRatio[k]));
                                else
-                                       locals->SwathWidthYPerState[i][j][k] = locals->SwathWidthYSingleDPP[k] / locals->NoOfDPP[i][j][k];
+                                       locals->SwathWidthYPerState[i][j][k] = (unsigned int)locals->SwathWidthYSingleDPP[k] / locals->NoOfDPP[i][j][k];
                                locals->SwathWidthGranularityY = 256  / dml_ceil(locals->BytePerPixelInDETY[k], 1) / locals->MaxSwathHeightY[k];
                                locals->RoundedUpMaxSwathSizeBytesY = (dml_ceil(locals->SwathWidthYPerState[i][j][k] - 1, locals->SwathWidthGranularityY)
                                                + locals->SwathWidthGranularityY) * locals->BytePerPixelInDETY[k] * locals->MaxSwathHeightY[k];
@@ -4446,11 +4444,11 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                }
 
                                if (locals->RoundedUpMaxSwathSizeBytesY + locals->RoundedUpMaxSwathSizeBytesC <= locals->DETBufferSizeInKByte[0] * 1024.0 / 2) {
-                                       locals->SwathHeightYPerState[i][j][k] = locals->MaxSwathHeightY[k];
-                                       locals->SwathHeightCPerState[i][j][k] = locals->MaxSwathHeightC[k];
+                                       locals->SwathHeightYPerState[i][j][k] = (unsigned int)locals->MaxSwathHeightY[k];
+                                       locals->SwathHeightCPerState[i][j][k] = (unsigned int)locals->MaxSwathHeightC[k];
                                } else {
-                                       locals->SwathHeightYPerState[i][j][k] = locals->MinSwathHeightY[k];
-                                       locals->SwathHeightCPerState[i][j][k] = locals->MinSwathHeightC[k];
+                                       locals->SwathHeightYPerState[i][j][k] = (unsigned int)locals->MinSwathHeightY[k];
+                                       locals->SwathHeightCPerState[i][j][k] = (unsigned int)locals->MinSwathHeightC[k];
                                }
 
                                if (locals->BytePerPixelInDETC[k] == 0) {
@@ -4465,16 +4463,16 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                        locals->LinesInDETChroma = locals->DETBufferSizeInKByte[0] * 1024 / 3 / locals->BytePerPixelInDETY[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
                                }
 
-                               locals->EffectiveLBLatencyHidingSourceLinesLuma = dml_min(locals->MaxLineBufferLines,
+                               locals->EffectiveLBLatencyHidingSourceLinesLuma = (unsigned int)dml_min(locals->MaxLineBufferLines,
                                        dml_floor(locals->LineBufferSize / locals->LBBitPerPixel[k] / (locals->SwathWidthYPerState[i][j][k]
                                        / dml_max(locals->HRatio[k], 1)), 1)) - (locals->vtaps[k] - 1);
 
-                               locals->EffectiveLBLatencyHidingSourceLinesChroma =  dml_min(locals->MaxLineBufferLines,
+                               locals->EffectiveLBLatencyHidingSourceLinesChroma =  (unsigned int)dml_min(locals->MaxLineBufferLines,
                                                dml_floor(locals->LineBufferSize / locals->LBBitPerPixel[k]
                                                / (locals->SwathWidthYPerState[i][j][k] / 2
                                                / dml_max(locals->HRatio[k] / 2, 1)), 1)) - (locals->VTAPsChroma[k] - 1);
 
-                               locals->EffectiveDETLBLinesLuma = dml_floor(locals->LinesInDETLuma +  dml_min(
+                               locals->EffectiveDETLBLinesLuma = (unsigned int)dml_floor(locals->LinesInDETLuma +  dml_min(
                                                locals->LinesInDETLuma * locals->RequiredDISPCLK[i][j] * locals->BytePerPixelInDETY[k] *
                                                locals->PSCL_FACTOR[k] / locals->ReturnBWPerState[i][0],
                                                locals->EffectiveLBLatencyHidingSourceLinesLuma),
@@ -4630,7 +4628,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                mode_lib->vba.Read256BlockWidthY[k],
                                                mode_lib->vba.SourcePixelFormat[k],
                                                mode_lib->vba.SurfaceTiling[k],
-                                               dml_ceil(mode_lib->vba.BytePerPixelInDETY[k], 1.0),
+                                               (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelInDETY[k], 1.0),
                                                mode_lib->vba.SourceScan[k],
                                                mode_lib->vba.ViewportWidth[k],
                                                mode_lib->vba.ViewportHeight[k],
@@ -4669,17 +4667,17 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                        mode_lib->vba.Read256BlockWidthY[k],
                                                        mode_lib->vba.SourcePixelFormat[k],
                                                        mode_lib->vba.SurfaceTiling[k],
-                                                       dml_ceil(mode_lib->vba.BytePerPixelInDETC[k], 2.0),
+                                                       (unsigned int)dml_ceil(mode_lib->vba.BytePerPixelInDETC[k], 2.0),
                                                        mode_lib->vba.SourceScan[k],
-                                                       mode_lib->vba.ViewportWidth[k] / 2.0,
-                                                       mode_lib->vba.ViewportHeight[k] / 2.0,
-                                                       mode_lib->vba.SwathWidthYPerState[i][j][k] / 2.0,
+                                                       (unsigned int)(mode_lib->vba.ViewportWidth[k] / 2.0),
+                                                       (unsigned int)(mode_lib->vba.ViewportHeight[k] / 2.0),
+                                                       (unsigned int)(mode_lib->vba.SwathWidthYPerState[i][j][k] / 2.0),
                                                        mode_lib->vba.GPUVMEnable,
                                                        mode_lib->vba.VMMPageSize,
                                                        mode_lib->vba.PTEBufferSizeInRequestsLuma,
                                                        mode_lib->vba.PDEProcessingBufIn64KBReqs,
                                                        mode_lib->vba.PitchC[k],
-                                                       0.0,
+                                                       (unsigned int)0.0,
                                                        &mode_lib->vba.MacroTileWidthC[k],
                                                        &mode_lib->vba.MetaRowBytesC,
                                                        &mode_lib->vba.DPTEBytesPerRowC,
@@ -4698,8 +4696,8 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                        &mode_lib->vba.MaxNumSwC[k]);
                                } else {
                                        mode_lib->vba.PDEAndMetaPTEBytesPerFrameC = 0.0;
-                                       mode_lib->vba.MetaRowBytesC = 0.0;
-                                       mode_lib->vba.DPTEBytesPerRowC = 0.0;
+                                       mode_lib->vba.MetaRowBytesC = (unsigned int)0.0;
+                                       mode_lib->vba.DPTEBytesPerRowC = (unsigned int)0.0;
                                        locals->PrefetchLinesC[0][0][k] = 0.0;
                                        locals->PTEBufferSizeNotExceededC[i][j][k] = true;
                                        locals->PTEBufferSizeInRequestsForLuma = mode_lib->vba.PTEBufferSizeInRequestsLuma + mode_lib->vba.PTEBufferSizeInRequestsChroma;
@@ -4755,7 +4753,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                                                mode_lib->vba.WritebackLumaVTaps[k],
                                                                                mode_lib->vba.WritebackChromaHTaps[k],
                                                                                mode_lib->vba.WritebackChromaVTaps[k],
-                                                                               mode_lib->vba.WritebackDestinationWidth[k]) / locals->RequiredDISPCLK[i][j];
+                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[k]) / locals->RequiredDISPCLK[i][j];
                                        } else {
                                                locals->WritebackDelay[i][k] = 0.0;
                                        }
@@ -4772,7 +4770,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                                                                        mode_lib->vba.WritebackLumaVTaps[m],
                                                                                                        mode_lib->vba.WritebackChromaHTaps[m],
                                                                                                        mode_lib->vba.WritebackChromaVTaps[m],
-                                                                                                       mode_lib->vba.WritebackDestinationWidth[m]) / locals->RequiredDISPCLK[i][j]);
+                                                                                                       (unsigned int)mode_lib->vba.WritebackDestinationWidth[m]) / locals->RequiredDISPCLK[i][j]);
                                                }
                                        }
                                }
@@ -4833,10 +4831,10 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
 
                                        CalculateDelayAfterScaler(mode_lib, mode_lib->vba.ReturnBWPerState[i][0], mode_lib->vba.ReadBandwidthLuma[k], mode_lib->vba.ReadBandwidthChroma[k], mode_lib->vba.MaxTotalVActiveRDBandwidth,
                                                mode_lib->vba.DisplayPipeLineDeliveryTimeLuma[k], mode_lib->vba.DisplayPipeLineDeliveryTimeChroma[k],
-                                               mode_lib->vba.RequiredDPPCLK[i][j][k], mode_lib->vba.RequiredDISPCLK[i][j], mode_lib->vba.PixelClock[k], mode_lib->vba.DSCDelayPerState[i][k], mode_lib->vba.NoOfDPP[i][j][k], mode_lib->vba.ScalerEnabled[k], mode_lib->vba.NumberOfCursors[k],
+                                               (unsigned int)mode_lib->vba.RequiredDPPCLK[i][j][k], (unsigned int)mode_lib->vba.RequiredDISPCLK[i][j], mode_lib->vba.PixelClock[k], (unsigned int)mode_lib->vba.DSCDelayPerState[i][k], mode_lib->vba.NoOfDPP[i][j][k], mode_lib->vba.ScalerEnabled[k], mode_lib->vba.NumberOfCursors[k],
                                                mode_lib->vba.DPPCLKDelaySubtotal, mode_lib->vba.DPPCLKDelaySCL, mode_lib->vba.DPPCLKDelaySCLLBOnly, mode_lib->vba.DPPCLKDelayCNVCFormater, mode_lib->vba.DPPCLKDelayCNVCCursor, mode_lib->vba.DISPCLKDelaySubtotal,
-                                               mode_lib->vba.SwathWidthYPerState[i][j][k] / mode_lib->vba.HRatio[k], mode_lib->vba.OutputFormat[k], mode_lib->vba.HTotal[k],
-                                               mode_lib->vba.SwathWidthYSingleDPP[k], mode_lib->vba.BytePerPixelInDETY[k], mode_lib->vba.BytePerPixelInDETC[k], mode_lib->vba.SwathHeightYThisState[k], mode_lib->vba.SwathHeightCThisState[k], mode_lib->vba.Interlace[k], mode_lib->vba.ProgressiveToInterlaceUnitInOPP,
+                                               (unsigned int)(mode_lib->vba.SwathWidthYPerState[i][j][k] / mode_lib->vba.HRatio[k]), mode_lib->vba.OutputFormat[k], mode_lib->vba.HTotal[k],
+                                               (unsigned int)mode_lib->vba.SwathWidthYSingleDPP[k], mode_lib->vba.BytePerPixelInDETY[k], mode_lib->vba.BytePerPixelInDETC[k], mode_lib->vba.SwathHeightYThisState[k], mode_lib->vba.SwathHeightCThisState[k], mode_lib->vba.Interlace[k], mode_lib->vba.ProgressiveToInterlaceUnitInOPP,
                                                &mode_lib->vba.DSTXAfterScaler[k], &mode_lib->vba.DSTYAfterScaler[k]);
 
                                        mode_lib->vba.IsErrorResult[i][j][k] =
@@ -4852,7 +4850,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                                                        - mode_lib->vba.VActive[k],
                                                                        mode_lib->vba.HTotal[k],
                                                                        mode_lib->vba.MaxInterDCNTileRepeaters,
-                                                                       mode_lib->vba.MaximumVStartup[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.MaximumVStartup[0][0][k],
                                                                        mode_lib->vba.GPUVMMaxPageTableLevels,
                                                                        mode_lib->vba.GPUVMEnable,
                                                                        mode_lib->vba.DynamicMetadataEnable[k],
@@ -4862,9 +4860,9 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                                        mode_lib->vba.UrgentLatencyPixelDataOnly,
                                                                        mode_lib->vba.ExtraLatency,
                                                                        mode_lib->vba.TimeCalc,
-                                                                       mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k],
-                                                                       mode_lib->vba.MetaRowBytes[0][0][k],
-                                                                       mode_lib->vba.DPTEBytesPerRow[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.MetaRowBytes[0][0][k],
+                                                                       (unsigned int)mode_lib->vba.DPTEBytesPerRow[0][0][k],
                                                                        mode_lib->vba.PrefetchLinesY[0][0][k],
                                                                        mode_lib->vba.SwathWidthYPerState[i][j][k],
                                                                        mode_lib->vba.BytePerPixelInDETY[k],
@@ -4972,16 +4970,16 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                                                        mode_lib->vba.PrefetchBW[k]);
                                }
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
-                                       mode_lib->vba.ImmediateFlipBytes[k] = 0.0;
+                                       mode_lib->vba.ImmediateFlipBytes[k] = (unsigned int)0.0;
                                        if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                        && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
-                                               mode_lib->vba.ImmediateFlipBytes[k] =
+                                               mode_lib->vba.ImmediateFlipBytes[k] = (unsigned int)(
                                                                mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k]
                                                                                + mode_lib->vba.MetaRowBytes[0][0][k]
-                                                                               + mode_lib->vba.DPTEBytesPerRow[0][0][k];
+                                                                               + mode_lib->vba.DPTEBytesPerRow[0][0][k]);
                                        }
                                }
-                               mode_lib->vba.TotImmediateFlipBytes = 0.0;
+                                  mode_lib->vba.TotImmediateFlipBytes = 0;
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
                                        if ((mode_lib->vba.SourcePixelFormat[k] != dm_420_8
                                                        && mode_lib->vba.SourcePixelFormat[k] != dm_420_10)) {
@@ -5007,8 +5005,8 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
                                                        mode_lib->vba.VRatio[k],
                                                        mode_lib->vba.Tno_bw[k],
                                                        mode_lib->vba.PDEAndMetaPTEBytesPerFrame[0][0][k],
-                                                       mode_lib->vba.MetaRowBytes[0][0][k],
-                                                       mode_lib->vba.DPTEBytesPerRow[0][0][k],
+                                                       (unsigned int)mode_lib->vba.MetaRowBytes[0][0][k],
+                                                       (unsigned int)mode_lib->vba.DPTEBytesPerRow[0][0][k],
                                                        mode_lib->vba.DCCEnable[k],
                                                        mode_lib->vba.dpte_row_height[k],
                                                        mode_lib->vba.meta_row_height[k],
index 591d9618bdc0bf4d1546fa33908f6af4897b544e..59edfcf27d91d77a87b07b9f6c8b37912e9a36e9 100644 (file)
@@ -196,13 +196,13 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib,
 
        extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_l), &rq_param->sizing.rq_l);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height),
-                       1) - 3;
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height),
+                       1) - 3);
 
        if (rq_param->yuv420) {
                extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_c), &rq_param->sizing.rq_c);
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height),
-                               1) - 3;
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height),
+                               1) - 3);
        }
 
        rq_regs->rq_regs_l.swath_height = dml_log2(rq_param->dlg.rq_l.swath_height);
@@ -222,11 +222,11 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib,
        if (rq_param->yuv420) {
                if ((double) rq_param->misc.rq_l.stored_swath_bytes
                                / (double) rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple((unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0),
-                                       256,
-                                       0) / 64.0; // 2/3 to chroma
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple((unsigned int)((2.0 * detile_buf_size_in_bytes) / 3.0),
+                                         256,
+                                         0) / 64.0); // 2/3 to chroma
                }
        }
        rq_regs->plane1_base_address = detile_buf_plane1_addr;
@@ -451,8 +451,8 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
        // "/2" is like square root
        // blk is vertical biased
        if (tiling != dm_sw_linear)
-               log2_blk_height = log2_blk256_height
-                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+               log2_blk_height = (unsigned int)(log2_blk256_height
+                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1));
        else
                log2_blk_height = 0;  // blk height of 1
 
@@ -601,7 +601,7 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
        if (surf_linear) {
                unsigned int dpte_row_height;
 
-               log2_dpte_row_height_linear = dml_floor(dml_log2(dml_min(64 * 1024 * pde_buf_entries
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(dml_log2(dml_min(64 * 1024 * pde_buf_entries
                                                                                / bytes_per_element,
                                                                dpte_buf_in_pte_reqs
                                                                                * dpte_req_width)
@@ -671,7 +671,7 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
 
        // since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
        // the upper bound for the dpte groups per row is as follows.
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil((double) dpte_row_width_ub / dpte_group_width,
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil((double) dpte_row_width_ub / dpte_group_width,
                        1);
 }
 
@@ -1018,11 +1018,11 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        if (dout->dsc_enable) {
                double dsc_delay = get_dsc_delay(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
-               dispclk_delay_subtotal += dsc_delay;
+               dispclk_delay_subtotal += (unsigned int)dsc_delay;
        }
 
-       pixel_rate_delay_subtotal = dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
-                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz;
+       pixel_rate_delay_subtotal = (unsigned int)(dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
+                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz);
 
        vstartup_start = dst->vstartup_start;
        if (interlaced) {
@@ -1043,7 +1043,7 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
 
        // TODO: Where is this coming from?
        if (interlaced)
-               vstartup_start = vstartup_start / 2;
+               vstartup_start = (unsigned int)(vstartup_start / 2);
 
        // TODO: What if this min_vblank doesn't match the value in the dml_config_settings.cpp?
        if (vstartup_start >= min_vblank) {
@@ -1062,8 +1062,8 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                                min_vblank);
        }
 
-       dst_x_after_scaler = get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
-       dst_y_after_scaler = get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_x_after_scaler = (unsigned int)get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_y_after_scaler = (unsigned int)get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
        dml_print("DML_DLG: %s: htotal                                 = %d\n", __func__, htotal);
        dml_print("DML_DLG: %s: pixel_rate_delay_subtotal              = %d\n",
@@ -1376,57 +1376,57 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
 
        // Assignment to register structures
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq; // in terms of refclk
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq); // in terms of refclk
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int) dml_pow(2, 13));
-       disp_dlg_regs->dst_y_prefetch = (unsigned int) (dst_y_prefetch * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int) (dst_y_per_vm_vblank * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_row_vblank = (unsigned int) (dst_y_per_row_vblank * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_vm_flip = (unsigned int) (dst_y_per_vm_flip * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_row_flip = (unsigned int) (dst_y_per_row_flip * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_prefetch = (unsigned int)(dst_y_prefetch * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int)(dst_y_per_vm_vblank * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_row_vblank = (unsigned int)(dst_y_per_row_vblank * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_vm_flip = (unsigned int)(dst_y_per_vm_flip * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_row_flip = (unsigned int)(dst_y_per_row_flip * dml_pow(2, 2));
 
-       disp_dlg_regs->vratio_prefetch = (unsigned int) (vratio_pre_l * dml_pow(2, 19));
-       disp_dlg_regs->vratio_prefetch_c = (unsigned int) (vratio_pre_c * dml_pow(2, 19));
+       disp_dlg_regs->vratio_prefetch = (unsigned int)(vratio_pre_l * dml_pow(2, 19));
+       disp_dlg_regs->vratio_prefetch_c = (unsigned int)(vratio_pre_c * dml_pow(2, 19));
 
        disp_dlg_regs->refcyc_per_pte_group_vblank_l =
-                       (unsigned int) (dst_y_per_row_vblank * (double) htotal
-                                       * ref_freq_to_pix_freq / (double) dpte_groups_per_row_ub_l);
+                         (unsigned int)(dst_y_per_row_vblank * (double) htotal
+                                           * ref_freq_to_pix_freq / (double) dpte_groups_per_row_ub_l);
        ASSERT(disp_dlg_regs->refcyc_per_pte_group_vblank_l < (unsigned int) dml_pow(2, 13));
 
        if (dual_plane) {
-               disp_dlg_regs->refcyc_per_pte_group_vblank_c = (unsigned int) (dst_y_per_row_vblank
-                               * (double) htotal * ref_freq_to_pix_freq
-                               / (double) dpte_groups_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_pte_group_vblank_c = (unsigned int)(dst_y_per_row_vblank
+                                                          * (double) htotal * ref_freq_to_pix_freq
+                                                          / (double) dpte_groups_per_row_ub_c);
                ASSERT(disp_dlg_regs->refcyc_per_pte_group_vblank_c
                                                < (unsigned int) dml_pow(2, 13));
        }
 
        disp_dlg_regs->refcyc_per_meta_chunk_vblank_l =
-                       (unsigned int) (dst_y_per_row_vblank * (double) htotal
-                                       * ref_freq_to_pix_freq / (double) meta_chunks_per_row_ub_l);
+                         (unsigned int)(dst_y_per_row_vblank * (double) htotal
+                                           * ref_freq_to_pix_freq / (double) meta_chunks_per_row_ub_l);
        ASSERT(disp_dlg_regs->refcyc_per_meta_chunk_vblank_l < (unsigned int) dml_pow(2, 13));
 
        disp_dlg_regs->refcyc_per_meta_chunk_vblank_c =
                        disp_dlg_regs->refcyc_per_meta_chunk_vblank_l; // dcc for 4:2:0 is not supported in dcn1.0.  assigned to be the same as _l for now
 
-       disp_dlg_regs->refcyc_per_pte_group_flip_l = (unsigned int) (dst_y_per_row_flip * htotal
-                       * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_l;
-       disp_dlg_regs->refcyc_per_meta_chunk_flip_l = (unsigned int) (dst_y_per_row_flip * htotal
-                       * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_l;
+       disp_dlg_regs->refcyc_per_pte_group_flip_l = (unsigned int)((dst_y_per_row_flip * htotal
+                         * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_l);
+       disp_dlg_regs->refcyc_per_meta_chunk_flip_l = (unsigned int)((dst_y_per_row_flip * htotal
+                         * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_l);
 
        if (dual_plane) {
-               disp_dlg_regs->refcyc_per_pte_group_flip_c = (unsigned int) (dst_y_per_row_flip
-                               * htotal * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_c;
-               disp_dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int) (dst_y_per_row_flip
-                               * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c;
+                          disp_dlg_regs->refcyc_per_pte_group_flip_c = (unsigned int)((dst_y_per_row_flip
+                                                          * htotal * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int)((dst_y_per_row_flip
+                                                          * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c);
        }
 
-       disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int) ((double) dpte_row_height_l
-                       / (double) vratio_l * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int)(((double) dpte_row_height_l
+                         / (double) vratio_l * dml_pow(2, 2)));
        ASSERT(disp_dlg_regs->dst_y_per_pte_row_nom_l < (unsigned int) dml_pow(2, 17));
 
        if (dual_plane) {
-               disp_dlg_regs->dst_y_per_pte_row_nom_c = (unsigned int) ((double) dpte_row_height_c
-                               / (double) vratio_c * dml_pow(2, 2));
+                          disp_dlg_regs->dst_y_per_pte_row_nom_c = (unsigned int)(((double) dpte_row_height_c
+                                                          / (double) vratio_c * dml_pow(2, 2)));
                if (disp_dlg_regs->dst_y_per_pte_row_nom_c >= (unsigned int) dml_pow(2, 17)) {
                        dml_print("DML_DLG: %s: Warning dst_y_per_pte_row_nom_c %u larger than supported by register format U15.2 %u\n",
                                        __func__,
@@ -1435,38 +1435,38 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                }
        }
 
-       disp_dlg_regs->dst_y_per_meta_row_nom_l = (unsigned int) ((double) meta_row_height_l
-                       / (double) vratio_l * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_meta_row_nom_l = (unsigned int)(((double) meta_row_height_l
+                         / (double) vratio_l * dml_pow(2, 2)));
        ASSERT(disp_dlg_regs->dst_y_per_meta_row_nom_l < (unsigned int) dml_pow(2, 17));
 
        disp_dlg_regs->dst_y_per_meta_row_nom_c = disp_dlg_regs->dst_y_per_meta_row_nom_l; // TODO: dcc for 4:2:0 is not supported in dcn1.0.  assigned to be the same as _l for now
 
-       disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int) ((double) dpte_row_height_l
-                       / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
-                       / (double) dpte_groups_per_row_ub_l);
+       disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(((double) dpte_row_height_l
+                         / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
+                         / (double) dpte_groups_per_row_ub_l));
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
-       disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int) ((double) meta_row_height_l
-                       / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
-                       / (double) meta_chunks_per_row_ub_l);
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
+       disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(((double) meta_row_height_l
+                         / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
+                         / (double) meta_chunks_per_row_ub_l));
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dual_plane) {
-               disp_dlg_regs->refcyc_per_pte_group_nom_c =
-                               (unsigned int) ((double) dpte_row_height_c / (double) vratio_c
-                                               * (double) htotal * ref_freq_to_pix_freq
-                                               / (double) dpte_groups_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_pte_group_nom_c =
+                                                          (unsigned int)(((double) dpte_row_height_c / (double) vratio_c
+                                                                                          * (double) htotal * ref_freq_to_pix_freq
+                                                                                          / (double) dpte_groups_per_row_ub_c));
                if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                               disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
 
                // TODO: Is this the right calculation? Does htotal need to be halved?
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_c =
-                               (unsigned int) ((double) meta_row_height_c / (double) vratio_c
-                                               * (double) htotal * ref_freq_to_pix_freq
-                                               / (double) meta_chunks_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_meta_chunk_nom_c =
+                                                          (unsigned int)(((double) meta_row_height_c / (double) vratio_c
+                                                                                          * (double) htotal * ref_freq_to_pix_freq
+                                                                                          / (double) meta_chunks_per_row_ub_c));
                if (disp_dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                               disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
 
        disp_dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int) dml_floor(refcyc_per_line_delivery_pre_l,
@@ -1490,22 +1490,22 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
 
        disp_dlg_regs->dst_y_delta_drq_limit = 0x7fff; // off
 
-       disp_ttu_regs->refcyc_per_req_delivery_pre_l = (unsigned int) (refcyc_per_req_delivery_pre_l
-                       * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_l = (unsigned int) (refcyc_per_req_delivery_l
-                       * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_pre_c = (unsigned int) (refcyc_per_req_delivery_pre_c
-                       * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_c = (unsigned int) (refcyc_per_req_delivery_c
-                       * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_pre_l = (unsigned int)(refcyc_per_req_delivery_pre_l
+                         * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_l = (unsigned int)(refcyc_per_req_delivery_l
+                         * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_pre_c = (unsigned int)(refcyc_per_req_delivery_pre_c
+                         * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_c = (unsigned int)(refcyc_per_req_delivery_c
+                         * dml_pow(2, 10));
        disp_ttu_regs->refcyc_per_req_delivery_pre_cur0 =
-                       (unsigned int) (refcyc_per_req_delivery_pre_cur0 * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_cur0 = (unsigned int) (refcyc_per_req_delivery_cur0
-                       * dml_pow(2, 10));
+                         (unsigned int)(refcyc_per_req_delivery_pre_cur0 * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_cur0 = (unsigned int)(refcyc_per_req_delivery_cur0
+                         * dml_pow(2, 10));
        disp_ttu_regs->refcyc_per_req_delivery_pre_cur1 =
-                       (unsigned int) (refcyc_per_req_delivery_pre_cur1 * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_cur1 = (unsigned int) (refcyc_per_req_delivery_cur1
-                       * dml_pow(2, 10));
+                         (unsigned int)(refcyc_per_req_delivery_pre_cur1 * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_cur1 = (unsigned int)(refcyc_per_req_delivery_cur1
+                         * dml_pow(2, 10));
        disp_ttu_regs->qos_level_low_wm = 0;
        ASSERT(disp_ttu_regs->qos_level_low_wm < dml_pow(2, 14));
        disp_ttu_regs->qos_level_high_wm = (unsigned int) (4.0 * (double) htotal
@@ -1520,7 +1520,7 @@ static void dml20_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
@@ -1557,7 +1557,7 @@ void dml20_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        dlg_sys_param.total_flip_bw = get_total_immediate_flip_bw(mode_lib,
                        e2e_pipe_param,
                        num_pipes);
-       dlg_sys_param.total_flip_bytes = get_total_immediate_flip_bytes(mode_lib,
+       dlg_sys_param.total_flip_bytes = (unsigned int)get_total_immediate_flip_bytes(mode_lib,
                        e2e_pipe_param,
                        num_pipes);
 
@@ -1620,7 +1620,7 @@ static void calculate_ttu_cursor(struct display_mode_lib *mode_lib,
                                cur_req_size = 256;
                }
 
-               cur_req_width = (double) cur_req_size / ((double) cur_bit_per_pixel / 8.0);
+               cur_req_width = (unsigned int)((double) cur_req_size / ((double) cur_bit_per_pixel / 8.0));
                cur_width_ub = dml_ceil((double) cur_src_width / (double) cur_req_width, 1)
                                * (double) cur_req_width;
                cur_req_per_width = cur_width_ub / (double) cur_req_width;
index d4dddc9d535a21caab93b4b69e918154c232fe49..1d2e477da03226da9b99d052fae306ba8d6d9f80 100644 (file)
@@ -196,13 +196,13 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib,
 
        extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_l), &rq_param->sizing.rq_l);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height),
-                       1) - 3;
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height),
+                       1) - 3);
 
        if (rq_param->yuv420) {
                extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_c), &rq_param->sizing.rq_c);
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height),
-                               1) - 3;
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height),
+                               1) - 3);
        }
 
        rq_regs->rq_regs_l.swath_height = dml_log2(rq_param->dlg.rq_l.swath_height);
@@ -222,11 +222,11 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib,
        if (rq_param->yuv420) {
                if ((double) rq_param->misc.rq_l.stored_swath_bytes
                                / (double) rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple((unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0),
-                                       256,
-                                       0) / 64.0; // 2/3 to chroma
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple((unsigned int)((2.0 * detile_buf_size_in_bytes) / 3.0),
+                                         256,
+                                         0) / 64.0); // 2/3 to chroma
                }
        }
        rq_regs->plane1_base_address = detile_buf_plane1_addr;
@@ -451,8 +451,8 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
        // "/2" is like square root
        // blk is vertical biased
        if (tiling != dm_sw_linear)
-               log2_blk_height = log2_blk256_height
-                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+               log2_blk_height = (unsigned int)(log2_blk256_height
+                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1));
        else
                log2_blk_height = 0;  // blk height of 1
 
@@ -601,7 +601,7 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
        if (surf_linear) {
                unsigned int dpte_row_height;
 
-               log2_dpte_row_height_linear = dml_floor(dml_log2(dml_min(64 * 1024 * pde_buf_entries
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(dml_log2(dml_min(64 * 1024 * pde_buf_entries
                                                                                / bytes_per_element,
                                                                dpte_buf_in_pte_reqs
                                                                                * dpte_req_width)
@@ -671,7 +671,7 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
 
        // since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
        // the upper bound for the dpte groups per row is as follows.
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil((double) dpte_row_width_ub / dpte_group_width,
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil((double) dpte_row_width_ub / dpte_group_width,
                        1);
 }
 
@@ -1019,11 +1019,11 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        if (dout->dsc_enable) {
                double dsc_delay = get_dsc_delay(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
-               dispclk_delay_subtotal += dsc_delay;
+               dispclk_delay_subtotal += (unsigned int)dsc_delay;
        }
 
-       pixel_rate_delay_subtotal = dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
-                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz;
+       pixel_rate_delay_subtotal = (unsigned int)(dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
+                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz);
 
        vstartup_start = dst->vstartup_start;
        if (interlaced) {
@@ -1044,7 +1044,7 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
 
        // TODO: Where is this coming from?
        if (interlaced)
-               vstartup_start = vstartup_start / 2;
+               vstartup_start = (unsigned int)(vstartup_start / 2);
 
        // TODO: What if this min_vblank doesn't match the value in the dml_config_settings.cpp?
        if (vstartup_start >= min_vblank) {
@@ -1063,8 +1063,8 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                                min_vblank);
        }
 
-       dst_x_after_scaler = get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
-       dst_y_after_scaler = get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_x_after_scaler = (unsigned int)get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_y_after_scaler = (unsigned int)get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
        dml_print("DML_DLG: %s: htotal                                 = %d\n", __func__, htotal);
        dml_print("DML_DLG: %s: pixel_rate_delay_subtotal              = %d\n",
@@ -1377,57 +1377,57 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
 
        // Assignment to register structures
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq; // in terms of refclk
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq); // in terms of refclk
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int) dml_pow(2, 13));
-       disp_dlg_regs->dst_y_prefetch = (unsigned int) (dst_y_prefetch * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int) (dst_y_per_vm_vblank * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_row_vblank = (unsigned int) (dst_y_per_row_vblank * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_vm_flip = (unsigned int) (dst_y_per_vm_flip * dml_pow(2, 2));
-       disp_dlg_regs->dst_y_per_row_flip = (unsigned int) (dst_y_per_row_flip * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_prefetch = (unsigned int)(dst_y_prefetch * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int)(dst_y_per_vm_vblank * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_row_vblank = (unsigned int)(dst_y_per_row_vblank * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_vm_flip = (unsigned int)(dst_y_per_vm_flip * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_row_flip = (unsigned int)(dst_y_per_row_flip * dml_pow(2, 2));
 
-       disp_dlg_regs->vratio_prefetch = (unsigned int) (vratio_pre_l * dml_pow(2, 19));
-       disp_dlg_regs->vratio_prefetch_c = (unsigned int) (vratio_pre_c * dml_pow(2, 19));
+       disp_dlg_regs->vratio_prefetch = (unsigned int)(vratio_pre_l * dml_pow(2, 19));
+       disp_dlg_regs->vratio_prefetch_c = (unsigned int)(vratio_pre_c * dml_pow(2, 19));
 
        disp_dlg_regs->refcyc_per_pte_group_vblank_l =
-                       (unsigned int) (dst_y_per_row_vblank * (double) htotal
-                                       * ref_freq_to_pix_freq / (double) dpte_groups_per_row_ub_l);
+                         (unsigned int)(dst_y_per_row_vblank * (double) htotal
+                                           * ref_freq_to_pix_freq / (double) dpte_groups_per_row_ub_l);
        ASSERT(disp_dlg_regs->refcyc_per_pte_group_vblank_l < (unsigned int) dml_pow(2, 13));
 
        if (dual_plane) {
-               disp_dlg_regs->refcyc_per_pte_group_vblank_c = (unsigned int) (dst_y_per_row_vblank
-                               * (double) htotal * ref_freq_to_pix_freq
-                               / (double) dpte_groups_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_pte_group_vblank_c = (unsigned int)(dst_y_per_row_vblank
+                                                          * (double) htotal * ref_freq_to_pix_freq
+                                                          / (double) dpte_groups_per_row_ub_c);
                ASSERT(disp_dlg_regs->refcyc_per_pte_group_vblank_c
                                                < (unsigned int) dml_pow(2, 13));
        }
 
        disp_dlg_regs->refcyc_per_meta_chunk_vblank_l =
-                       (unsigned int) (dst_y_per_row_vblank * (double) htotal
-                                       * ref_freq_to_pix_freq / (double) meta_chunks_per_row_ub_l);
+                         (unsigned int)(dst_y_per_row_vblank * (double) htotal
+                                           * ref_freq_to_pix_freq / (double) meta_chunks_per_row_ub_l);
        ASSERT(disp_dlg_regs->refcyc_per_meta_chunk_vblank_l < (unsigned int) dml_pow(2, 13));
 
        disp_dlg_regs->refcyc_per_meta_chunk_vblank_c =
                        disp_dlg_regs->refcyc_per_meta_chunk_vblank_l; // dcc for 4:2:0 is not supported in dcn1.0.  assigned to be the same as _l for now
 
-       disp_dlg_regs->refcyc_per_pte_group_flip_l = (unsigned int) (dst_y_per_row_flip * htotal
-                       * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_l;
-       disp_dlg_regs->refcyc_per_meta_chunk_flip_l = (unsigned int) (dst_y_per_row_flip * htotal
-                       * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_l;
+       disp_dlg_regs->refcyc_per_pte_group_flip_l = (unsigned int)((dst_y_per_row_flip * htotal
+                         * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_l);
+       disp_dlg_regs->refcyc_per_meta_chunk_flip_l = (unsigned int)((dst_y_per_row_flip * htotal
+                         * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_l);
 
        if (dual_plane) {
-               disp_dlg_regs->refcyc_per_pte_group_flip_c = (unsigned int) (dst_y_per_row_flip
-                               * htotal * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_c;
-               disp_dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int) (dst_y_per_row_flip
-                               * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c;
+                          disp_dlg_regs->refcyc_per_pte_group_flip_c = (unsigned int)((dst_y_per_row_flip
+                                                          * htotal * ref_freq_to_pix_freq) / dpte_groups_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int)((dst_y_per_row_flip
+                                                          * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c);
        }
 
-       disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int) ((double) dpte_row_height_l
-                       / (double) vratio_l * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int)(((double) dpte_row_height_l
+                         / (double) vratio_l * dml_pow(2, 2)));
        ASSERT(disp_dlg_regs->dst_y_per_pte_row_nom_l < (unsigned int) dml_pow(2, 17));
 
        if (dual_plane) {
-               disp_dlg_regs->dst_y_per_pte_row_nom_c = (unsigned int) ((double) dpte_row_height_c
-                               / (double) vratio_c * dml_pow(2, 2));
+                          disp_dlg_regs->dst_y_per_pte_row_nom_c = (unsigned int)(((double) dpte_row_height_c
+                                                          / (double) vratio_c * dml_pow(2, 2)));
                if (disp_dlg_regs->dst_y_per_pte_row_nom_c >= (unsigned int) dml_pow(2, 17)) {
                        dml_print("DML_DLG: %s: Warning dst_y_per_pte_row_nom_c %u larger than supported by register format U15.2 %u\n",
                                        __func__,
@@ -1436,38 +1436,38 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                }
        }
 
-       disp_dlg_regs->dst_y_per_meta_row_nom_l = (unsigned int) ((double) meta_row_height_l
-                       / (double) vratio_l * dml_pow(2, 2));
+       disp_dlg_regs->dst_y_per_meta_row_nom_l = (unsigned int)(((double) meta_row_height_l
+                         / (double) vratio_l * dml_pow(2, 2)));
        ASSERT(disp_dlg_regs->dst_y_per_meta_row_nom_l < (unsigned int) dml_pow(2, 17));
 
        disp_dlg_regs->dst_y_per_meta_row_nom_c = disp_dlg_regs->dst_y_per_meta_row_nom_l; // TODO: dcc for 4:2:0 is not supported in dcn1.0.  assigned to be the same as _l for now
 
-       disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int) ((double) dpte_row_height_l
-                       / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
-                       / (double) dpte_groups_per_row_ub_l);
+       disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(((double) dpte_row_height_l
+                         / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
+                         / (double) dpte_groups_per_row_ub_l));
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
-       disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int) ((double) meta_row_height_l
-                       / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
-                       / (double) meta_chunks_per_row_ub_l);
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
+       disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(((double) meta_row_height_l
+                         / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
+                         / (double) meta_chunks_per_row_ub_l));
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dual_plane) {
-               disp_dlg_regs->refcyc_per_pte_group_nom_c =
-                               (unsigned int) ((double) dpte_row_height_c / (double) vratio_c
-                                               * (double) htotal * ref_freq_to_pix_freq
-                                               / (double) dpte_groups_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_pte_group_nom_c =
+                                                          (unsigned int)(((double) dpte_row_height_c / (double) vratio_c
+                                                                                          * (double) htotal * ref_freq_to_pix_freq
+                                                                                          / (double) dpte_groups_per_row_ub_c));
                if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                               disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
 
                // TODO: Is this the right calculation? Does htotal need to be halved?
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_c =
-                               (unsigned int) ((double) meta_row_height_c / (double) vratio_c
-                                               * (double) htotal * ref_freq_to_pix_freq
-                                               / (double) meta_chunks_per_row_ub_c);
+                          disp_dlg_regs->refcyc_per_meta_chunk_nom_c =
+                                                          (unsigned int)(((double) meta_row_height_c / (double) vratio_c
+                                                                                          * (double) htotal * ref_freq_to_pix_freq
+                                                                                          / (double) meta_chunks_per_row_ub_c));
                if (disp_dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                               disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
 
        disp_dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int) dml_floor(refcyc_per_line_delivery_pre_l,
@@ -1491,22 +1491,22 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
 
        disp_dlg_regs->dst_y_delta_drq_limit = 0x7fff; // off
 
-       disp_ttu_regs->refcyc_per_req_delivery_pre_l = (unsigned int) (refcyc_per_req_delivery_pre_l
-                       * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_l = (unsigned int) (refcyc_per_req_delivery_l
-                       * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_pre_c = (unsigned int) (refcyc_per_req_delivery_pre_c
-                       * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_c = (unsigned int) (refcyc_per_req_delivery_c
-                       * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_pre_l = (unsigned int)(refcyc_per_req_delivery_pre_l
+                         * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_l = (unsigned int)(refcyc_per_req_delivery_l
+                         * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_pre_c = (unsigned int)(refcyc_per_req_delivery_pre_c
+                         * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_c = (unsigned int)(refcyc_per_req_delivery_c
+                         * dml_pow(2, 10));
        disp_ttu_regs->refcyc_per_req_delivery_pre_cur0 =
-                       (unsigned int) (refcyc_per_req_delivery_pre_cur0 * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_cur0 = (unsigned int) (refcyc_per_req_delivery_cur0
-                       * dml_pow(2, 10));
+                         (unsigned int)(refcyc_per_req_delivery_pre_cur0 * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_cur0 = (unsigned int)(refcyc_per_req_delivery_cur0
+                         * dml_pow(2, 10));
        disp_ttu_regs->refcyc_per_req_delivery_pre_cur1 =
-                       (unsigned int) (refcyc_per_req_delivery_pre_cur1 * dml_pow(2, 10));
-       disp_ttu_regs->refcyc_per_req_delivery_cur1 = (unsigned int) (refcyc_per_req_delivery_cur1
-                       * dml_pow(2, 10));
+                         (unsigned int)(refcyc_per_req_delivery_pre_cur1 * dml_pow(2, 10));
+       disp_ttu_regs->refcyc_per_req_delivery_cur1 = (unsigned int)(refcyc_per_req_delivery_cur1
+                         * dml_pow(2, 10));
        disp_ttu_regs->qos_level_low_wm = 0;
        ASSERT(disp_ttu_regs->qos_level_low_wm < dml_pow(2, 14));
        disp_ttu_regs->qos_level_high_wm = (unsigned int) (4.0 * (double) htotal
@@ -1521,7 +1521,7 @@ static void dml20v2_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
@@ -1558,7 +1558,7 @@ void dml20v2_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        dlg_sys_param.total_flip_bw = get_total_immediate_flip_bw(mode_lib,
                        e2e_pipe_param,
                        num_pipes);
-       dlg_sys_param.total_flip_bytes = get_total_immediate_flip_bytes(mode_lib,
+       dlg_sys_param.total_flip_bytes = (unsigned int)get_total_immediate_flip_bytes(mode_lib,
                        e2e_pipe_param,
                        num_pipes);
 
@@ -1621,7 +1621,7 @@ static void calculate_ttu_cursor(struct display_mode_lib *mode_lib,
                                cur_req_size = 256;
                }
 
-               cur_req_width = (double) cur_req_size / ((double) cur_bit_per_pixel / 8.0);
+               cur_req_width = (unsigned int)((double) cur_req_size / ((double) cur_bit_per_pixel / 8.0));
                cur_width_ub = dml_ceil((double) cur_src_width / (double) cur_req_width, 1)
                                * (double) cur_req_width;
                cur_req_per_width = cur_width_ub / (double) cur_req_width;
index 11570a0c9427206e6aabac3dd4425b64ff027641..92705cf26f703e96d157d0ba9633ea58f04d645d 100644 (file)
@@ -521,7 +521,7 @@ static unsigned int dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / bpp / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / bpp / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -729,22 +729,22 @@ static bool CalculatePrefetchSchedule(
        }
 
        if (myPipe->ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotal + DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotal + DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotal + DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotal + DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + DPPCLKDelayCNVCFormater + myPipe->NumberOfCursors * DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + DPPCLKDelayCNVCFormater + myPipe->NumberOfCursors * DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)(DISPCLKDelaySubtotal);
 
        if (myPipe->DPPCLK == 0.0 || myPipe->DISPCLK == 0.0)
                return true;
 
-       *DSTXAfterScaler = DPPCycles * myPipe->PixelClock / myPipe->DPPCLK
-                       + DISPCLKCycles * myPipe->PixelClock / myPipe->DISPCLK + DSCDelay;
+       *DSTXAfterScaler = (unsigned int)(DPPCycles * myPipe->PixelClock / myPipe->DPPCLK
+                         + DISPCLKCycles * myPipe->PixelClock / myPipe->DISPCLK + DSCDelay);
 
-       if (myPipe->DPPPerPlane > 1)
-               *DSTXAfterScaler = *DSTXAfterScaler + ScalerRecoutWidth;
+              if (myPipe->DPPPerPlane > 1)
+                      *DSTXAfterScaler = (unsigned int)(*DSTXAfterScaler + ScalerRecoutWidth);
 
        if (OutputFormat == dm_420 || (myPipe->InterlaceEnable && ProgressiveToInterlaceUnitInOPP))
                *DSTYAfterScaler = 1;
@@ -755,7 +755,7 @@ static bool CalculatePrefetchSchedule(
        *DSTYAfterScaler = dml_floor(DSTTotalPixelsAfterScaler / myPipe->HTotal, 1);
        *DSTXAfterScaler = DSTTotalPixelsAfterScaler - ((double) (*DSTYAfterScaler * myPipe->HTotal));
 
-       *VUpdateOffsetPix = dml_ceil(myPipe->HTotal / 4.0, 1);
+       *VUpdateOffsetPix = (unsigned int)(dml_ceil(myPipe->HTotal / 4.0, 1));
        TotalRepeaterDelayTime = MaxInterDCNTileRepeaters * (2.0 / myPipe->DPPCLK + 3.0 / myPipe->DISPCLK);
        *VUpdateWidthPix = (14.0 / myPipe->DCFCLKDeepSleep + 12.0 / myPipe->DPPCLK + TotalRepeaterDelayTime)
                        * myPipe->PixelClock;
@@ -783,11 +783,11 @@ static bool CalculatePrefetchSchedule(
                        Tdmsks = Tdmsks / 2;
                if (VStartup * LineTime
                                < Tsetup + TWait + UrgentExtraLatency + Tdmbf + Tdmec + Tdmsks) {
-                       MyError = true;
-                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = (Tsetup + TWait
-                                       + UrgentExtraLatency + Tdmbf + Tdmec + Tdmsks) / LineTime;
+                       MyError = (unsigned int)(true);
+                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = (unsigned int)((Tsetup + TWait
+                                         + UrgentExtraLatency + Tdmbf + Tdmec + Tdmsks) / LineTime);
                } else
-                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = 0.0;
+                       *VStartupRequiredWhenNotEnoughTimeForDynamicMetadata = (unsigned int)(0U);
        } else
                Tdm = 0;
 
@@ -808,13 +808,13 @@ static bool CalculatePrefetchSchedule(
        Tsw_oto = dml_max(PrefetchSourceLinesY, PrefetchSourceLinesC) * LineTime;
 
        if (myPipe->SourceScan == dm_horz) {
-               *swath_width_luma_ub = dml_ceil(SwathWidthY - 1, myPipe->BlockWidth256BytesY) + myPipe->BlockWidth256BytesY;
+               *swath_width_luma_ub = (unsigned int)(dml_ceil(SwathWidthY - 1, myPipe->BlockWidth256BytesY) + myPipe->BlockWidth256BytesY);
                if (myPipe->BlockWidth256BytesC > 0)
-                       *swath_width_chroma_ub = dml_ceil(SwathWidthY / 2 - 1, myPipe->BlockWidth256BytesC) + myPipe->BlockWidth256BytesC;
+                       *swath_width_chroma_ub = (unsigned int)(dml_ceil(SwathWidthY / 2 - 1, myPipe->BlockWidth256BytesC) + myPipe->BlockWidth256BytesC);
        } else {
-               *swath_width_luma_ub = dml_ceil(SwathWidthY - 1, myPipe->BlockHeight256BytesY) + myPipe->BlockHeight256BytesY;
+               *swath_width_luma_ub = (unsigned int)(dml_ceil(SwathWidthY - 1, myPipe->BlockHeight256BytesY) + myPipe->BlockHeight256BytesY);
                if (myPipe->BlockHeight256BytesC > 0)
-                       *swath_width_chroma_ub = dml_ceil(SwathWidthY / 2 - 1, myPipe->BlockHeight256BytesC) + myPipe->BlockHeight256BytesC;
+                       *swath_width_chroma_ub = (unsigned int)(dml_ceil(SwathWidthY / 2 - 1, myPipe->BlockHeight256BytesC) + myPipe->BlockHeight256BytesC);
        }
 
        prefetch_bw_oto = (PrefetchSourceLinesY * *swath_width_luma_ub * dml_ceil(BytePerPixelDETY, 1) + PrefetchSourceLinesC * *swath_width_chroma_ub * dml_ceil(BytePerPixelDETC, 2)) / Tsw_oto;
@@ -1228,14 +1228,14 @@ static double CalculatePrefetchSourceLines(
 
        if (!mode_lib->vba.IgnoreViewportPositioning) {
 
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0;
+               *MaxNumSwath = (unsigned int)(dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 2) % SwathHeight;
                else
                        MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 2)
                                        % SwathHeight;
-               MaxPartialSwath = dml_max(1U, MaxPartialSwath);
+               MaxPartialSwath = (unsigned int)(dml_max(1U, MaxPartialSwath));
 
        } else {
 
@@ -1243,7 +1243,7 @@ static double CalculatePrefetchSourceLines(
                        dml_print(
                                        "WARNING DML: using viewport y position of 0 even though actual viewport y position is non-zero in prefetch source lines calculation\n");
 
-               *MaxNumSwath = dml_ceil(*VInitPreFill / SwathHeight, 1);
+               *MaxNumSwath = (unsigned int)(dml_ceil(*VInitPreFill / SwathHeight, 1));
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 1) % SwathHeight;
@@ -1252,7 +1252,7 @@ static double CalculatePrefetchSourceLines(
                                        % SwathHeight;
        }
 
-       return *MaxNumSwath * SwathHeight + MaxPartialSwath;
+       return (unsigned int)(*MaxNumSwath * SwathHeight + MaxPartialSwath);
 }
 
 static unsigned int CalculateVMAndRowBytes(
@@ -1307,34 +1307,34 @@ static unsigned int CalculateVMAndRowBytes(
                *MetaRequestHeight = 8 * BlockHeight256Bytes;
                *MetaRequestWidth = 8 * BlockWidth256Bytes;
                if (ScanDirection == dm_horz) {
-                       *meta_row_height = *MetaRequestHeight;
-                       *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestWidth)
-                                       + *MetaRequestWidth;
-                       *MetaRowByte = *meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0;
+                       *meta_row_height = (unsigned int)(*MetaRequestHeight);
+                       *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestWidth)
+                                       + *MetaRequestWidth);
+                       *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0);
                } else {
-                       *meta_row_height = *MetaRequestWidth;
-                       *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestHeight)
-                                       + *MetaRequestHeight;
-                       *MetaRowByte = *meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0;
+                       *meta_row_height = (unsigned int)(*MetaRequestWidth);
+                       *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestHeight)
+                                       + *MetaRequestHeight);
+                       *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0);
                }
                if (ScanDirection == dm_horz) {
-                       DCCMetaSurfaceBytes = DCCMetaPitch
+                       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch
                                        * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes)
                                                        + 64 * BlockHeight256Bytes) * BytePerPixel
-                                       / 256;
+                                       / 256);
                } else {
-                       DCCMetaSurfaceBytes = DCCMetaPitch
+                       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch
                                        * (dml_ceil(
                                                        (double) ViewportHeight - 1,
                                                        64 * BlockHeight256Bytes)
                                                        + 64 * BlockHeight256Bytes) * BytePerPixel
-                                       / 256;
+                                       / 256);
                }
                if (GPUVMEnable == true) {
-                       *MetaPTEBytesFrame = (dml_ceil(
+                       *MetaPTEBytesFrame = (unsigned int)((dml_ceil(
                                        (double) (DCCMetaSurfaceBytes - VMMPageSize)
                                                        / (8 * VMMPageSize),
-                                       1) + 1) * 64;
+                                       1) + 1) * 64);
                        MPDEBytesFrame = 128 * ((mode_lib->vba.GPUVMMaxPageTableLevels + 1) * (mode_lib->vba.HostVMMaxPageTableLevels + 1) - 2);
                } else {
                        *MetaPTEBytesFrame = 0;
@@ -1367,9 +1367,9 @@ static unsigned int CalculateVMAndRowBytes(
 
        if (GPUVMEnable == true && (mode_lib->vba.GPUVMMaxPageTableLevels + 1) * (mode_lib->vba.HostVMMaxPageTableLevels + 1) > 2) {
                if (ScanDirection == dm_horz) {
-                       *DPDE0BytesFrame = 64 * (dml_ceil(((Pitch * (dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1);
+                       *DPDE0BytesFrame = (unsigned int)(64 * (dml_ceil(((Pitch * (dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1));
                } else {
-                       *DPDE0BytesFrame = 64 * (dml_ceil(((Pitch * (dml_ceil((double) SwathWidth - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1);
+                       *DPDE0BytesFrame = (unsigned int)(64 * (dml_ceil(((Pitch * (dml_ceil((double) SwathWidth - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1));
                }
                ExtraDPDEBytesFrame = 128 * ((mode_lib->vba.GPUVMMaxPageTableLevels + 1) * (mode_lib->vba.HostVMMaxPageTableLevels + 1) - 3);
        } else {
@@ -1390,7 +1390,7 @@ static unsigned int CalculateVMAndRowBytes(
                if (SurfaceTiling == dm_sw_linear) {
                        PixelPTEReqHeightPTEs = 1;
                        *PixelPTEReqHeight = 1;
-                       *PixelPTEReqWidth = 8.0 * VMMPageSize / BytePerPixel;
+                       *PixelPTEReqWidth = (unsigned int)(8.0 * VMMPageSize / BytePerPixel);
                        *PTERequestSize = 64;
                        FractionOfPTEReturnDrop = 0;
                } else if (MacroTileSizeBytes == 4096) {
@@ -1417,20 +1417,20 @@ static unsigned int CalculateVMAndRowBytes(
                }
 
                if (SurfaceTiling == dm_sw_linear) {
-                       *dpte_row_height = dml_min(128,
+                       *dpte_row_height = (unsigned int)dml_min(128,
                                        1 << (unsigned int) dml_floor(
                                                dml_log2(
                                                        (double) PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch),
                                                1));
-                       *dpte_row_width_ub = (dml_ceil((double) (Pitch * *dpte_row_height - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+                       *dpte_row_width_ub = (unsigned int)((dml_ceil((double) (Pitch * *dpte_row_height - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                        *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
                } else if (ScanDirection == dm_horz) {
                        *dpte_row_height = *PixelPTEReqHeight;
-                       *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+                       *dpte_row_width_ub = (unsigned int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                        *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
                } else {
-                       *dpte_row_height = dml_min(*PixelPTEReqWidth, *MacroTileWidth);
-                       *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight;
+                       *dpte_row_height = (unsigned int)(dml_min(*PixelPTEReqWidth, *MacroTileWidth));
+                       *dpte_row_width_ub = (unsigned int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight);
                        *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqHeight * *PTERequestSize;
                }
                if (*PixelPTEBytesPerRow * (1 - FractionOfPTEReturnDrop)
@@ -1805,7 +1805,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                dscceComputeDelay(
                                                                mode_lib->vba.DSCInputBitPerComponent[k],
                                                                bpp,
-                                                               dml_ceil(
+                                                               (unsigned int)dml_ceil(
                                                                                (double) mode_lib->vba.HActive[k]
                                                                                                / mode_lib->vba.NumberOfDSCSlices[k],
                                                                                1),
@@ -1819,18 +1819,18 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                * (dscceComputeDelay(
                                                                                mode_lib->vba.DSCInputBitPerComponent[k],
                                                                                bpp,
-                                                                               dml_ceil(
+                                                                               (unsigned int)dml_ceil(
                                                                                                (double) mode_lib->vba.HActive[k]
                                                                                                                / mode_lib->vba.NumberOfDSCSlices[k],
                                                                                                1),
-                                                                               slices / 2.0,
+                                                                               (unsigned int)(slices / 2.0),
                                                                                mode_lib->vba.OutputFormat[k])
                                                                                + dscComputeDelay(
                                                                                                mode_lib->vba.OutputFormat[k]));
                        }
-                       locals->DSCDelay[k] = locals->DSCDelay[k]
+                       locals->DSCDelay[k] = (unsigned int)(locals->DSCDelay[k]
                                        * mode_lib->vba.PixelClock[k]
-                                       / mode_lib->vba.PixelClockBackEnd[k];
+                                       / mode_lib->vba.PixelClockBackEnd[k]);
                } else {
                        locals->DSCDelay[k] = 0;
                }
@@ -1856,8 +1856,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                Calculate256BBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(locals->BytePerPixelDETY[k], 1),
-                               dml_ceil(locals->BytePerPixelDETC[k], 2),
+                               (unsigned int)dml_ceil(locals->BytePerPixelDETY[k], 1),
+                               (unsigned int)dml_ceil(locals->BytePerPixelDETC[k], 2),
                                &locals->BlockHeight256BytesY[k],
                                &locals->BlockHeight256BytesC[k],
                                &locals->BlockWidth256BytesY[k],
@@ -1886,13 +1886,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                        locals->BlockWidth256BytesC[k],
                                                        mode_lib->vba.SourcePixelFormat[k],
                                                        mode_lib->vba.SurfaceTiling[k],
-                                                       dml_ceil(
+                                                       (unsigned int)dml_ceil(
                                                                        locals->BytePerPixelDETC[k],
                                                                        2),
                                                        mode_lib->vba.SourceScan[k],
-                                                       mode_lib->vba.ViewportWidth[k] / 2,
+                                                       (unsigned int)(mode_lib->vba.ViewportWidth[k] / 2),
                                                        mode_lib->vba.ViewportHeight[k] / 2,
-                                                       locals->SwathWidthY[k] / 2,
+                                                       (unsigned int)(locals->SwathWidthY[k] / 2),
                                                        mode_lib->vba.GPUVMEnable,
                                                        mode_lib->vba.HostVMEnable,
                                                        mode_lib->vba.HostVMMaxPageTableLevels,
@@ -1945,11 +1945,11 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                locals->BlockWidth256BytesY[k],
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(locals->BytePerPixelDETY[k], 1),
+                               (unsigned int)dml_ceil(locals->BytePerPixelDETY[k], 1),
                                mode_lib->vba.SourceScan[k],
                                mode_lib->vba.ViewportWidth[k],
                                mode_lib->vba.ViewportHeight[k],
-                               locals->SwathWidthY[k],
+                               (unsigned int)locals->SwathWidthY[k],
                                mode_lib->vba.GPUVMEnable,
                                mode_lib->vba.HostVMEnable,
                                mode_lib->vba.HostVMMaxPageTableLevels,
@@ -2053,7 +2053,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                                mode_lib->vba.WritebackLumaVTaps[k],
                                                                                mode_lib->vba.WritebackChromaHTaps[k],
                                                                                mode_lib->vba.WritebackChromaVTaps[k],
-                                                                               mode_lib->vba.WritebackDestinationWidth[k])
+                                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[k])
                                                                                / mode_lib->vba.DISPCLK;
                        } else
                                locals->WritebackDelay[mode_lib->vba.VoltageLevel][k] = 0;
@@ -2072,7 +2072,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                                                        mode_lib->vba.WritebackLumaVTaps[j],
                                                                                                        mode_lib->vba.WritebackChromaHTaps[j],
                                                                                                        mode_lib->vba.WritebackChromaVTaps[j],
-                                                                                                       mode_lib->vba.WritebackDestinationWidth[j])
+                                                                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[j])
                                                                                                        / mode_lib->vba.DISPCLK);
                                }
                        }
@@ -2087,11 +2087,11 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
        mode_lib->vba.VStartupLines = 13;
        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
-               locals->MaxVStartupLines[k] = mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k] - dml_max(1.0, dml_ceil(locals->WritebackDelay[mode_lib->vba.VoltageLevel][k] / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]), 1));
+               locals->MaxVStartupLines[k] = (unsigned int)(mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k] - dml_max(1.0, dml_ceil(locals->WritebackDelay[mode_lib->vba.VoltageLevel][k] / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]), 1)));
        }
 
        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k)
-               locals->MaximumMaxVStartupLines = dml_max(locals->MaximumMaxVStartupLines, locals->MaxVStartupLines[k]);
+               locals->MaximumMaxVStartupLines = (unsigned int)(dml_max(locals->MaximumMaxVStartupLines, locals->MaxVStartupLines[k]));
 
        // We don't really care to iterate between the various prefetch modes
        //mode_lib->vba.PrefetchERROR = CalculateMinAndMaxPrefetchMode(mode_lib->vba.AllowDRAMSelfRefreshOrDRAMClockChangeInVblank, &mode_lib->vba.MinPrefetchMode, &mode_lib->vba.MaxPrefetchMode);
@@ -2177,7 +2177,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                        / mode_lib->vba.HRatio[k]),
                                                        mode_lib->vba.OutputFormat[k],
                                                        mode_lib->vba.MaxInterDCNTileRepeaters,
-                                                       dml_min(mode_lib->vba.VStartupLines, locals->MaxVStartupLines[k]),
+                                                       (unsigned int)dml_min(mode_lib->vba.VStartupLines, locals->MaxVStartupLines[k]),
                                                        locals->MaxVStartupLines[k],
                                                        mode_lib->vba.GPUVMMaxPageTableLevels,
                                                        mode_lib->vba.GPUVMEnable,
@@ -2189,11 +2189,11 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                        mode_lib->vba.UrgentLatency,
                                                        mode_lib->vba.UrgentExtraLatency,
                                                        mode_lib->vba.TCalc,
-                                                       locals->PDEAndMetaPTEBytesFrame[k],
-                                                       locals->MetaRowByte[k],
-                                                       locals->PixelPTEBytesPerRow[k],
+                                                       (unsigned int)locals->PDEAndMetaPTEBytesFrame[k],
+                                                       (unsigned int)locals->MetaRowByte[k],
+                                                       (unsigned int)locals->PixelPTEBytesPerRow[k],
                                                        locals->PrefetchSourceLinesY[k],
-                                                       locals->SwathWidthY[k],
+                                                       (unsigned int)locals->SwathWidthY[k],
                                                        locals->BytePerPixelDETY[k],
                                                        locals->VInitPreFillY[k],
                                                        locals->MaxNumSwathY[k],
@@ -2226,7 +2226,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                        &mode_lib->vba.VUpdateWidthPix[k],
                                                        &mode_lib->vba.VReadyOffsetPix[k]);
                        if (mode_lib->vba.BlendingAndTiming[k] == k) {
-                               locals->VStartup[k] = dml_min(
+                               locals->VStartup[k] = (unsigned int)dml_min(
                                                mode_lib->vba.VStartupLines,
                                                locals->MaxVStartupLines[k]);
                                if (locals->VStartupRequiredWhenNotEnoughTimeForDynamicMetadata
@@ -2236,7 +2236,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                }
                        } else {
                                locals->VStartup[k] =
-                                               dml_min(
+                                               (unsigned int)dml_min(
                                                                mode_lib->vba.VStartupLines,
                                                                locals->MaxVStartupLines[mode_lib->vba.BlendingAndTiming[k]]);
                        }
@@ -2256,13 +2256,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        mode_lib->vba.DETBufferSizeInKByte[0],
                                        mode_lib->vba.SwathHeightY[k],
                                        mode_lib->vba.SwathHeightC[k],
-                                       locals->SwathWidthY[k],
+                                       (unsigned int)locals->SwathWidthY[k],
                                        mode_lib->vba.HTotal[k] /
                                        mode_lib->vba.PixelClock[k],
                                        mode_lib->vba.UrgentLatency,
                                        mode_lib->vba.CursorBufferSize,
                                        mode_lib->vba.CursorWidth[k][0] + mode_lib->vba.CursorWidth[k][1],
-                                       dml_max(mode_lib->vba.CursorBPP[k][0], mode_lib->vba.CursorBPP[k][1]),
+                                       (unsigned int)dml_max(mode_lib->vba.CursorBPP[k][0], mode_lib->vba.CursorBPP[k][1]),
                                        mode_lib->vba.VRatio[k],
                                        locals->VRatioPrefetchY[k],
                                        locals->VRatioPrefetchC[k],
@@ -2333,7 +2333,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
                        mode_lib->vba.TotImmediateFlipBytes = 0;
                        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
-                               mode_lib->vba.TotImmediateFlipBytes = mode_lib->vba.TotImmediateFlipBytes + locals->PDEAndMetaPTEBytesFrame[k] + locals->MetaRowByte[k] + locals->PixelPTEBytesPerRow[k];
+                               mode_lib->vba.TotImmediateFlipBytes = (unsigned int)(mode_lib->vba.TotImmediateFlipBytes + locals->PDEAndMetaPTEBytesFrame[k] + locals->MetaRowByte[k] + locals->PixelPTEBytesPerRow[k]);
                        }
                        for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
                                CalculateFlipSchedule(
@@ -2600,7 +2600,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        locals->BlockHeight256BytesY[k],
                        mode_lib->vba.SwathHeightY[k],
                        mode_lib->vba.SurfaceTiling[k],
-                       locals->BytePerPixelDETY[k],
+                       (unsigned int)locals->BytePerPixelDETY[k],
                        mode_lib->vba.SourceScan[k],
                        &locals->DCCYMaxUncompressedBlock[k],
                        &locals->DCCYMaxCompressedBlock[k],
@@ -2722,7 +2722,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        mode_lib->vba.FrameTimeForMinFullDETBufferingTime =
                                (double) mode_lib->vba.VTotal[k] * mode_lib->vba.HTotal[k]
                                / mode_lib->vba.PixelClock[k];
-                       locals->BytePerPixelYCriticalPlane = dml_ceil(locals->BytePerPixelDETY[k], 1);
+                       locals->BytePerPixelYCriticalPlane = (unsigned int)(dml_ceil(locals->BytePerPixelDETY[k], 1));
                        locals->SwathWidthYCriticalPlane = locals->SwathWidthY[k];
                        locals->LinesToFinishSwathTransferStutterCriticalPlane =
                                mode_lib->vba.SwathHeightY[k] - (locals->LinesInDETY[k] - locals->LinesInDETYRoundedDownToSwath[k]);
@@ -2993,11 +2993,11 @@ static void DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
 
                if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
                                <= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
-                       mode_lib->vba.SwathHeightY[k] = MaximumSwathHeightY;
-                       mode_lib->vba.SwathHeightC[k] = MaximumSwathHeightC;
+                       mode_lib->vba.SwathHeightY[k] = (unsigned int)(MaximumSwathHeightY);
+                       mode_lib->vba.SwathHeightC[k] = (unsigned int)(MaximumSwathHeightC);
                } else {
-                       mode_lib->vba.SwathHeightY[k] = MinimumSwathHeightY;
-                       mode_lib->vba.SwathHeightC[k] = MinimumSwathHeightC;
+                       mode_lib->vba.SwathHeightY[k] = (unsigned int)(MinimumSwathHeightY);
+                       mode_lib->vba.SwathHeightC[k] = (unsigned int)(MinimumSwathHeightC);
                }
 
                CalculateDETBufferSize(
@@ -3317,9 +3317,9 @@ static unsigned int TruncToValidBPP(
                                        if (DecimalBPP < 6)
                                                return BPP_INVALID;
                                        else if (DecimalBPP >= 1.5 * DSCInputBitPerComponent - 1.0 / 16.0)
-                                               return 1.5 * DSCInputBitPerComponent - 1.0 / 16.0;
+                                               return (unsigned int)(1.5 * DSCInputBitPerComponent - 1.0 / 16.0);
                                        else
-                                               return dml_floor(16 * DecimalBPP, 1) / 16.0;
+                                               return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16.0);
                                } else {
                                        if (DecimalBPP < 6
                                                        || DesiredBPP < 6
@@ -3327,7 +3327,7 @@ static unsigned int TruncToValidBPP(
                                                        || DecimalBPP < DesiredBPP) {
                                                return BPP_INVALID;
                                        } else {
-                                               return DesiredBPP;
+                                               return (unsigned int)(DesiredBPP);
                                        }
                                }
                        } else if (Format == dm_n422) {
@@ -3335,9 +3335,9 @@ static unsigned int TruncToValidBPP(
                                        if (DecimalBPP < 7)
                                                return BPP_INVALID;
                                        else if (DecimalBPP >= 2 * DSCInputBitPerComponent - 1.0 / 16.0)
-                                               return 2 * DSCInputBitPerComponent - 1.0 / 16.0;
+                                               return (unsigned int)(2 * DSCInputBitPerComponent - 1.0 / 16.0);
                                        else
-                                               return dml_floor(16 * DecimalBPP, 1) / 16.0;
+                                               return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16.0);
                                } else {
                                        if (DecimalBPP < 7
                                                        || DesiredBPP < 7
@@ -3345,7 +3345,7 @@ static unsigned int TruncToValidBPP(
                                                        || DecimalBPP < DesiredBPP) {
                                                return BPP_INVALID;
                                        } else {
-                                               return DesiredBPP;
+                                               return (unsigned int)(DesiredBPP);
                                        }
                                }
                        } else {
@@ -3353,9 +3353,9 @@ static unsigned int TruncToValidBPP(
                                        if (DecimalBPP < 8)
                                                return BPP_INVALID;
                                        else if (DecimalBPP >= 3 * DSCInputBitPerComponent - 1.0 / 16.0)
-                                               return 3 * DSCInputBitPerComponent - 1.0 / 16.0;
+                                               return (unsigned int)(3 * DSCInputBitPerComponent - 1.0 / 16.0);
                                        else
-                                               return dml_floor(16 * DecimalBPP, 1) / 16.0;
+                                               return (unsigned int)(dml_floor(16 * DecimalBPP, 1) / 16.0);
                                } else {
                                        if (DecimalBPP < 8
                                                        || DesiredBPP < 8
@@ -3363,7 +3363,7 @@ static unsigned int TruncToValidBPP(
                                                        || DecimalBPP < DesiredBPP) {
                                                return BPP_INVALID;
                                        } else {
-                                               return DesiredBPP;
+                                               return (unsigned int)(DesiredBPP);
                                        }
                                }
                        }
@@ -3462,18 +3462,18 @@ static noinline void CalculatePrefetchSchedulePerPlane(
                        mode_lib->vba.PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyPixelMixedWithVMData,
                        mode_lib->vba.PercentOfIdealDRAMFabricAndSDPPortBWReceivedAfterUrgLatencyVMDataOnly,
                        &myPipe,
-                       locals->DSCDelayPerState[i][k],
+                       (unsigned int)locals->DSCDelayPerState[i][k],
                        mode_lib->vba.DPPCLKDelaySubtotal,
                        mode_lib->vba.DPPCLKDelaySCL,
                        mode_lib->vba.DPPCLKDelaySCLLBOnly,
                        mode_lib->vba.DPPCLKDelayCNVCFormater,
                        mode_lib->vba.DPPCLKDelayCNVCCursor,
                        mode_lib->vba.DISPCLKDelaySubtotal,
-                       locals->SwathWidthYThisState[k] / mode_lib->vba.HRatio[k],
+                       (unsigned int)(locals->SwathWidthYThisState[k] / mode_lib->vba.HRatio[k]),
                        mode_lib->vba.OutputFormat[k],
                        mode_lib->vba.MaxInterDCNTileRepeaters,
-                       dml_min(mode_lib->vba.MaxVStartup, locals->MaximumVStartup[0][0][k]),
-                       locals->MaximumVStartup[0][0][k],
+                       (unsigned int)dml_min(mode_lib->vba.MaxVStartup, locals->MaximumVStartup[0][0][k]),
+                       (unsigned int)locals->MaximumVStartup[0][0][k],
                        mode_lib->vba.GPUVMMaxPageTableLevels,
                        mode_lib->vba.GPUVMEnable,
                        &myHostVM,
@@ -3484,11 +3484,11 @@ static noinline void CalculatePrefetchSchedulePerPlane(
                        mode_lib->vba.UrgentLatency,
                        mode_lib->vba.ExtraLatency,
                        mode_lib->vba.TimeCalc,
-                       locals->PDEAndMetaPTEBytesPerFrame[0][0][k],
-                       locals->MetaRowBytes[0][0][k],
-                       locals->DPTEBytesPerRow[0][0][k],
+                       (unsigned int)locals->PDEAndMetaPTEBytesPerFrame[0][0][k],
+                       (unsigned int)locals->MetaRowBytes[0][0][k],
+                       (unsigned int)locals->DPTEBytesPerRow[0][0][k],
                        locals->PrefetchLinesY[0][0][k],
-                       locals->SwathWidthYThisState[k],
+                       (unsigned int)locals->SwathWidthYThisState[k],
                        locals->BytePerPixelInDETY[k],
                        locals->PrefillY[k],
                        locals->MaxNumSwY[k],
@@ -3951,8 +3951,8 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                Calculate256BBlockSizes(
                                mode_lib->vba.SourcePixelFormat[k],
                                mode_lib->vba.SurfaceTiling[k],
-                               dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
-                               dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
+                               (unsigned int)dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
+                               (unsigned int)dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
                                &locals->Read256BlockHeightY[k],
                                &locals->Read256BlockHeightC[k],
                                &locals->Read256BlockWidthY[k],
@@ -4141,7 +4141,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        locals->DISPCLK_DPPCLK_Support[i][j] = false;
                                }
                        }
-                       locals->TotalNumberOfActiveDPP[i][j] = 0.0;
+                       locals->TotalNumberOfActiveDPP[i][j] = (unsigned int)(0.0);
                        for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++)
                                locals->TotalNumberOfActiveDPP[i][j] = locals->TotalNumberOfActiveDPP[i][j] + locals->NoOfDPP[i][j][k];
                        if (j == 1) {
@@ -4196,7 +4196,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        || mode_lib->vba.PlaneRequiredDISPCLK > mode_lib->vba.MaxDispclkRoundedDownToDFSGranularity)
                                                locals->DISPCLK_DPPCLK_Support[i][j] = false;
                                }
-                               locals->TotalNumberOfActiveDPP[i][j] = 0.0;
+                               locals->TotalNumberOfActiveDPP[i][j] = (unsigned int)(0.0);
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++)
                                        locals->TotalNumberOfActiveDPP[i][j] = locals->TotalNumberOfActiveDPP[i][j] + locals->NoOfDPP[i][j][k];
                        }
@@ -4455,19 +4455,19 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                mode_lib->vba.slices = 0;
                        } else if (locals->RequiresDSC[i][k] == 0
                                        || locals->RequiresDSC[i][k] == false) {
-                               mode_lib->vba.slices = 0;
+                               mode_lib->vba.slices = (unsigned int)(0);
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 3200.0) {
-                               mode_lib->vba.slices = dml_ceil(
+                               mode_lib->vba.slices = (unsigned int)dml_ceil(
                                                mode_lib->vba.PixelClockBackEnd[k] / 400.0,
                                                4.0);
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 1360.0) {
-                               mode_lib->vba.slices = 8.0;
+                               mode_lib->vba.slices = (unsigned int)(8.0);
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 680.0) {
-                               mode_lib->vba.slices = 4.0;
+                               mode_lib->vba.slices = (unsigned int)(4.0);
                        } else if (mode_lib->vba.PixelClockBackEnd[k] > 340.0) {
-                               mode_lib->vba.slices = 2.0;
+                               mode_lib->vba.slices = (unsigned int)(2.0);
                        } else {
-                               mode_lib->vba.slices = 1.0;
+                               mode_lib->vba.slices = (unsigned int)(1.0);
                        }
                        if (locals->OutputBppPerState[i][k] == BPP_BLENDED_PIPE
                                        || locals->OutputBppPerState[i][k] == BPP_INVALID) {
@@ -4481,7 +4481,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        dscceComputeDelay(
                                                                        mode_lib->vba.DSCInputBitPerComponent[k],
                                                                        mode_lib->vba.bpp,
-                                                                       dml_ceil(
+                                                                       (unsigned int)dml_ceil(
                                                                                        mode_lib->vba.HActive[k]
                                                                                                        / mode_lib->vba.slices,
                                                                                        1.0),
@@ -4494,7 +4494,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        2.0 * (dscceComputeDelay(
                                                                                        mode_lib->vba.DSCInputBitPerComponent[k],
                                                                                        mode_lib->vba.bpp,
-                                                                                       dml_ceil(mode_lib->vba.HActive[k] / mode_lib->vba.slices, 1.0),
+                                                                       (unsigned int)dml_ceil(mode_lib->vba.HActive[k] / mode_lib->vba.slices, 1.0),
                                                                                        mode_lib->vba.slices / 2,
                                                                                        mode_lib->vba.OutputFormat[k])
                                                                        + dscComputeDelay(mode_lib->vba.OutputFormat[k]));
@@ -4569,13 +4569,13 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                }
                                if (mode_lib->vba.RoundedUpMaxSwathSizeBytesY + mode_lib->vba.RoundedUpMaxSwathSizeBytesC
                                                <= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
-                                       locals->SwathHeightYThisState[k] = locals->MaxSwathHeightY[k];
-                                       locals->SwathHeightCThisState[k] = locals->MaxSwathHeightC[k];
+                                       locals->SwathHeightYThisState[k] = (unsigned int)(locals->MaxSwathHeightY[k]);
+                                       locals->SwathHeightCThisState[k] = (unsigned int)(locals->MaxSwathHeightC[k]);
                                } else {
                                        locals->SwathHeightYThisState[k] =
-                                                       locals->MinSwathHeightY[k];
+                                                       (unsigned int)locals->MinSwathHeightY[k];
                                        locals->SwathHeightCThisState[k] =
-                                                       locals->MinSwathHeightC[k];
+                                                       (unsigned int)locals->MinSwathHeightC[k];
                                }
                        }
 
@@ -4607,11 +4607,11 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        locals->Read256BlockWidthC[k],
                                                        mode_lib->vba.SourcePixelFormat[k],
                                                        mode_lib->vba.SurfaceTiling[k],
-                                                       dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
+                                                       (unsigned int)dml_ceil(locals->BytePerPixelInDETC[k], 2.0),
                                                        mode_lib->vba.SourceScan[k],
-                                                       mode_lib->vba.ViewportWidth[k] / 2.0,
-                                                       mode_lib->vba.ViewportHeight[k] / 2.0,
-                                                       locals->SwathWidthYThisState[k] / 2.0,
+                                                       (unsigned int)(mode_lib->vba.ViewportWidth[k] / 2.0),
+                                                       (unsigned int)(mode_lib->vba.ViewportHeight[k] / 2.0),
+                                                       (unsigned int)(locals->SwathWidthYThisState[k] / 2.0),
                                                        mode_lib->vba.GPUVMEnable,
                                                        mode_lib->vba.HostVMEnable,
                                                        mode_lib->vba.HostVMMaxPageTableLevels,
@@ -4619,7 +4619,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.VMMPageSize,
                                                        mode_lib->vba.PTEBufferSizeInRequestsChroma,
                                                        mode_lib->vba.PitchC[k],
-                                                       0.0,
+                                                       0,
                                                        &locals->MacroTileWidthC[k],
                                                        &mode_lib->vba.MetaRowBytesC,
                                                        &mode_lib->vba.DPTEBytesPerRowC,
@@ -4650,8 +4650,8 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        locals->PTEBufferSizeInRequestsForLuma = mode_lib->vba.PTEBufferSizeInRequestsLuma;
                                } else {
                                        mode_lib->vba.PDEAndMetaPTEBytesPerFrameC = 0.0;
-                                       mode_lib->vba.MetaRowBytesC = 0.0;
-                                       mode_lib->vba.DPTEBytesPerRowC = 0.0;
+                                       mode_lib->vba.MetaRowBytesC = (unsigned int)(0.0);
+                                       mode_lib->vba.DPTEBytesPerRowC = (unsigned int)(0.0);
                                        locals->PrefetchLinesC[0][0][k] = 0.0;
                                        locals->PTEBufferSizeNotExceededC[i][j][k] = true;
                                        locals->PTEBufferSizeInRequestsForLuma = mode_lib->vba.PTEBufferSizeInRequestsLuma + mode_lib->vba.PTEBufferSizeInRequestsChroma;
@@ -4663,11 +4663,11 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                locals->Read256BlockWidthY[k],
                                                mode_lib->vba.SourcePixelFormat[k],
                                                mode_lib->vba.SurfaceTiling[k],
-                                               dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
+                                               (unsigned int)dml_ceil(locals->BytePerPixelInDETY[k], 1.0),
                                                mode_lib->vba.SourceScan[k],
                                                mode_lib->vba.ViewportWidth[k],
                                                mode_lib->vba.ViewportHeight[k],
-                                               locals->SwathWidthYThisState[k],
+                                               (unsigned int)locals->SwathWidthYThisState[k],
                                                mode_lib->vba.GPUVMEnable,
                                                mode_lib->vba.HostVMEnable,
                                                mode_lib->vba.HostVMMaxPageTableLevels,
@@ -4756,7 +4756,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                mode_lib->vba.WritebackLumaVTaps[k],
                                                                                mode_lib->vba.WritebackChromaHTaps[k],
                                                                                mode_lib->vba.WritebackChromaVTaps[k],
-                                                                               mode_lib->vba.WritebackDestinationWidth[k]) / locals->RequiredDISPCLK[i][j];
+                                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[k]) / locals->RequiredDISPCLK[i][j];
                                        } else {
                                                locals->WritebackDelay[i][k] = 0.0;
                                        }
@@ -4773,7 +4773,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                                        mode_lib->vba.WritebackLumaVTaps[m],
                                                                                                        mode_lib->vba.WritebackChromaHTaps[m],
                                                                                                        mode_lib->vba.WritebackChromaVTaps[m],
-                                                                                                       mode_lib->vba.WritebackDestinationWidth[m]) / locals->RequiredDISPCLK[i][j]);
+                                                                                                                               (unsigned int)mode_lib->vba.WritebackDestinationWidth[m]) / locals->RequiredDISPCLK[i][j]);
                                                }
                                        }
                                }
@@ -4824,12 +4824,12 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.DETBufferSizeInKByte[0],
                                                        locals->SwathHeightYThisState[k],
                                                        locals->SwathHeightCThisState[k],
-                                                       locals->SwathWidthYThisState[k],
+                                                       (unsigned int)locals->SwathWidthYThisState[k],
                                                        mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k],
                                                        mode_lib->vba.UrgentLatency,
                                                        mode_lib->vba.CursorBufferSize,
                                                        mode_lib->vba.CursorWidth[k][0] + mode_lib->vba.CursorWidth[k][1],
-                                                       dml_max(mode_lib->vba.CursorBPP[k][0], mode_lib->vba.CursorBPP[k][1]),
+                                                       (unsigned int)dml_max(mode_lib->vba.CursorBPP[k][0], mode_lib->vba.CursorBPP[k][1]),
                                                        mode_lib->vba.VRatio[k],
                                                        locals->VRatioPreY[i][j][k],
                                                        locals->VRatioPreC[i][j][k],
@@ -4922,10 +4922,10 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        + locals->RequiredPrefetchPixelDataBWChroma[i][j][k] * locals->UrgentBurstFactorChromaPre[k]
                                                        + locals->cursor_bw_pre[k] * locals->UrgentBurstFactorCursorPre[k]);
                                }
-                               mode_lib->vba.TotImmediateFlipBytes = 0.0;
+                               mode_lib->vba.TotImmediateFlipBytes = (unsigned int)(0.0);
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
-                                       mode_lib->vba.TotImmediateFlipBytes = mode_lib->vba.TotImmediateFlipBytes
-                                               + locals->PDEAndMetaPTEBytesPerFrame[0][0][k] + locals->MetaRowBytes[0][0][k] + locals->DPTEBytesPerRow[0][0][k];
+                                       mode_lib->vba.TotImmediateFlipBytes = (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
+                                                       + locals->PDEAndMetaPTEBytesPerFrame[0][0][k] + locals->MetaRowBytes[0][0][k] + locals->DPTEBytesPerRow[0][0][k]);
                                }
 
                                for (k = 0; k <= mode_lib->vba.NumberOfActivePlanes - 1; k++) {
@@ -5373,13 +5373,13 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
 
        for (k = 0; k < NumberOfActivePlanes; ++k) {
 
-               mode_lib->vba.LBLatencyHidingSourceLinesY = dml_min((double) MaxLineBufferLines,
+               mode_lib->vba.LBLatencyHidingSourceLinesY = (unsigned int)(dml_min((double) MaxLineBufferLines,
                        dml_floor(LineBufferSize / LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(HRatio[k], 1.0)), 1))
-                               - (vtaps[k] - 1);
+                               - (vtaps[k] - 1));
 
-               mode_lib->vba.LBLatencyHidingSourceLinesC = dml_min((double) MaxLineBufferLines,
+               mode_lib->vba.LBLatencyHidingSourceLinesC = (unsigned int)(dml_min((double) MaxLineBufferLines,
                        dml_floor(LineBufferSize / LBBitPerPixel[k] / (SwathWidthY[k] / 2 / dml_max(HRatio[k] / 2, 1.0)), 1))
-                               - (VTAPsChroma[k] - 1);
+                               - (VTAPsChroma[k] - 1));
 
                EffectiveLBLatencyHidingY = mode_lib->vba.LBLatencyHidingSourceLinesY / VRatio[k]
                                * (HTotal[k] / PixelClock[k]);
@@ -5412,12 +5412,12 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
                                &DETBufferSizeC);
 
                LinesInDETY[k] = (double)DETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k];
-               LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]);
+               LinesInDETYRoundedDownToSwath[k] = (unsigned int)(dml_floor(LinesInDETY[k], SwathHeightY[k]));
                FullDETBufferingTimeY[k] = LinesInDETYRoundedDownToSwath[k]
                                * (HTotal[k] / PixelClock[k]) / VRatio[k];
                if (BytePerPixelDETC[k] > 0) {
                        LinesInDETC = (double)DETBufferSizeC / BytePerPixelDETC[k] / (SwathWidthY[k] / 2.0);
-                       LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]);
+                       LinesInDETCRoundedDownToSwath = (unsigned int)(dml_floor(LinesInDETC, SwathHeightC[k]));
                        FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath
                                        * (HTotal[k] / PixelClock[k]) / (VRatio[k] / 2);
                } else {
@@ -5939,10 +5939,10 @@ static void CalculateMetaAndPTETimes(
 
        for (k = 0; k < NumberOfActivePlanes; ++k) {
                if (DCCEnable[k] == true) {
-                       meta_chunk_width = MetaChunkSize * 1024 * 256
-                                       / dml_ceil(BytePerPixelDETY[k], 1) / meta_row_height[k];
-                       min_meta_chunk_width = MinMetaChunkSizeBytes * 256
-                                       / dml_ceil(BytePerPixelDETY[k], 1) / meta_row_height[k];
+                       meta_chunk_width = (unsigned int)(MetaChunkSize * 1024 * 256
+                                       / dml_ceil(BytePerPixelDETY[k], 1) / meta_row_height[k]);
+                       min_meta_chunk_width = (unsigned int)(MinMetaChunkSizeBytes * 256
+                                       / dml_ceil(BytePerPixelDETY[k], 1) / meta_row_height[k]);
                        meta_chunk_per_row_int = meta_row_width[k] / meta_chunk_width;
                        meta_row_remainder = meta_row_width[k] % meta_chunk_width;
                        if (SourceScan[k] == dm_horz) {
@@ -5978,7 +5978,7 @@ static void CalculateMetaAndPTETimes(
                                dpte_group_width_luma = dpte_group_bytes[k] / PTERequestSizeY[k]
                                                * PixelPTEReqHeightY[k];
                        }
-                       dpte_groups_per_row_luma_ub = dml_ceil(
+                       dpte_groups_per_row_luma_ub = (unsigned int)dml_ceil(
                                        (float) dpte_row_width_luma_ub[k] / dpte_group_width_luma,
                                        1);
                        time_per_pte_group_nom_luma[k] = DST_Y_PER_PTE_ROW_NOM_L[k] * HTotal[k]
@@ -6002,7 +6002,7 @@ static void CalculateMetaAndPTETimes(
                                                        / PTERequestSizeC[k]
                                                        * PixelPTEReqHeightC[k];
                                }
-                               dpte_groups_per_row_chroma_ub = dml_ceil(
+                               dpte_groups_per_row_chroma_ub = (unsigned int)dml_ceil(
                                                (float) dpte_row_width_chroma_ub[k]
                                                                / dpte_group_width_chroma,
                                                1);
@@ -6032,34 +6032,32 @@ static void CalculateMetaAndPTETimes(
                if (GPUVMEnable == true && (DCCEnable[k] == true || GPUVMMaxPageTableLevels > 1)) {
                        if (DCCEnable[k] == false) {
                                if (BytePerPixelDETC[k] > 0) {
-                                       num_group_per_lower_vm_stage =
+                                       num_group_per_lower_vm_stage = (unsigned int)(
                                                dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                               + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                               + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                } else {
-                                       num_group_per_lower_vm_stage =
-                                                       dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                       num_group_per_lower_vm_stage = (unsigned int)dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
                                }
                        } else {
                                if (GPUVMMaxPageTableLevels == 1) {
                                        if (BytePerPixelDETC[k] > 0) {
-                                               num_group_per_lower_vm_stage =
+                                               num_group_per_lower_vm_stage = (unsigned int)(
                                                        dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                       + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                                       + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage =
-                                                       dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (unsigned int)dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
                                        }
                                } else {
                                        if (BytePerPixelDETC[k] > 0) {
-                                               num_group_per_lower_vm_stage =
+                                               num_group_per_lower_vm_stage = (unsigned int)(
                                                        dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
                                                        + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1)
                                                        + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                       + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                                       + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage =
+                                               num_group_per_lower_vm_stage = (unsigned int)(
                                                        dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                       + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                                       + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1));
                                        }
                                }
                        }
index 8a611b3bec331e6080df79556076ee04d128f89b..189b0157fcf3ccdcadf3a030547d8a28a8306f7c 100644 (file)
@@ -174,19 +174,19 @@ static void extract_rq_regs(
 
        extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_l), &rq_param->sizing.rq_l);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(
                        dml_log2(rq_param->dlg.rq_l.dpte_row_height),
-                       1) - 3;
+                       1) - 3);
 
        if (rq_param->yuv420) {
                extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_c), &rq_param->sizing.rq_c);
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(
                                dml_log2(rq_param->dlg.rq_c.dpte_row_height),
-                               1) - 3;
+                               1) - 3);
        }
 
-       rq_regs->rq_regs_l.swath_height = dml_log2(rq_param->dlg.rq_l.swath_height);
-       rq_regs->rq_regs_c.swath_height = dml_log2(rq_param->dlg.rq_c.swath_height);
+       rq_regs->rq_regs_l.swath_height = (unsigned int)dml_log2(rq_param->dlg.rq_l.swath_height);
+       rq_regs->rq_regs_c.swath_height = (unsigned int)dml_log2(rq_param->dlg.rq_c.swath_height);
 
        // FIXME: take the max between luma, chroma chunk size?
        // okay for now, as we are setting chunk_bytes to 8kb anyways
@@ -202,12 +202,12 @@ static void extract_rq_regs(
        if (rq_param->yuv420) {
                if ((double) rq_param->misc.rq_l.stored_swath_bytes
                                / (double) rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple(
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple(
                                        (unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0),
                                        256,
-                                       0) / 64.0; // 2/3 to chroma
+                                                       0) / 64.0); // 2/3 to chroma
                }
        }
        rq_regs->plane1_base_address = detile_buf_plane1_addr;
@@ -443,8 +443,8 @@ static void get_meta_and_pte_attr(
        // "/2" is like square root
        // blk is vertical biased
        if (tiling != dm_sw_linear)
-               log2_blk_height = log2_blk256_height
-                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+               log2_blk_height = (unsigned int)(log2_blk256_height
+                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1));
        else
                log2_blk_height = 0;  // blk height of 1
 
@@ -599,7 +599,7 @@ static void get_meta_and_pte_attr(
        if (surf_linear) {
                unsigned int dpte_row_height;
 
-               log2_dpte_row_height_linear = dml_floor(
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(
                                dml_log2(
                                                dml_min(
                                                                64 * 1024 * pde_buf_entries
@@ -678,7 +678,7 @@ static void get_meta_and_pte_attr(
 
        // since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
        // the upper bound for the dpte groups per row is as follows.
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil(
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil(
                        (double) dpte_row_width_ub / dpte_group_width,
                        1);
 }
@@ -718,18 +718,18 @@ static void get_surf_rq_param(
                access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
                hactive_half  = pipe_param->dest.hactive / 2;
                if (is_chroma) {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
-                       src_hactive_half  = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_half;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width);
+                       src_hactive_half  = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_half);
                } else {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
-                       src_hactive_half  = pipe_param->scale_ratio_depth.hscl_ratio * hactive_half;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width);
+                       src_hactive_half  = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * hactive_half);
                }
 
                if (access_dir == 0) {
-                       vp_width = dml_min(full_src_vp_width, src_hactive_half);
+                       vp_width = (unsigned int)dml_min(full_src_vp_width, src_hactive_half);
                        dml_print("DML_DLG: %s: vp_width = %d\n", __func__, vp_width);
                } else {
-                       vp_height = dml_min(full_src_vp_width, src_hactive_half);
+                       vp_height = (unsigned int)dml_min(full_src_vp_width, src_hactive_half);
                        dml_print("DML_DLG: %s: vp_height = %d\n", __func__, vp_height);
 
                }
@@ -1058,11 +1058,11 @@ static void dml_rq_dlg_get_dlg_params(
        if (dout->dsc_enable) {
                double dsc_delay = get_dsc_delay(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
-               dispclk_delay_subtotal += dsc_delay;
+               dispclk_delay_subtotal += (unsigned int)dsc_delay;
        }
 
-       pixel_rate_delay_subtotal = dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
-                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz;
+       pixel_rate_delay_subtotal = (unsigned int)(dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
+                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz);
 
        vstartup_start = dst->vstartup_start;
        if (interlaced) {
@@ -1105,8 +1105,8 @@ static void dml_rq_dlg_get_dlg_params(
                                min_vblank);
        }
 
-       dst_x_after_scaler = get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
-       dst_y_after_scaler = get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_x_after_scaler = (unsigned int)get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_y_after_scaler = (unsigned int)get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
        dml_print("DML_DLG: %s: htotal                                 = %d\n", __func__, htotal);
        dml_print(
@@ -1446,7 +1446,7 @@ static void dml_rq_dlg_get_dlg_params(
 
        // Assignment to register structures
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq; // in terms of refclk
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq); // in terms of refclk
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int)dml_pow(2, 13));
        disp_dlg_regs->dst_y_prefetch = (unsigned int) (dst_y_prefetch * dml_pow(2, 2));
        disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int) (dst_y_per_vm_vblank * dml_pow(2, 2));
@@ -1506,23 +1506,23 @@ static void dml_rq_dlg_get_dlg_params(
                                * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c;
        }
 
-       disp_dlg_regs->refcyc_per_vm_group_vblank   = get_refcyc_per_vm_group_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;
-       disp_dlg_regs->refcyc_per_vm_group_flip     = get_refcyc_per_vm_group_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;
-       disp_dlg_regs->refcyc_per_vm_req_vblank     = get_refcyc_per_vm_req_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);
-       disp_dlg_regs->refcyc_per_vm_req_flip       = get_refcyc_per_vm_req_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);
+       disp_dlg_regs->refcyc_per_vm_group_vblank   = (unsigned int)(get_refcyc_per_vm_group_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);
+       disp_dlg_regs->refcyc_per_vm_group_flip     = (unsigned int)(get_refcyc_per_vm_group_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);
+       disp_dlg_regs->refcyc_per_vm_req_vblank     = (unsigned int)(get_refcyc_per_vm_req_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));
+       disp_dlg_regs->refcyc_per_vm_req_flip       = (unsigned int)(get_refcyc_per_vm_req_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));
 
        // Clamp to max for now
        if (disp_dlg_regs->refcyc_per_vm_group_vblank >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)dml_pow(2, 23) - 1;
 
        if (disp_dlg_regs->refcyc_per_vm_group_flip >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_flip = (unsigned int)dml_pow(2, 23) - 1;
 
        if (disp_dlg_regs->refcyc_per_vm_req_vblank >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)dml_pow(2, 23) - 1;
 
        if (disp_dlg_regs->refcyc_per_vm_req_flip >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_flip = (unsigned int)dml_pow(2, 23) - 1;
        disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int) ((double) dpte_row_height_l
                        / (double) vratio_l * dml_pow(2, 2));
        ASSERT(disp_dlg_regs->dst_y_per_pte_row_nom_l < (unsigned int)dml_pow(2, 17));
@@ -1553,12 +1553,12 @@ static void dml_rq_dlg_get_dlg_params(
                        / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) dpte_groups_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)dml_pow(2, 23) - 1;
        disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int) ((double) meta_row_height_l
                        / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) meta_chunks_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)dml_pow(2, 23) - 1;
 
        if (dual_plane) {
                disp_dlg_regs->refcyc_per_pte_group_nom_c =
@@ -1566,7 +1566,7 @@ static void dml_rq_dlg_get_dlg_params(
                                                * (double) htotal * ref_freq_to_pix_freq
                                                / (double) dpte_groups_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)dml_pow(2, 23) - 1;
 
                // TODO: Is this the right calculation? Does htotal need to be halved?
                disp_dlg_regs->refcyc_per_meta_chunk_nom_c =
@@ -1574,7 +1574,7 @@ static void dml_rq_dlg_get_dlg_params(
                                                * (double) htotal * ref_freq_to_pix_freq
                                                / (double) meta_chunks_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)dml_pow(2, 23) - 1;
        }
 
        disp_dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int) dml_floor(
@@ -1628,7 +1628,7 @@ static void dml_rq_dlg_get_dlg_params(
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
@@ -1668,7 +1668,7 @@ void dml21_rq_dlg_get_dlg_reg(
                        mode_lib,
                        e2e_pipe_param,
                        num_pipes);
-       dlg_sys_param.total_flip_bytes = get_total_immediate_flip_bytes(
+       dlg_sys_param.total_flip_bytes = (unsigned int)get_total_immediate_flip_bytes(
                        mode_lib,
                        e2e_pipe_param,
                        num_pipes);
@@ -1734,7 +1734,7 @@ static void calculate_ttu_cursor(
                                cur_req_size = 256;
                }
 
-               cur_req_width = (double) cur_req_size / ((double) cur_bit_per_pixel / 8.0);
+               cur_req_width = (unsigned int)((double) cur_req_size / ((double) cur_bit_per_pixel / 8.0));
                cur_width_ub = dml_ceil((double) cur_src_width / (double) cur_req_width, 1)
                                * (double) cur_req_width;
                cur_req_per_width = cur_width_ub / (double) cur_req_width;
index 354641312accd7b3d49cd7be6a35edfde1493751..88e0805f0040c56eae4f9ac1e864ee33bb025344 100644 (file)
@@ -279,11 +279,11 @@ void dcn30_fpu_set_mcif_arb_params(struct mcif_arb_params *wb_arb_params,
        dc_assert_fp_enabled();
 
        for (i = 0; i < ARRAY_SIZE(wb_arb_params->cli_watermark); i++) {
-               wb_arb_params->cli_watermark[i] = get_wm_writeback_urgent(dml, pipes, pipe_cnt) * 1000;
-               wb_arb_params->pstate_watermark[i] = get_wm_writeback_dram_clock_change(dml, pipes, pipe_cnt) * 1000;
+               wb_arb_params->cli_watermark[i] = (unsigned int)(get_wm_writeback_urgent(dml, pipes, pipe_cnt) * 1000);
+               wb_arb_params->pstate_watermark[i] = (unsigned int)(get_wm_writeback_dram_clock_change(dml, pipes, pipe_cnt) * 1000);
        }
 
-       wb_arb_params->dram_speed_change_duration = dml->vba.WritebackAllowDRAMClockChangeEndPosition[cur_pipe] * pipes[0].clks_cfg.refclk_mhz; /* num_clock_cycles = us * MHz */
+       wb_arb_params->dram_speed_change_duration = (unsigned int)(dml->vba.WritebackAllowDRAMClockChangeEndPosition[cur_pipe] * pipes[0].clks_cfg.refclk_mhz); /* num_clock_cycles = us * MHz */
 }
 
 void dcn30_fpu_update_soc_for_wm_a(struct dc *dc, struct dc_state *context)
@@ -367,14 +367,14 @@ void dcn30_fpu_calculate_wm_and_dlg(
                context->bw_ctx.dml.soc.sr_enter_plus_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_B].dml_input.sr_enter_plus_exit_time_us;
                context->bw_ctx.dml.soc.sr_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_B].dml_input.sr_exit_time_us;
        }
-       context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
 
        pipes[0].clks_cfg.voltage = vlevel;
        pipes[0].clks_cfg.dcfclk_mhz = dcfclk;
@@ -406,7 +406,7 @@ void dcn30_fpu_calculate_wm_and_dlg(
         * pstate latency overridden to 5us
         */
        if (dc->clk_mgr->bw_params->wm_table.nv_entries[WM_C].valid) {
-               unsigned int min_dram_speed_mts = context->bw_ctx.dml.vba.DRAMSpeed;
+               unsigned int min_dram_speed_mts = (unsigned int)context->bw_ctx.dml.vba.DRAMSpeed;
                unsigned int min_dram_speed_mts_margin = 160;
 
                context->bw_ctx.dml.soc.dram_clock_change_latency_us =
@@ -437,14 +437,14 @@ void dcn30_fpu_calculate_wm_and_dlg(
                context->bw_ctx.dml.soc.sr_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_C].dml_input.sr_exit_time_us;
        }
 
-       context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
 
        if (!pstate_en) {
                /* The only difference between A and C is p-state latency, if p-state is not supported we want to
@@ -460,17 +460,17 @@ void dcn30_fpu_calculate_wm_and_dlg(
                 * Set A calculated last so that following calculations are based on Set A
                 */
                dc->res_pool->funcs->update_soc_for_wm_a(dc, context);
-               context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+               context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
        }
 
-       context->perf_params.stutter_period_us = context->bw_ctx.dml.vba.StutterPeriod;
+       context->perf_params.stutter_period_us = (unsigned int)context->bw_ctx.dml.vba.StutterPeriod;
 
        /* Make set D = set A until set D is enabled */
        context->bw_ctx.bw.dcn.watermarks.d = context->bw_ctx.bw.dcn.watermarks.a;
@@ -532,13 +532,13 @@ void dcn30_fpu_update_max_clk(struct dc_bounding_box_max_clk *dcn30_bb_max_clk)
                dc_assert_fp_enabled();
 
                if (!dcn30_bb_max_clk->max_dcfclk_mhz)
-                       dcn30_bb_max_clk->max_dcfclk_mhz = dcn3_0_soc.clock_limits[0].dcfclk_mhz;
+                       dcn30_bb_max_clk->max_dcfclk_mhz = (int)dcn3_0_soc.clock_limits[0].dcfclk_mhz;
                if (!dcn30_bb_max_clk->max_dispclk_mhz)
-                       dcn30_bb_max_clk->max_dispclk_mhz = dcn3_0_soc.clock_limits[0].dispclk_mhz;
+                       dcn30_bb_max_clk->max_dispclk_mhz = (int)dcn3_0_soc.clock_limits[0].dispclk_mhz;
                if (!dcn30_bb_max_clk->max_dppclk_mhz)
-                       dcn30_bb_max_clk->max_dppclk_mhz = dcn3_0_soc.clock_limits[0].dppclk_mhz;
+                       dcn30_bb_max_clk->max_dppclk_mhz = (int)dcn3_0_soc.clock_limits[0].dppclk_mhz;
                if (!dcn30_bb_max_clk->max_phyclk_mhz)
-                       dcn30_bb_max_clk->max_phyclk_mhz = dcn3_0_soc.clock_limits[0].phyclk_mhz;
+                       dcn30_bb_max_clk->max_phyclk_mhz = (int)dcn3_0_soc.clock_limits[0].phyclk_mhz;
 }
 
 void dcn30_fpu_get_optimal_dcfclk_fclk_for_uclk(unsigned int uclk_mts,
@@ -557,12 +557,12 @@ void dcn30_fpu_get_optimal_dcfclk_fclk_for_uclk(unsigned int uclk_mts,
        bw_from_dram = (bw_from_dram1 < bw_from_dram2) ? bw_from_dram1 : bw_from_dram2;
 
        if (optimal_fclk)
-               *optimal_fclk = bw_from_dram /
-               (dcn3_0_soc.fabric_datapath_to_dcn_data_return_bytes * (dcn3_0_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_fclk = (unsigned int)(bw_from_dram /
+               (dcn3_0_soc.fabric_datapath_to_dcn_data_return_bytes * (dcn3_0_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 
        if (optimal_dcfclk)
-               *optimal_dcfclk =  bw_from_dram /
-               (dcn3_0_soc.return_bus_width_bytes * (dcn3_0_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_dcfclk = (unsigned int)(bw_from_dram /
+               (dcn3_0_soc.return_bus_width_bytes * (dcn3_0_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 }
 
 void dcn30_fpu_update_bw_bounding_box(struct dc *dc,
index 634982173190e0a559c3dc21abcb0b5ef89beea6..01e37fc27518b12c888004eb9d1c82d5132c808a 100644 (file)
@@ -630,7 +630,7 @@ static unsigned int dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -866,13 +866,13 @@ static bool CalculatePrefetchSchedule(
        v->Tdmdl_vm[k] = (v->DynamicMetadataEnable[k] == true && v->DynamicMetadataVMEnabled == true && v->GPUVMEnable == true ? TWait + Tvm_trips : 0);
 
        if (myPipe->ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + myPipe->NumberOfCursors * v->DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + myPipe->NumberOfCursors * v->DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = v->DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)v->DISPCLKDelaySubtotal;
 
        if (myPipe->DPPCLK == 0.0 || myPipe->DISPCLK == 0.0)
                return true;
@@ -1302,14 +1302,14 @@ static void CalculateDCCConfiguration(
                horz_div_c = 0;
 
        if (BytePerPixelC == 0) {
-               swath_buf_size = DETBufferSize / 2 - 2 * 256;
+               swath_buf_size = (long)(DETBufferSize / 2 - 2 * 256);
                detile_buf_vp_horz_limit = (double) swath_buf_size
                                / ((double) RequestHeight256ByteLuma * BytePerPixelY
                                                / (1 + horz_div_l));
                detile_buf_vp_vert_limit = (double) swath_buf_size
                                / (256.0 / RequestHeight256ByteLuma / (1 + vert_div_l));
        } else {
-               swath_buf_size = DETBufferSize / 2 - 2 * 2 * 256;
+               swath_buf_size = (long)(DETBufferSize / 2 - 2 * 2 * 256);
                detile_buf_vp_horz_limit = (double) swath_buf_size
                                / ((double) RequestHeight256ByteLuma * BytePerPixelY
                                                / (1 + horz_div_l)
@@ -1332,8 +1332,8 @@ static void CalculateDCCConfiguration(
 
        MAS_vp_horz_limit = 5760;
        MAS_vp_vert_limit = (BytePerPixelC > 0 ? 2880 : 5760);
-       max_vp_horz_width = dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
-       max_vp_vert_height = dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
+       max_vp_horz_width = (long)dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
+       max_vp_vert_height = (long)dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
        eff_surf_width_l =
                        (SurfaceWidthLuma > max_vp_horz_width ? max_vp_horz_width : SurfaceWidthLuma);
        eff_surf_width_c = eff_surf_width_l / (1 + yuv420);
@@ -1354,10 +1354,10 @@ static void CalculateDCCConfiguration(
        }
 
        if (SourcePixelFormat == dm_420_10) {
-               full_swath_bytes_horz_wc_l = dml_ceil(full_swath_bytes_horz_wc_l * 2 / 3, 256);
-               full_swath_bytes_horz_wc_c = dml_ceil(full_swath_bytes_horz_wc_c * 2 / 3, 256);
-               full_swath_bytes_vert_wc_l = dml_ceil(full_swath_bytes_vert_wc_l * 2 / 3, 256);
-               full_swath_bytes_vert_wc_c = dml_ceil(full_swath_bytes_vert_wc_c * 2 / 3, 256);
+               full_swath_bytes_horz_wc_l = (long)dml_ceil(full_swath_bytes_horz_wc_l * 2 / 3, 256);
+               full_swath_bytes_horz_wc_c = (long)dml_ceil(full_swath_bytes_horz_wc_c * 2 / 3, 256);
+               full_swath_bytes_vert_wc_l = (long)dml_ceil(full_swath_bytes_vert_wc_l * 2 / 3, 256);
+               full_swath_bytes_vert_wc_c = (long)dml_ceil(full_swath_bytes_vert_wc_c * 2 / 3, 256);
        }
 
        if (2 * full_swath_bytes_horz_wc_l + 2 * full_swath_bytes_horz_wc_c <= DETBufferSize) {
@@ -1537,14 +1537,14 @@ static double CalculatePrefetchSourceLines(
 
        if (!mode_lib->vba.IgnoreViewportPositioning) {
 
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0;
+               *MaxNumSwath = (unsigned int)(dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 2) % SwathHeight;
                else
                        MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 2)
                                        % SwathHeight;
-               MaxPartialSwath = dml_max(1U, MaxPartialSwath);
+               MaxPartialSwath = (unsigned int)dml_max(1U, MaxPartialSwath);
 
        } else {
 
@@ -1552,7 +1552,7 @@ static double CalculatePrefetchSourceLines(
                        dml_print(
                                        "WARNING DML: using viewport y position of 0 even though actual viewport y position is non-zero in prefetch source lines calculation\n");
 
-               *MaxNumSwath = dml_ceil(*VInitPreFill / SwathHeight, 1);
+               *MaxNumSwath = (unsigned int)dml_ceil(*VInitPreFill / SwathHeight, 1);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 1) % SwathHeight;
@@ -1617,9 +1617,9 @@ static unsigned int CalculateVMAndRowBytes(
                if (HostVMMinPageSize < 2048) {
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                } else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576) {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                } else {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
                }
        }
 
@@ -1627,19 +1627,19 @@ static unsigned int CalculateVMAndRowBytes(
        *MetaRequestWidth = 8 * BlockWidth256Bytes;
        if (ScanDirection != dm_vert) {
                *meta_row_height = *MetaRequestHeight;
-               *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestWidth)
-                               + *MetaRequestWidth;
-               *MetaRowByte = *meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0;
+               *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestWidth)
+                               + *MetaRequestWidth);
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0);
        } else {
                *meta_row_height = *MetaRequestWidth;
-               *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestHeight)
-                               + *MetaRequestHeight;
-               *MetaRowByte = *meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0;
+               *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestHeight)
+                               + *MetaRequestHeight);
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0);
        }
-       DCCMetaSurfaceBytes = DCCMetaPitch * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes)
-                                       + 64 * BlockHeight256Bytes) * BytePerPixel / 256;
+       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes)
+                                       + 64 * BlockHeight256Bytes) * BytePerPixel / 256);
        if (GPUVMEnable == true) {
-               *MetaPTEBytesFrame = (dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) / (8 * 4.0 * 1024), 1) + 1) * 64;
+               *MetaPTEBytesFrame = (unsigned int)((dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) / (8 * 4.0 * 1024), 1) + 1) * 64);
                MPDEBytesFrame = 128 * (mode_lib->vba.GPUVMMaxPageTableLevels - 1);
        } else {
                *MetaPTEBytesFrame = 0;
@@ -1663,9 +1663,9 @@ static unsigned int CalculateVMAndRowBytes(
 
        if (GPUVMEnable == true && mode_lib->vba.GPUVMMaxPageTableLevels > 1) {
                if (ScanDirection != dm_vert) {
-                       *DPDE0BytesFrame = 64 * (dml_ceil(((Pitch * (dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1);
+                       *DPDE0BytesFrame = (unsigned int)(64 * (dml_ceil(((Pitch * (dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1));
                } else {
-                       *DPDE0BytesFrame = 64 * (dml_ceil(((Pitch * (dml_ceil((double) SwathWidth - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1);
+                       *DPDE0BytesFrame = (unsigned int)(64 * (dml_ceil(((Pitch * (dml_ceil((double) SwathWidth - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes) / (8 * 2097152), 1) + 1));
                }
                ExtraDPDEBytesFrame = 128 * (mode_lib->vba.GPUVMMaxPageTableLevels - 2);
        } else {
@@ -1683,7 +1683,7 @@ static unsigned int CalculateVMAndRowBytes(
        if (SurfaceTiling == dm_sw_linear) {
                PixelPTEReqHeightPTEs = 1;
                *PixelPTEReqHeight = 1;
-               *PixelPTEReqWidth = 32768.0 / BytePerPixel;
+               *PixelPTEReqWidth = (unsigned int)(32768.0 / BytePerPixel);
                *PTERequestSize = 64;
                FractionOfPTEReturnDrop = 0;
        } else if (GPUVMMinPageSize == 4 && MacroTileSizeBytes > 4096) {
@@ -1704,16 +1704,16 @@ static unsigned int CalculateVMAndRowBytes(
                if (PTEBufferSizeInRequests == 0)
                        *dpte_row_height = 1;
                else
-                       *dpte_row_height = dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
-               *dpte_row_width_ub = (dml_ceil(((double) SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+                       *dpte_row_height = (unsigned int)dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
+               *dpte_row_width_ub = (unsigned int)((dml_ceil(((double) SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else if (ScanDirection != dm_vert) {
                *dpte_row_height = *PixelPTEReqHeight;
-               *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+               *dpte_row_width_ub = (unsigned int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else {
-               *dpte_row_height = dml_min(*PixelPTEReqWidth, *MacroTileWidth);
-               *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight;
+               *dpte_row_height = (unsigned int)dml_min(*PixelPTEReqWidth, *MacroTileWidth);
+               *dpte_row_width_ub = (unsigned int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqHeight * *PTERequestSize;
        }
        if (*PixelPTEBytesPerRow * (1 - FractionOfPTEReturnDrop)
@@ -1793,9 +1793,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                v->WritebackHTaps[k],
                                                v->WritebackVTaps[k],
                                                v->WritebackSourceWidth[k],
-                                               v->WritebackDestinationWidth[k],
+                                               (long)v->WritebackDestinationWidth[k],
                                                v->HTotal[k],
-                                               v->WritebackLineBufferSize));
+                                               (unsigned int)v->WritebackLineBufferSize));
                }
        }
 
@@ -2002,7 +2002,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        v->DPPCLK,
                        v->ReadBandwidthPlaneLuma,
                        v->ReadBandwidthPlaneChroma,
-                       v->ReturnBusWidth,
+                       (int)v->ReturnBusWidth,
                        &v->DCFCLKDeepSleep);
 
        // DSCCLK
@@ -2038,7 +2038,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_disabled) {
                                v->DSCDelay[k] = dscceComputeDelay(v->DSCInputBitPerComponent[k],
                                                BPP,
-                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
                                                v->NumberOfDSCSlices[k],
                                                v->OutputFormat[k],
                                                v->Output[k])
@@ -2046,21 +2046,21 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        } else if (v->ODMCombineEnabled[k] == dm_odm_combine_mode_2to1) {
                                v->DSCDelay[k] = 2 * dscceComputeDelay(v->DSCInputBitPerComponent[k],
                                                BPP,
-                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
-                                               v->NumberOfDSCSlices[k] / 2.0,
+                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                               (unsigned int)(v->NumberOfDSCSlices[k] / 2.0),
                                                v->OutputFormat[k],
                                                v->Output[k])
                                        + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
                        } else {
                                v->DSCDelay[k] = 4 * dscceComputeDelay(v->DSCInputBitPerComponent[k],
                                                BPP,
-                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
-                                               v->NumberOfDSCSlices[k] / 4.0,
+                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                               (unsigned int)(v->NumberOfDSCSlices[k] / 4.0),
                                                v->OutputFormat[k],
                                                v->Output[k])
                                        + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
                        }
-                       v->DSCDelay[k] = v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
+                       v->DSCDelay[k] = (unsigned int)(v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k]);
                } else {
                        v->DSCDelay[k] = 0;
                }
@@ -2102,13 +2102,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        v->SurfaceTiling[k],
                                        v->BytePerPixelC[k],
                                        v->SourceScan[k],
-                                       v->SwathWidthC[k],
+                                       (unsigned int)v->SwathWidthC[k],
                                        v->ViewportHeightChroma[k],
                                        v->GPUVMEnable,
                                        v->HostVMEnable,
                                        v->HostVMMaxNonCachedPageTableLevels,
-                                       v->GPUVMMinPageSize,
-                                       v->HostVMMinPageSize,
+                                       (unsigned int)v->GPUVMMinPageSize,
+                                       (unsigned int)v->HostVMMinPageSize,
                                        v->PTEBufferSizeInRequestsForChroma,
                                        v->PitchC[k],
                                        v->DCCMetaPitchC[k],
@@ -2159,13 +2159,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->SurfaceTiling[k],
                                v->BytePerPixelY[k],
                                v->SourceScan[k],
-                               v->SwathWidthY[k],
+                               (unsigned int)v->SwathWidthY[k],
                                v->ViewportHeight[k],
                                v->GPUVMEnable,
                                v->HostVMEnable,
                                v->HostVMMaxNonCachedPageTableLevels,
-                               v->GPUVMMinPageSize,
-                               v->HostVMMinPageSize,
+                               (unsigned int)v->GPUVMMinPageSize,
+                               (unsigned int)v->HostVMMinPageSize,
                                v->PTEBufferSizeInRequestsForLuma,
                                v->PitchY[k],
                                v->DCCMetaPitchY[k],
@@ -2232,13 +2232,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
        }
 
 
-       ReorderBytes = v->NumberOfChannels * dml_max3(
+       ReorderBytes = (long)(v->NumberOfChannels * dml_max3(
                v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-               v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
+               v->UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
        v->UrgentExtraLatency = CalculateExtraLatency(
-               v->RoundTripPingLatencyCycles,
+               (long)v->RoundTripPingLatencyCycles,
                ReorderBytes,
                v->DCFCLK,
                v->TotalActiveDPP,
@@ -2266,9 +2266,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                        v->WritebackHRatio[k],
                                                                        v->WritebackVRatio[k],
                                                                        v->WritebackVTaps[k],
-                                                                       v->WritebackDestinationWidth[k],
-                                                                       v->WritebackDestinationHeight[k],
-                                                                       v->WritebackSourceHeight[k],
+                                                                       (long)v->WritebackDestinationWidth[k],
+                                                                       (long)v->WritebackDestinationHeight[k],
+                                                                       (long)v->WritebackSourceHeight[k],
                                                                        v->HTotal[k]) / v->DISPCLK;
                        } else
                                v->WritebackDelay[v->VoltageLevel][k] = 0;
@@ -2281,9 +2281,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                                        v->WritebackHRatio[j],
                                                                                        v->WritebackVRatio[j],
                                                                                        v->WritebackVTaps[j],
-                                                                                       v->WritebackDestinationWidth[j],
-                                                                                       v->WritebackDestinationHeight[j],
-                                                                                       v->WritebackSourceHeight[j],
+                                                                                       (long)v->WritebackDestinationWidth[j],
+                                                                                       (long)v->WritebackDestinationHeight[j],
+                                                                                       (long)v->WritebackSourceHeight[j],
                                                                                        v->HTotal[k]) / v->DISPCLK);
                                }
                        }
@@ -2296,12 +2296,12 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->WritebackDelay[v->VoltageLevel][k] = v->WritebackDelay[v->VoltageLevel][j];
 
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
-               v->MaxVStartupLines[k] = v->VTotal[k] - v->VActive[k] - dml_max(1.0, dml_ceil((double) v->WritebackDelay[v->VoltageLevel][k] / (v->HTotal[k] / v->PixelClock[k]), 1));
+               v->MaxVStartupLines[k] = (unsigned int)(v->VTotal[k] - v->VActive[k] - dml_max(1.0, dml_ceil((double) v->WritebackDelay[v->VoltageLevel][k] / (v->HTotal[k] / v->PixelClock[k]), 1)));
        }
 
        v->MaximumMaxVStartupLines = 0;
        for (k = 0; k < v->NumberOfActivePlanes; ++k)
-               v->MaximumMaxVStartupLines = dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
+               v->MaximumMaxVStartupLines = (unsigned int)dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
 
        if (v->DRAMClockChangeLatencyOverride > 0.0) {
                v->FinalDRAMClockChangeLatency = v->DRAMClockChangeLatencyOverride;
@@ -2354,21 +2354,21 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        &myPipe,
                                        v->DSCDelay[k],
                                        (unsigned int) (v->SwathWidthY[k] / v->HRatio[k]),
-                                       dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
+                                       (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
                                        v->MaxVStartupLines[k],
                                        v->UrgentLatency,
                                        v->UrgentExtraLatency,
                                        v->TCalc,
-                                       v->PDEAndMetaPTEBytesFrame[k],
-                                       v->MetaRowByte[k],
-                                       v->PixelPTEBytesPerRow[k],
+                                       (unsigned int)v->PDEAndMetaPTEBytesFrame[k],
+                                       (unsigned int)v->MetaRowByte[k],
+                                       (unsigned int)v->PixelPTEBytesPerRow[k],
                                        v->PrefetchSourceLinesY[k],
-                                       v->SwathWidthY[k],
+                                       (unsigned int)v->SwathWidthY[k],
                                        v->BytePerPixelY[k],
                                        v->VInitPreFillY[k],
                                        v->MaxNumSwathY[k],
                                        v->PrefetchSourceLinesC[k],
-                                       v->SwathWidthC[k],
+                                       (unsigned int)v->SwathWidthC[k],
                                        v->VInitPreFillC[k],
                                        v->MaxNumSwathC[k],
                                        v->swath_width_luma_ub[k],
@@ -2389,17 +2389,17 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                double TotalRepeaterDelayTime = v->MaxInterDCNTileRepeaters * (2 / v->DPPCLK[k] + 3 / v->DISPCLK);
                                v->VUpdateWidthPix[k] = (14 / v->DCFCLKDeepSleep + 12 / v->DPPCLK[k] + TotalRepeaterDelayTime) * v->PixelClock[k];
                                v->VReadyOffsetPix[k] = dml_max(150.0 / v->DPPCLK[k], TotalRepeaterDelayTime + 20 / v->DCFCLKDeepSleep + 10 / v->DPPCLK[k]) * v->PixelClock[k];
-                               v->VUpdateOffsetPix[k] = dml_ceil(v->HTotal[k] / 4.0, 1);
-                               v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
+                               v->VUpdateOffsetPix[k] = (unsigned int)dml_ceil(v->HTotal[k] / 4.0, 1);
+                               v->VStartup[k] = (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
                        } else {
                                int x = v->BlendingAndTiming[k];
                                double TotalRepeaterDelayTime = v->MaxInterDCNTileRepeaters * (2 / v->DPPCLK[k] + 3 / v->DISPCLK);
                                v->VUpdateWidthPix[k] = (14 / v->DCFCLKDeepSleep + 12 / v->DPPCLK[k] + TotalRepeaterDelayTime) * v->PixelClock[x];
                                v->VReadyOffsetPix[k] = dml_max(150.0 / v->DPPCLK[k], TotalRepeaterDelayTime + 20 / v->DCFCLKDeepSleep + 10 / v->DPPCLK[k]) * v->PixelClock[x];
-                               v->VUpdateOffsetPix[k] = dml_ceil(v->HTotal[x] / 4.0, 1);
+                               v->VUpdateOffsetPix[k] = (unsigned int)dml_ceil(v->HTotal[x] / 4.0, 1);
                                if (!v->MaxVStartupLines[x])
                                        v->MaxVStartupLines[x] = v->MaxVStartupLines[k];
-                               v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[x]);
+                               v->VStartup[k] = (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[x]);
                        }
                }
 
@@ -2524,7 +2524,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
                        v->TotImmediateFlipBytes = 0;
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
-                               v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]);
+                               v->TotImmediateFlipBytes = (unsigned int)(v->TotImmediateFlipBytes + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]));
                        }
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                                CalculateFlipSchedule(
@@ -3590,9 +3590,9 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->WritebackHTaps[k],
                                                        v->WritebackVTaps[k],
                                                        v->WritebackSourceWidth[k],
-                                                       v->WritebackDestinationWidth[k],
+                                                       (long)v->WritebackDestinationWidth[k],
                                                        v->HTotal[k],
-                                                       v->WritebackLineBufferSize));
+                                                       (unsigned int)v->WritebackLineBufferSize));
                }
        }
        for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
@@ -3631,15 +3631,15 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                int MaximumSwathWidthSupportChroma = 0;
 
                if (v->SurfaceTiling[k] == dm_sw_linear) {
-                       MaximumSwathWidthSupportLuma = 8192.0;
+                       MaximumSwathWidthSupportLuma = (int)8192.0;
                } else if (v->SourceScan[k] == dm_vert && v->BytePerPixelC[k] > 0) {
-                       MaximumSwathWidthSupportLuma = 2880.0;
+                       MaximumSwathWidthSupportLuma = (int)2880.0;
                } else {
-                       MaximumSwathWidthSupportLuma = 5760.0;
+                       MaximumSwathWidthSupportLuma = (int)5760.0;
                }
 
                if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) {
-                       MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma / 2.0;
+                       MaximumSwathWidthSupportChroma = (int)(MaximumSwathWidthSupportLuma / 2.0);
                } else {
                        MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma;
                }
@@ -3837,7 +3837,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                v->DISPCLK_DPPCLK_Support[i][j] = false;
                                        }
                                }
-                               v->TotalNumberOfActiveDPP[i][j] = 0.0;
+                               v->TotalNumberOfActiveDPP[i][j] = (unsigned int)0.0;
                                for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
                                        v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + v->NoOfDPP[i][j][k];
                                }
@@ -3875,7 +3875,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                if (v->BlendingAndTiming[k] == k) {
                        if (v->PixelClockBackEnd[k] > 3200) {
-                               v->NumberOfDSCSlices[k] = dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
+                               v->NumberOfDSCSlices[k] = (unsigned int)dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
                        } else if (v->PixelClockBackEnd[k] > 1360) {
                                v->NumberOfDSCSlices[k] = 8;
                        } else if (v->PixelClockBackEnd[k] > 680) {
@@ -3932,7 +3932,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        if (v->PHYCLKPerState[i] >= 270.0) {
                                                v->Outbpp = TruncToValidBPP(
                                                                (1.0 - v->Downspreading / 100.0) * 2700,
-                                                               v->OutputLinkDPLanes[k],
+                                                               (int)v->OutputLinkDPLanes[k],
                                                                v->HTotal[k],
                                                                v->HActive[k],
                                                                v->PixelClockBackEnd[k],
@@ -3952,7 +3952,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 540.0) {
                                                v->Outbpp = TruncToValidBPP(
                                                                (1.0 - v->Downspreading / 100.0) * 5400,
-                                                               v->OutputLinkDPLanes[k],
+                                                               (int)v->OutputLinkDPLanes[k],
                                                                v->HTotal[k],
                                                                v->HActive[k],
                                                                v->PixelClockBackEnd[k],
@@ -3972,7 +3972,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 810.0) {
                                                v->Outbpp = TruncToValidBPP(
                                                                (1.0 - v->Downspreading / 100.0) * 8100,
-                                                               v->OutputLinkDPLanes[k],
+                                                               (int)v->OutputLinkDPLanes[k],
                                                                v->HTotal[k],
                                                                v->HActive[k],
                                                                v->PixelClockBackEnd[k],
@@ -3994,7 +3994,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        }
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 8100,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4073,7 +4073,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        v->DSCDelayPerState[i][k] = dscceComputeDelay(
                                                        v->DSCInputBitPerComponent[k],
                                                        v->BPP,
-                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                        v->NumberOfDSCSlices[k],
                                                        v->OutputFormat[k],
                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
@@ -4082,7 +4082,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        * dscceComputeDelay(
                                                                        v->DSCInputBitPerComponent[k],
                                                                        v->BPP,
-                                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                                        v->NumberOfDSCSlices[k] / 2,
                                                                        v->OutputFormat[k],
                                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
@@ -4091,7 +4091,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        * (dscceComputeDelay(
                                                                        v->DSCInputBitPerComponent[k],
                                                                        v->BPP,
-                                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                                        v->NumberOfDSCSlices[k] / 4,
                                                                        v->OutputFormat[k],
                                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
@@ -4163,8 +4163,8 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                                v->swath_width_luma_ub_all_states[i][j][k] = v->swath_width_luma_ub_this_state[k];
                                v->swath_width_chroma_ub_all_states[i][j][k] = v->swath_width_chroma_ub_this_state[k];
-                               v->SwathWidthYAllStates[i][j][k] = v->SwathWidthYThisState[k];
-                               v->SwathWidthCAllStates[i][j][k] = v->SwathWidthCThisState[k];
+                               v->SwathWidthYAllStates[i][j][k] = (unsigned int)v->SwathWidthYThisState[k];
+                               v->SwathWidthCAllStates[i][j][k] = (unsigned int)v->SwathWidthCThisState[k];
                                v->SwathHeightYAllStates[i][j][k] = v->SwathHeightYThisState[k];
                                v->SwathHeightCAllStates[i][j][k] = v->SwathHeightCThisState[k];
                                v->DETBufferSizeYAllStates[i][j][k] = v->DETBufferSizeYThisState[k];
@@ -4186,8 +4186,8 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
                                v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
                                v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
-                               v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
-                               v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
+                               v->DETBufferSizeYThisState[k] = (unsigned int)v->DETBufferSizeYAllStates[i][j][k];
+                               v->DETBufferSizeCThisState[k] = (unsigned int)v->DETBufferSizeCAllStates[i][j][k];
                        }
 
                        v->TotalNumberOfDCCActiveDPP[i][j] = 0;
@@ -4218,16 +4218,16 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->SurfaceTiling[k],
                                                        v->BytePerPixelC[k],
                                                        v->SourceScan[k],
-                                                       v->SwathWidthCThisState[k],
+                                                       (unsigned int)v->SwathWidthCThisState[k],
                                                        v->ViewportHeightChroma[k],
                                                        v->GPUVMEnable,
                                                        v->HostVMEnable,
                                                        v->HostVMMaxNonCachedPageTableLevels,
-                                                       v->GPUVMMinPageSize,
-                                                       v->HostVMMinPageSize,
+                                                       (unsigned int)v->GPUVMMinPageSize,
+                                                       (unsigned int)v->HostVMMinPageSize,
                                                        v->PTEBufferSizeInRequestsForChroma,
                                                        v->PitchC[k],
-                                                       0.0,
+                                                       (unsigned int)0,
                                                        &v->MacroTileWidthC[k],
                                                        &v->MetaRowBytesC,
                                                        &v->DPTEBytesPerRowC,
@@ -4260,8 +4260,8 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma;
                                        v->PTEBufferSizeInRequestsForChroma = 0;
                                        v->PDEAndMetaPTEBytesPerFrameC = 0.0;
-                                       v->MetaRowBytesC = 0.0;
-                                       v->DPTEBytesPerRowC = 0.0;
+                                       v->MetaRowBytesC = (unsigned int)0;
+                                       v->DPTEBytesPerRowC = (unsigned int)0;
                                        v->PrefetchLinesC[i][j][k] = 0.0;
                                        v->PTEBufferSizeNotExceededC[i][j][k] = true;
                                }
@@ -4274,13 +4274,13 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                v->SurfaceTiling[k],
                                                v->BytePerPixelY[k],
                                                v->SourceScan[k],
-                                               v->SwathWidthYThisState[k],
+                                               (unsigned int)v->SwathWidthYThisState[k],
                                                v->ViewportHeight[k],
                                                v->GPUVMEnable,
                                                v->HostVMEnable,
                                                v->HostVMMaxNonCachedPageTableLevels,
-                                               v->GPUVMMinPageSize,
-                                               v->HostVMMinPageSize,
+                                               (unsigned int)v->GPUVMMinPageSize,
+                                               (unsigned int)v->HostVMMinPageSize,
                                                v->PTEBufferSizeInRequestsForLuma,
                                                v->PitchY[k],
                                                v->DCCMetaPitchY[k],
@@ -4408,7 +4408,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        v->RequiredDPPCLKThisState,
                                        v->ReadBandwidthLuma,
                                        v->ReadBandwidthChroma,
-                                       v->ReturnBusWidth,
+                                       (int)v->ReturnBusWidth,
                                        &v->ProjectedDCFCLKDeepSleep[i][j]);
                }
        }
@@ -4426,9 +4426,9 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                v->WritebackHRatio[k],
                                                                                v->WritebackVRatio[k],
                                                                                v->WritebackVTaps[k],
-                                                                               v->WritebackDestinationWidth[k],
-                                                                               v->WritebackDestinationHeight[k],
-                                                                               v->WritebackSourceHeight[k],
+                                                                               (long)v->WritebackDestinationWidth[k],
+                                                                               (long)v->WritebackDestinationHeight[k],
+                                                                               (long)v->WritebackSourceHeight[k],
                                                                                v->HTotal[k]) / v->RequiredDISPCLK[i][j];
                                        } else {
                                                v->WritebackDelayTime[k] = 0.0;
@@ -4443,9 +4443,9 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                                        v->WritebackHRatio[m],
                                                                                                        v->WritebackVRatio[m],
                                                                                                        v->WritebackVTaps[m],
-                                                                                                       v->WritebackDestinationWidth[m],
-                                                                                                       v->WritebackDestinationHeight[m],
-                                                                                                       v->WritebackSourceHeight[m],
+                                                                                                       (long)v->WritebackDestinationWidth[m],
+                                                                                                       (long)v->WritebackDestinationHeight[m],
+                                                                                                       (long)v->WritebackSourceHeight[m],
                                                                                                        v->HTotal[m]) / v->RequiredDISPCLK[i][j]);
                                                }
                                        }
@@ -4467,11 +4467,11 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                }
        }
 
-       ReorderingBytes = v->NumberOfChannels
+       ReorderingBytes = (long)(v->NumberOfChannels
                        * dml_max3(
                                        v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly));
        v->FinalDRAMClockChangeLatency = (v->DRAMClockChangeLatencyOverride > 0 ? v->DRAMClockChangeLatencyOverride : v->DRAMClockChangeLatency);
 
        for (i = start_state; i < mode_lib->soc.num_states; ++i) {
@@ -4567,13 +4567,13 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
                                v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
                                v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
-                               v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
-                               v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
+                               v->DETBufferSizeYThisState[k] = (unsigned int)v->DETBufferSizeYAllStates[i][j][k];
+                               v->DETBufferSizeCThisState[k] = (unsigned int)v->DETBufferSizeCAllStates[i][j][k];
                                v->ODMCombineEnabled[k] = v->ODMCombineEnablePerState[i][k];
                        }
 
                        v->ExtraLatency = CalculateExtraLatency(
-                                       v->RoundTripPingLatencyCycles,
+                                       (long)v->RoundTripPingLatencyCycles,
                                        ReorderingBytes,
                                        v->DCFCLKState[i][j],
                                        v->TotalNumberOfActiveDPP[i][j],
@@ -4623,23 +4623,23 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib,
                                                        k,
                                                        &myPipe,
-                                                       v->DSCDelayPerState[i][k],
-                                                       v->SwathWidthYThisState[k] / v->HRatio[k],
-                                                       dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
-                                                       v->MaximumVStartup[i][j][k],
+                                                       (unsigned int)v->DSCDelayPerState[i][k],
+                                                       (unsigned int)(v->SwathWidthYThisState[k] / v->HRatio[k]),
+                                                       (unsigned int)dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
+                                                       (unsigned int)v->MaximumVStartup[i][j][k],
                                                        v->UrgLatency[i],
                                                        v->ExtraLatency,
                                                        v->TimeCalc,
-                                                       v->PDEAndMetaPTEBytesPerFrame[i][j][k],
-                                                       v->MetaRowBytes[i][j][k],
-                                                       v->DPTEBytesPerRow[i][j][k],
+                                                       (unsigned int)v->PDEAndMetaPTEBytesPerFrame[i][j][k],
+                                                       (unsigned int)v->MetaRowBytes[i][j][k],
+                                                       (unsigned int)v->DPTEBytesPerRow[i][j][k],
                                                        v->PrefetchLinesY[i][j][k],
-                                                       v->SwathWidthYThisState[k],
+                                                       (unsigned int)v->SwathWidthYThisState[k],
                                                        v->BytePerPixelY[k],
                                                        v->PrefillY[k],
                                                        v->MaxNumSwY[k],
                                                        v->PrefetchLinesC[i][j][k],
-                                                       v->SwathWidthCThisState[k],
+                                                       (unsigned int)v->SwathWidthCThisState[k],
                                                        v->PrefillC[k],
                                                        v->MaxNumSwC[k],
                                                        v->swath_width_luma_ub_this_state[k],
@@ -4751,10 +4751,10 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                                                                * v->UrgentBurstFactorChromaPre[k])
                                                                                                + v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
                                        }
-                                       v->TotImmediateFlipBytes = 0.0;
+                                       v->TotImmediateFlipBytes = (unsigned int)0;
                                        for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
-                                               v->TotImmediateFlipBytes = v->TotImmediateFlipBytes + v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k]
-                                                               + v->MetaRowBytes[i][j][k] + v->DPTEBytesPerRow[i][j][k]);
+                                               v->TotImmediateFlipBytes = (unsigned int)(v->TotImmediateFlipBytes + v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k]
+                                                               + v->MetaRowBytes[i][j][k] + v->DPTEBytesPerRow[i][j][k]));
                                        }
 
                                        for (k = 0; k <= v->NumberOfActivePlanes - 1; k++) {
@@ -5038,20 +5038,20 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
 
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
 
-               v->LBLatencyHidingSourceLinesY = dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1);
+               v->LBLatencyHidingSourceLinesY = (unsigned int)(dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1));
 
-               v->LBLatencyHidingSourceLinesC = dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1);
+               v->LBLatencyHidingSourceLinesC = (unsigned int)(dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1));
 
                EffectiveLBLatencyHidingY = v->LBLatencyHidingSourceLinesY / v->VRatio[k] * (v->HTotal[k] / v->PixelClock[k]);
 
                EffectiveLBLatencyHidingC = v->LBLatencyHidingSourceLinesC / v->VRatioChroma[k] * (v->HTotal[k] / v->PixelClock[k]);
 
                LinesInDETY[k] = (double) DETBufferSizeY[k] / BytePerPixelDETY[k] / SwathWidthY[k];
-               LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]);
+               LinesInDETYRoundedDownToSwath[k] = (unsigned int)dml_floor(LinesInDETY[k], SwathHeightY[k]);
                FullDETBufferingTimeY[k] = LinesInDETYRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k];
                if (BytePerPixelDETC[k] > 0) {
                        LinesInDETC = v->DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k];
-                       LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]);
+                       LinesInDETCRoundedDownToSwath = (unsigned int)dml_floor(LinesInDETC, SwathHeightC[k]);
                        FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (v->HTotal[k] / v->PixelClock[k]) / v->VRatioChroma[k];
                } else {
                        LinesInDETC = 0;
@@ -5380,7 +5380,7 @@ static void CalculatePixelDeliveryTimes(
 
        for (k = 0; k < NumberOfActivePlanes; ++k) {
                int cursor_req_per_width = 0;
-               cursor_req_per_width = dml_ceil(CursorWidth[k][0] * CursorBPP[k][0] / 256 / 8, 1);
+               cursor_req_per_width = (int)dml_ceil(CursorWidth[k][0] * CursorBPP[k][0] / 256 / 8, 1);
                if (NumberOfCursors[k] > 0) {
                        if (VRatio[k] <= 1) {
                                CursorRequestDeliveryTime[k] = CursorWidth[k][0] / HRatio[k] / PixelClock[k] / cursor_req_per_width;
@@ -5509,7 +5509,7 @@ static void CalculateMetaAndPTETimes(
                        } else {
                                meta_chunk_width_chroma = MetaChunkSize * 1024 * 256 / BytePerPixelC[k] / meta_row_height_chroma[k];
                                min_meta_chunk_width_chroma = MinMetaChunkSizeBytes * 256 / BytePerPixelC[k] / meta_row_height_chroma[k];
-                               meta_chunk_per_row_int_chroma = (double) meta_row_width_chroma[k] / meta_chunk_width_chroma;
+                               meta_chunk_per_row_int_chroma = (unsigned int)((double) meta_row_width_chroma[k] / meta_chunk_width_chroma);
                                meta_row_remainder_chroma = meta_row_width_chroma[k] % meta_chunk_width_chroma;
                                if (SourceScan[k] != dm_vert) {
                                        meta_chunk_threshold_chroma = 2 * min_meta_chunk_width_chroma - meta_req_width_chroma[k];
@@ -5542,7 +5542,7 @@ static void CalculateMetaAndPTETimes(
                        } else {
                                dpte_group_width_luma = dpte_group_bytes[k] / PTERequestSizeY[k] * PixelPTEReqHeightY[k];
                        }
-                       dpte_groups_per_row_luma_ub = dml_ceil(1.0 * dpte_row_width_luma_ub[k] / dpte_group_width_luma, 1);
+                       dpte_groups_per_row_luma_ub = (unsigned int)dml_ceil(1.0 * dpte_row_width_luma_ub[k] / dpte_group_width_luma, 1);
                        time_per_pte_group_nom_luma[k] = DST_Y_PER_PTE_ROW_NOM_L[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
                        time_per_pte_group_vblank_luma[k] = DestinationLinesToRequestRowInVBlank[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
                        time_per_pte_group_flip_luma[k] = DestinationLinesToRequestRowInImmediateFlip[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
@@ -5556,7 +5556,7 @@ static void CalculateMetaAndPTETimes(
                                } else {
                                        dpte_group_width_chroma = dpte_group_bytes[k] / PTERequestSizeC[k] * PixelPTEReqHeightC[k];
                                }
-                               dpte_groups_per_row_chroma_ub = dml_ceil(1.0 * dpte_row_width_chroma_ub[k] / dpte_group_width_chroma, 1);
+                               dpte_groups_per_row_chroma_ub = (unsigned int)dml_ceil(1.0 * dpte_row_width_chroma_ub[k] / dpte_group_width_chroma, 1);
                                time_per_pte_group_nom_chroma[k] = DST_Y_PER_PTE_ROW_NOM_C[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
                                time_per_pte_group_vblank_chroma[k] = DestinationLinesToRequestRowInVBlank[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
                                time_per_pte_group_flip_chroma[k] = DestinationLinesToRequestRowInImmediateFlip[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
@@ -5604,32 +5604,32 @@ static void CalculateVMGroupAndRequestTimes(
                if (GPUVMEnable == true && (DCCEnable[k] == true || GPUVMMaxPageTableLevels > 1)) {
                        if (DCCEnable[k] == false) {
                                if (BytePerPixelC[k] > 0) {
-                                       num_group_per_lower_vm_stage = dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k])
+                                       num_group_per_lower_vm_stage = (int)(dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k])
                                                / (double) (vm_group_bytes[k]), 1) + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k])
-                                                                       / (double) (vm_group_bytes[k]), 1);
+                                                                       / (double) (vm_group_bytes[k]), 1));
                                } else {
-                                       num_group_per_lower_vm_stage = dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k])
+                                       num_group_per_lower_vm_stage = (int)dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k])
                                                        / (double) (vm_group_bytes[k]), 1);
                                }
                        } else {
                                if (GPUVMMaxPageTableLevels == 1) {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k])
+                                               num_group_per_lower_vm_stage = (int)(dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k])
                                                        / (double) (vm_group_bytes[k]), 1) + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k])
-                                                                       / (double) (vm_group_bytes[k]), 1);
+                                                                       / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k])
+                                               num_group_per_lower_vm_stage = (int)dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k])
                                                        / (double) (vm_group_bytes[k]), 1);
                                        }
                                } else {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = 2 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                               num_group_per_lower_vm_stage = (int)(2 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
                                                                + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1)
                                                                + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                                               + (int)dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = 1 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)(1 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1));
                                        }
                                }
                        }
@@ -5962,21 +5962,21 @@ static void CalculateSwathAndDETConfiguration(
                        }
                }
 
-               RoundedUpMaxSwathSizeBytesY = swath_width_luma_ub[k] * BytePerPixDETY[k]
-                               * MaximumSwathHeightY[k];
-               RoundedUpMinSwathSizeBytesY = swath_width_luma_ub[k] * BytePerPixDETY[k]
-                               * MinimumSwathHeightY;
+               RoundedUpMaxSwathSizeBytesY = (long)(swath_width_luma_ub[k] * BytePerPixDETY[k]
+                               * MaximumSwathHeightY[k]);
+               RoundedUpMinSwathSizeBytesY = (long)(swath_width_luma_ub[k] * BytePerPixDETY[k]
+                               * MinimumSwathHeightY);
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesY = dml_ceil((double) RoundedUpMaxSwathSizeBytesY, 256);
-                       RoundedUpMinSwathSizeBytesY = dml_ceil((double) RoundedUpMinSwathSizeBytesY, 256);
+                       RoundedUpMaxSwathSizeBytesY = (long)dml_ceil((double) RoundedUpMaxSwathSizeBytesY, 256);
+                       RoundedUpMinSwathSizeBytesY = (long)dml_ceil((double) RoundedUpMinSwathSizeBytesY, 256);
                }
-               RoundedUpMaxSwathSizeBytesC = swath_width_chroma_ub[k] * BytePerPixDETC[k]
-                               * MaximumSwathHeightC[k];
-               RoundedUpMinSwathSizeBytesC = swath_width_chroma_ub[k] * BytePerPixDETC[k]
-                               * MinimumSwathHeightC;
+               RoundedUpMaxSwathSizeBytesC = (long)(swath_width_chroma_ub[k] * BytePerPixDETC[k]
+                               * MaximumSwathHeightC[k]);
+               RoundedUpMinSwathSizeBytesC = (long)(swath_width_chroma_ub[k] * BytePerPixDETC[k]
+                               * MinimumSwathHeightC);
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesC = dml_ceil(RoundedUpMaxSwathSizeBytesC, 256);
-                       RoundedUpMinSwathSizeBytesC = dml_ceil(RoundedUpMinSwathSizeBytesC, 256);
+                       RoundedUpMaxSwathSizeBytesC = (long)dml_ceil(RoundedUpMaxSwathSizeBytesC, 256);
+                       RoundedUpMinSwathSizeBytesC = (long)dml_ceil(RoundedUpMinSwathSizeBytesC, 256);
                }
 
                if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
@@ -6107,17 +6107,17 @@ static void CalculateSwathWidth(
                        SwathWidthC[k] = SwathWidthSingleDPPC[k];
                }
 
-               surface_width_ub_l  = dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
-               surface_height_ub_l = dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
+               surface_width_ub_l  = (long)dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
+               surface_height_ub_l = (long)dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
 
                if (SourceScan[k] != dm_vert) {
                        MaximumSwathHeightY[k] = Read256BytesBlockHeightY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockHeightC[k];
-                       swath_width_luma_ub[k] = dml_min(surface_width_ub_l, (long) dml_ceil(SwathWidthY[k] - 1,
+                       swath_width_luma_ub[k] = (unsigned int)dml_min(surface_width_ub_l, (long) dml_ceil(SwathWidthY[k] - 1,
                                        Read256BytesBlockWidthY[k]) + Read256BytesBlockWidthY[k]);
                        if (BytePerPixC[k] > 0) {
-                               surface_width_ub_c  = dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
-                               swath_width_chroma_ub[k] = dml_min(surface_width_ub_c, (long) dml_ceil(SwathWidthC[k] - 1,
+                               surface_width_ub_c  = (long)dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
+                               swath_width_chroma_ub[k] = (unsigned int)dml_min(surface_width_ub_c, (long) dml_ceil(SwathWidthC[k] - 1,
                                                Read256BytesBlockWidthC[k]) + Read256BytesBlockWidthC[k]);
                        } else {
                                swath_width_chroma_ub[k] = 0;
@@ -6125,11 +6125,11 @@ static void CalculateSwathWidth(
                } else {
                        MaximumSwathHeightY[k] = Read256BytesBlockWidthY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockWidthC[k];
-                       swath_width_luma_ub[k] = dml_min(surface_height_ub_l, (long) dml_ceil(SwathWidthY[k] - 1,
+                       swath_width_luma_ub[k] = (unsigned int)dml_min(surface_height_ub_l, (long) dml_ceil(SwathWidthY[k] - 1,
                                        Read256BytesBlockHeightY[k]) + Read256BytesBlockHeightY[k]);
                        if (BytePerPixC[k] > 0) {
-                               surface_height_ub_c = dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
-                               swath_width_chroma_ub[k] = dml_min(surface_height_ub_c, (long) dml_ceil(SwathWidthC[k] - 1,
+                               surface_height_ub_c = (long)dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
+                               swath_width_chroma_ub[k] = (unsigned int)dml_min(surface_height_ub_c, (long) dml_ceil(SwathWidthC[k] - 1,
                                                Read256BytesBlockHeightC[k]) + Read256BytesBlockHeightC[k]);
                        } else {
                                swath_width_chroma_ub[k] = 0;
@@ -6203,9 +6203,9 @@ static double CalculateExtraLatencyBytes(
                if (HostVMMinPageSize < 2048) {
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                } else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576) {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                } else {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
                }
        } else {
                HostVMInefficiencyFactor = 1;
index 472ac5ee165f1e79308493dda13eb8db260b71aa..a373df0aebf1ff5e9f780915b0f0942f419bb244 100644 (file)
@@ -120,13 +120,13 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib,
 
        extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_l), &rq_param->sizing.rq_l);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height),
-               1) - 3;
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height),
+               1) - 3);
 
        if (rq_param->yuv420) {
                extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_c), &rq_param->sizing.rq_c);
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height),
-                       1) - 3;
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height),
+                       1) - 3);
        }
 
        rq_regs->rq_regs_l.swath_height = dml_log2(rq_param->dlg.rq_l.swath_height);
@@ -146,11 +146,11 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib,
        if (rq_param->yuv420) {
        if ((double)rq_param->misc.rq_l.stored_swath_bytes
                        / (double)rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 64.0); // half to chroma
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple((unsigned int)((2.0 * detile_buf_size_in_bytes) / 3.0),
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple((unsigned int)((2.0 * detile_buf_size_in_bytes) / 3.0),
                                256,
-                               0) / 64.0; // 2/3 to chroma
+                               0) / 64.0); // 2/3 to chroma
                }
        }
        rq_regs->plane1_base_address = detile_buf_plane1_addr;
@@ -177,10 +177,10 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,
        full_swath_bytes_packed_c = rq_param->misc.rq_c.full_swath_bytes;
 
        if (rq_param->yuv420_10bpc) {
-               full_swath_bytes_packed_l = dml_round_to_multiple(rq_param->misc.rq_l.full_swath_bytes * 2.0 / 3.0,
+               full_swath_bytes_packed_l = (unsigned int)dml_round_to_multiple((unsigned int)(rq_param->misc.rq_l.full_swath_bytes * 2.0 / 3.0),
                        256,
                        1) + 256;
-               full_swath_bytes_packed_c = dml_round_to_multiple(rq_param->misc.rq_c.full_swath_bytes * 2.0 / 3.0,
+               full_swath_bytes_packed_c = (unsigned int)dml_round_to_multiple((unsigned int)(rq_param->misc.rq_c.full_swath_bytes * 2.0 / 3.0),
                        256,
                        1) + 256;
        }
@@ -400,8 +400,8 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
        // "/2" is like square root
        // blk is vertical biased
        if (tiling != dm_sw_linear)
-               log2_blk_height = log2_blk256_height
-               + dml_ceil((double)(log2_blk_bytes - 8) / 2.0, 1);
+               log2_blk_height = (unsigned int)(log2_blk256_height
+               + dml_ceil((double)(log2_blk_bytes - 8) / 2.0, 1));
        else
                log2_blk_height = 0;  // blk height of 1
 
@@ -573,7 +573,7 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
        if (surf_linear) {
                unsigned int dpte_row_height = 0;
 
-               log2_dpte_row_height_linear = dml_floor(dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch), 1);
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch), 1);
 
                dml_print("DML_DLG: %s: is_chroma                   = %d\n", __func__, is_chroma);
                dml_print("DML_DLG: %s: dpte_buf_in_pte_reqs        = %d\n", __func__, dpte_buf_in_pte_reqs);
@@ -645,7 +645,7 @@ static void get_meta_and_pte_attr(struct display_mode_lib *mode_lib,
 
        // since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
        // the upper bound for the dpte groups per row is as follows.
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil((double)dpte_row_width_ub / dpte_group_width,
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil((double)dpte_row_width_ub / dpte_group_width,
                1);
 }
 
@@ -670,7 +670,7 @@ static void get_surf_rq_param(struct display_mode_lib *mode_lib,
                vp_height = pipe_param->src.viewport_height_c;
                data_pitch = pipe_param->src.data_pitch_c;
                meta_pitch = pipe_param->src.meta_pitch_c;
-               surface_height = pipe_param->src.surface_height_y / 2.0;
+               surface_height = (unsigned int)(pipe_param->src.surface_height_y / 2.0);
        } else {
                vp_width = pipe_param->src.viewport_width / ppe;
                vp_height = pipe_param->src.viewport_height;
@@ -687,18 +687,18 @@ static void get_surf_rq_param(struct display_mode_lib *mode_lib,
                access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
                hactive_odm  = pipe_param->dest.hactive / ((unsigned int) pipe_param->dest.odm_combine*2);
                if (is_chroma) {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
-                       src_hactive_odm  = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width);
+                       src_hactive_odm  = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm);
                } else {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
-                       src_hactive_odm  = pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width);
+                       src_hactive_odm  = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm);
                }
 
                if (access_dir == 0) {
-                       vp_width = dml_min(full_src_vp_width, src_hactive_odm);
+                       vp_width = (unsigned int)dml_min(full_src_vp_width, src_hactive_odm);
                        dml_print("DML_DLG: %s: vp_width = %d\n", __func__, vp_width);
                } else {
-                       vp_height = dml_min(full_src_vp_width, src_hactive_odm);
+                       vp_height = (unsigned int)dml_min(full_src_vp_width, src_hactive_odm);
                        dml_print("DML_DLG: %s: vp_height = %d\n", __func__, vp_height);
                }
                dml_print("DML_DLG: %s: full_src_vp_width = %d\n", __func__, full_src_vp_width);
@@ -833,7 +833,7 @@ static void calculate_ttu_cursor(struct display_mode_lib *mode_lib,
                                cur_req_size = 256;
                }
 
-               cur_req_width = (double)cur_req_size / ((double)cur_bit_per_pixel / 8.0);
+               cur_req_width = (unsigned int)((double)cur_req_size / ((double)cur_bit_per_pixel / 8.0));
                cur_width_ub = dml_ceil((double)cur_src_width / (double)cur_req_width, 1)
                        * (double)cur_req_width;
                cur_req_per_width = cur_width_ub / (double)cur_req_width;
@@ -1123,11 +1123,11 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        if (dout->dsc_enable) {
                double dsc_delay = get_dsc_delay(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
-               dispclk_delay_subtotal += dsc_delay;
+               dispclk_delay_subtotal += (unsigned int)dsc_delay;
        }
 
-       pixel_rate_delay_subtotal = dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
-               + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz;
+       pixel_rate_delay_subtotal = (unsigned int)(dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz)
+               + (unsigned int)(dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz);
 
        vstartup_start = dst->vstartup_start;
        if (interlaced) {
@@ -1167,8 +1167,8 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                        min_vblank);
        }
 
-       dst_x_after_scaler = get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
-       dst_y_after_scaler = get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_x_after_scaler = (unsigned int)get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       dst_y_after_scaler = (int)get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
        if (dst_y_after_scaler < 0)
                dst_y_after_scaler = 0;
 
@@ -1552,7 +1552,7 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        // Assignment to register structures
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
        ASSERT(disp_dlg_regs->dst_y_after_scaler < (unsigned int)8);
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq; // in terms of refclk
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq); // in terms of refclk
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int)dml_pow(2, 13));
        disp_dlg_regs->dst_y_prefetch = (unsigned int)(dst_y_prefetch * dml_pow(2, 2));
        disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int)(dst_y_per_vm_vblank * dml_pow(2, 2));
@@ -1601,23 +1601,23 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                        * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c;
        }
 
-       disp_dlg_regs->refcyc_per_vm_group_vblank   = get_refcyc_per_vm_group_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;
-       disp_dlg_regs->refcyc_per_vm_group_flip  = get_refcyc_per_vm_group_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;
-       disp_dlg_regs->refcyc_per_vm_req_vblank  = get_refcyc_per_vm_req_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);
-       disp_dlg_regs->refcyc_per_vm_req_flip      = get_refcyc_per_vm_req_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);
+       disp_dlg_regs->refcyc_per_vm_group_vblank   = (unsigned int)(get_refcyc_per_vm_group_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);
+       disp_dlg_regs->refcyc_per_vm_group_flip  = (unsigned int)(get_refcyc_per_vm_group_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);
+       disp_dlg_regs->refcyc_per_vm_req_vblank  = (unsigned int)(get_refcyc_per_vm_req_vblank(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));
+       disp_dlg_regs->refcyc_per_vm_req_flip      = (unsigned int)(get_refcyc_per_vm_req_flip(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));
 
        // Clamp to max for now
        if (disp_dlg_regs->refcyc_per_vm_group_vblank >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_group_flip >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_req_vblank >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_req_flip >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int)((double)dpte_row_height_l
                / (double)vratio_l * dml_pow(2, 2));
@@ -1646,12 +1646,12 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                / (double)vratio_l * (double)htotal * ref_freq_to_pix_freq
                / (double)dpte_groups_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
        disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)((double)meta_row_height_l
                / (double)vratio_l * (double)htotal * ref_freq_to_pix_freq
                / (double)meta_chunks_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int)dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dual_plane) {
                disp_dlg_regs->refcyc_per_pte_group_nom_c =
@@ -1659,7 +1659,7 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                                * (double)htotal * ref_freq_to_pix_freq
                                / (double)dpte_groups_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int)dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
 
                // TODO: Is this the right calculation? Does htotal need to be halved?
                disp_dlg_regs->refcyc_per_meta_chunk_nom_c =
@@ -1667,7 +1667,7 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
                                * (double)htotal * ref_freq_to_pix_freq
                                / (double)meta_chunks_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int)dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
 
        disp_dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int)dml_floor(refcyc_per_line_delivery_pre_l,
@@ -1721,7 +1721,7 @@ static void dml_rq_dlg_get_dlg_params(struct display_mode_lib *mode_lib,
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
@@ -1755,7 +1755,7 @@ void dml30_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        dlg_sys_param.total_flip_bw = get_total_immediate_flip_bw(mode_lib,
                e2e_pipe_param,
                num_pipes);
-       dlg_sys_param.total_flip_bytes = get_total_immediate_flip_bytes(mode_lib,
+       dlg_sys_param.total_flip_bytes = (unsigned int)get_total_immediate_flip_bytes(mode_lib,
                e2e_pipe_param,
                num_pipes);
 
index 1aaa77265eede95c5aa8f910f94f0d442aee1ede..26a56d7b23be51d96d706dbd54812f8c5f95b965 100644 (file)
@@ -308,14 +308,14 @@ static void calculate_wm_set_for_vlevel(int vlevel,
        dml->soc.sr_exit_time_us = table_entry->sr_exit_time_us;
        dml->soc.sr_enter_plus_exit_time_us = table_entry->sr_enter_plus_exit_time_us;
 
-       wm_set->urgent_ns = get_wm_urgent(dml, pipes, pipe_cnt) * 1000;
-       wm_set->cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(dml, pipes, pipe_cnt) * 1000;
-       wm_set->cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(dml, pipes, pipe_cnt) * 1000;
-       wm_set->cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(dml, pipes, pipe_cnt) * 1000;
-       wm_set->pte_meta_urgent_ns = get_wm_memory_trip(dml, pipes, pipe_cnt) * 1000;
-       wm_set->frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(dml, pipes, pipe_cnt) * 1000;
-       wm_set->frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(dml, pipes, pipe_cnt) * 1000;
-       wm_set->urgent_latency_ns = get_urgent_latency(dml, pipes, pipe_cnt) * 1000;
+       wm_set->urgent_ns = (uint32_t)(get_wm_urgent(dml, pipes, pipe_cnt) * 1000);
+       wm_set->cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(dml, pipes, pipe_cnt) * 1000);
+       wm_set->cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(dml, pipes, pipe_cnt) * 1000);
+       wm_set->cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(dml, pipes, pipe_cnt) * 1000);
+       wm_set->pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(dml, pipes, pipe_cnt) * 1000);
+       wm_set->frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(dml, pipes, pipe_cnt) * 1000);
+       wm_set->frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(dml, pipes, pipe_cnt) * 1000);
+       wm_set->urgent_latency_ns = (uint32_t)(get_urgent_latency(dml, pipes, pipe_cnt) * 1000);
        dml->soc.dram_clock_change_latency_us = dram_clock_change_latency_cached;
 
 }
@@ -405,8 +405,8 @@ void dcn301_fpu_set_wm_ranges(int i,
 {
        dc_assert_fp_enabled();
 
-       ranges->reader_wm_sets[i].min_fill_clk_mhz = (i > 0) ? (loaded_bb->clock_limits[i - 1].dram_speed_mts / 16) + 1 : 0;
-       ranges->reader_wm_sets[i].max_fill_clk_mhz = loaded_bb->clock_limits[i].dram_speed_mts / 16;
+       ranges->reader_wm_sets[i].min_fill_clk_mhz = (uint16_t)((i > 0) ? (loaded_bb->clock_limits[i - 1].dram_speed_mts / 16) + 1 : 0);
+       ranges->reader_wm_sets[i].max_fill_clk_mhz = (uint16_t)(loaded_bb->clock_limits[i].dram_speed_mts / 16);
 }
 
 void dcn301_fpu_init_soc_bounding_box(struct bp_soc_bb_info bb_info)
index 8d7c59ec701dc04039f535a08ec9486e755feea0..d747dfb322c4aba611d4fbe409f70919ade7e1a7 100644 (file)
@@ -182,14 +182,14 @@ static void dcn302_get_optimal_dcfclk_fclk_for_uclk(unsigned int uclk_mts,
                        bw_from_dram = (bw_from_dram1 < bw_from_dram2) ? bw_from_dram1 : bw_from_dram2;
 
                        if (optimal_fclk)
-                               *optimal_fclk = bw_from_dram /
+                               *optimal_fclk = (unsigned int)(bw_from_dram /
                                (dcn3_02_soc.fabric_datapath_to_dcn_data_return_bytes *
-                                (dcn3_02_soc.max_avg_sdp_bw_use_normal_percent / 100));
+                                (dcn3_02_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 
                        if (optimal_dcfclk)
-                               *optimal_dcfclk =  bw_from_dram /
+                               *optimal_dcfclk = (unsigned int)(bw_from_dram /
                                (dcn3_02_soc.return_bus_width_bytes *
-                                (dcn3_02_soc.max_avg_sdp_bw_use_normal_percent / 100));
+                                (dcn3_02_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 }
 
 void dcn302_fpu_update_bw_bounding_box(struct dc *dc, struct clk_bw_params *bw_params)
@@ -231,13 +231,13 @@ void dcn302_fpu_update_bw_bounding_box(struct dc *dc, struct clk_bw_params *bw_p
                                max_phyclk_mhz = bw_params->clk_table.entries[i].phyclk_mhz;
                }
                if (!max_dcfclk_mhz)
-                       max_dcfclk_mhz = dcn3_02_soc.clock_limits[0].dcfclk_mhz;
+                       max_dcfclk_mhz = (int)dcn3_02_soc.clock_limits[0].dcfclk_mhz;
                if (!max_dispclk_mhz)
-                       max_dispclk_mhz = dcn3_02_soc.clock_limits[0].dispclk_mhz;
+                       max_dispclk_mhz = (int)dcn3_02_soc.clock_limits[0].dispclk_mhz;
                if (!max_dppclk_mhz)
-                       max_dppclk_mhz = dcn3_02_soc.clock_limits[0].dppclk_mhz;
+                       max_dppclk_mhz = (int)dcn3_02_soc.clock_limits[0].dppclk_mhz;
                if (!max_phyclk_mhz)
-                       max_phyclk_mhz = dcn3_02_soc.clock_limits[0].phyclk_mhz;
+                       max_phyclk_mhz = (int)dcn3_02_soc.clock_limits[0].phyclk_mhz;
 
                if (max_dcfclk_mhz > dcfclk_sta_targets[num_dcfclk_sta_targets-1]) {
                        /* If max DCFCLK is greater than the max DCFCLK STA target, insert into the DCFCLK STA target array */
index b5d3fd4c3694ec4ae9135eb08c1f489737ba16c3..48e3a3f4d043d4e9fd4035fd5fd59dde27007928 100644 (file)
@@ -178,13 +178,13 @@ static void dcn303_get_optimal_dcfclk_fclk_for_uclk(unsigned int uclk_mts,
        bw_from_dram = (bw_from_dram1 < bw_from_dram2) ? bw_from_dram1 : bw_from_dram2;
 
        if (optimal_fclk)
-               *optimal_fclk = bw_from_dram /
+               *optimal_fclk = (unsigned int)(bw_from_dram /
                (dcn3_03_soc.fabric_datapath_to_dcn_data_return_bytes *
-                               (dcn3_03_soc.max_avg_sdp_bw_use_normal_percent / 100));
+                               (dcn3_03_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 
        if (optimal_dcfclk)
-               *optimal_dcfclk =  bw_from_dram /
-               (dcn3_03_soc.return_bus_width_bytes * (dcn3_03_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_dcfclk = (unsigned int)(bw_from_dram /
+               (dcn3_03_soc.return_bus_width_bytes * (dcn3_03_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 }
 
 
@@ -227,13 +227,13 @@ void dcn303_fpu_update_bw_bounding_box(struct dc *dc, struct clk_bw_params *bw_p
                                max_phyclk_mhz = bw_params->clk_table.entries[i].phyclk_mhz;
                }
                if (!max_dcfclk_mhz)
-                       max_dcfclk_mhz = dcn3_03_soc.clock_limits[0].dcfclk_mhz;
+                       max_dcfclk_mhz = (int)dcn3_03_soc.clock_limits[0].dcfclk_mhz;
                if (!max_dispclk_mhz)
-                       max_dispclk_mhz = dcn3_03_soc.clock_limits[0].dispclk_mhz;
+                       max_dispclk_mhz = (int)dcn3_03_soc.clock_limits[0].dispclk_mhz;
                if (!max_dppclk_mhz)
-                       max_dppclk_mhz = dcn3_03_soc.clock_limits[0].dppclk_mhz;
+                       max_dppclk_mhz = (int)dcn3_03_soc.clock_limits[0].dppclk_mhz;
                if (!max_phyclk_mhz)
-                       max_phyclk_mhz = dcn3_03_soc.clock_limits[0].phyclk_mhz;
+                       max_phyclk_mhz = (int)dcn3_03_soc.clock_limits[0].phyclk_mhz;
 
                if (max_dcfclk_mhz > dcfclk_sta_targets[num_dcfclk_sta_targets-1]) {
                        dcfclk_sta_targets[num_dcfclk_sta_targets] = max_dcfclk_mhz;
index ad23215da9f864544952ecf1a544949520114854..07be91ebcac69102c211dbf16e8ae4716f0388b4 100644 (file)
@@ -499,7 +499,7 @@ void dcn31_calculate_wm_and_dlg_fp(
         * Override any clocks that can block S0i3 to min here
         */
        if (pipe_cnt == 0) {
-               context->bw_ctx.bw.dcn.clk.dcfclk_khz = dcfclk; // always should be vlevel 0
+               context->bw_ctx.bw.dcn.clk.dcfclk_khz = (int)dcfclk; // always should be vlevel 0
                return;
        }
 
@@ -508,7 +508,7 @@ void dcn31_calculate_wm_and_dlg_fp(
        pipes[0].clks_cfg.socclk_mhz = context->bw_ctx.dml.soc.clock_limits[vlevel].socclk_mhz;
 
        cstate_enter_plus_exit_z8_ns =
-               get_wm_z8_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+               (uint32_t)(get_wm_z8_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
 
        if (get_stutter_period(&context->bw_ctx.dml, pipes, pipe_cnt) < dc->debug.minimum_z8_residency_time &&
                        cstate_enter_plus_exit_z8_ns < dc->debug.minimum_z8_residency_time * 1000)
@@ -520,16 +520,16 @@ void dcn31_calculate_wm_and_dlg_fp(
         * Set A calculated last so that following calculations are based on Set A
         */
        dc->res_pool->funcs->update_soc_for_wm_a(dc, context);
-       context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
        context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_z8_ns = cstate_enter_plus_exit_z8_ns;
-       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_z8_ns = get_wm_z8_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_z8_ns = (uint32_t)(get_wm_z8_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
        context->bw_ctx.bw.dcn.watermarks.b = context->bw_ctx.bw.dcn.watermarks.a;
        context->bw_ctx.bw.dcn.watermarks.c = context->bw_ctx.bw.dcn.watermarks.a;
        context->bw_ctx.bw.dcn.watermarks.d = context->bw_ctx.bw.dcn.watermarks.a;
@@ -578,7 +578,7 @@ void dcn31_calculate_wm_and_dlg_fp(
                        continue;
 
                context->res_ctx.pipe_ctx[i].det_buffer_size_kb =
-                               get_det_buffer_size_kbytes(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+                               (int)get_det_buffer_size_kbytes(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
                if (context->res_ctx.pipe_ctx[i].det_buffer_size_kb > 384)
                        context->res_ctx.pipe_ctx[i].det_buffer_size_kb /= 2;
                total_det += context->res_ctx.pipe_ctx[i].det_buffer_size_kb;
@@ -810,7 +810,7 @@ int dcn_get_max_non_odm_pix_rate_100hz(struct _vcs_dpi_soc_bounding_box_st *soc)
 {
        dc_assert_fp_enabled();
 
-       return soc->clock_limits[0].dispclk_mhz * 10000.0 / (1.0 + soc->dcn_downspread_percent / 100.0);
+       return (int)(soc->clock_limits[0].dispclk_mhz * 10000.0 / (1.0 + soc->dcn_downspread_percent / 100.0));
 }
 
 int dcn_get_approx_det_segs_required_for_pstate(
index 9833467722b937aaa265c89aac9222a8fdc04cf6..bc023ba65d30fab5dd38b06a248301d0d3633e33 100644 (file)
@@ -700,7 +700,7 @@ static unsigned int dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -985,13 +985,13 @@ static bool CalculatePrefetchSchedule(
        *Tdmdl_vm = (DynamicMetadataEnable == true && DynamicMetadataVMEnabled == true && GPUVMEnable == true ? TWait + Tvm_trips : 0);
 
        if (myPipe->ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + myPipe->NumberOfCursors * DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + myPipe->NumberOfCursors * DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)DISPCLKDelaySubtotal;
 
        if (myPipe->DPPCLK == 0.0 || myPipe->DISPCLK == 0.0)
                return true;
@@ -1554,11 +1554,11 @@ static void CalculateDCCConfiguration(
                horz_div_c = 0;
 
        if (BytePerPixelC == 0) {
-               swath_buf_size = DETBufferSize / 2 - 2 * 256;
+               swath_buf_size = (int)(DETBufferSize / 2 - 2 * 256);
                detile_buf_vp_horz_limit = (double) swath_buf_size / ((double) RequestHeight256ByteLuma * BytePerPixelY / (1 + horz_div_l));
                detile_buf_vp_vert_limit = (double) swath_buf_size / (256.0 / RequestHeight256ByteLuma / (1 + vert_div_l));
        } else {
-               swath_buf_size = DETBufferSize / 2 - 2 * 2 * 256;
+               swath_buf_size = (int)(DETBufferSize / 2 - 2 * 2 * 256);
                detile_buf_vp_horz_limit = (double) swath_buf_size
                                / ((double) RequestHeight256ByteLuma * BytePerPixelY / (1 + horz_div_l)
                                                + (double) RequestHeight256ByteChroma * BytePerPixelC / (1 + horz_div_c) / (1 + yuv420));
@@ -1576,8 +1576,8 @@ static void CalculateDCCConfiguration(
 
        MAS_vp_horz_limit = SourcePixelFormat == dm_rgbe_alpha ? 3840 : 5760;
        MAS_vp_vert_limit = (BytePerPixelC > 0 ? 2880 : 5760);
-       max_vp_horz_width = dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
-       max_vp_vert_height = dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
+       max_vp_horz_width = (int)dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
+       max_vp_vert_height = (int)dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
        eff_surf_width_l = (SurfaceWidthLuma > max_vp_horz_width ? max_vp_horz_width : SurfaceWidthLuma);
        eff_surf_width_c = eff_surf_width_l / (1 + yuv420);
        eff_surf_height_l = (SurfaceHeightLuma > max_vp_vert_height ? max_vp_vert_height : SurfaceHeightLuma);
@@ -1594,10 +1594,10 @@ static void CalculateDCCConfiguration(
        }
 
        if (SourcePixelFormat == dm_420_10) {
-               full_swath_bytes_horz_wc_l = dml_ceil(full_swath_bytes_horz_wc_l * 2 / 3, 256);
-               full_swath_bytes_horz_wc_c = dml_ceil(full_swath_bytes_horz_wc_c * 2 / 3, 256);
-               full_swath_bytes_vert_wc_l = dml_ceil(full_swath_bytes_vert_wc_l * 2 / 3, 256);
-               full_swath_bytes_vert_wc_c = dml_ceil(full_swath_bytes_vert_wc_c * 2 / 3, 256);
+               full_swath_bytes_horz_wc_l = (int)dml_ceil(full_swath_bytes_horz_wc_l * 2 / 3, 256);
+               full_swath_bytes_horz_wc_c = (int)dml_ceil(full_swath_bytes_horz_wc_c * 2 / 3, 256);
+               full_swath_bytes_vert_wc_l = (int)dml_ceil(full_swath_bytes_vert_wc_l * 2 / 3, 256);
+               full_swath_bytes_vert_wc_c = (int)dml_ceil(full_swath_bytes_vert_wc_c * 2 / 3, 256);
        }
 
        if (2 * full_swath_bytes_horz_wc_l + 2 * full_swath_bytes_horz_wc_c <= DETBufferSize) {
@@ -1760,20 +1760,20 @@ static double CalculatePrefetchSourceLines(
 
        if (!v->IgnoreViewportPositioning) {
 
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0;
+               *MaxNumSwath = (unsigned int)(dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 2) % SwathHeight;
                else
                        MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 2) % SwathHeight;
-               MaxPartialSwath = dml_max(1U, MaxPartialSwath);
+               MaxPartialSwath = (unsigned int)dml_max(1U, MaxPartialSwath);
 
        } else {
 
                if (ViewportYStart != 0)
                        dml_print("WARNING DML: using viewport y position of 0 even though actual viewport y position is non-zero in prefetch source lines calculation\n");
 
-               *MaxNumSwath = dml_ceil(*VInitPreFill / SwathHeight, 1);
+               *MaxNumSwath = (unsigned int)dml_ceil(*VInitPreFill / SwathHeight, 1);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 1) % SwathHeight;
@@ -1848,9 +1848,9 @@ static unsigned int CalculateVMAndRowBytes(
                if (HostVMMinPageSize < 2048) {
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                } else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576) {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                } else {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
                }
        }
 
@@ -1858,16 +1858,16 @@ static unsigned int CalculateVMAndRowBytes(
        *MetaRequestWidth = 8 * BlockWidth256Bytes;
        if (ScanDirection != dm_vert) {
                *meta_row_height = *MetaRequestHeight;
-               *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestWidth) + *MetaRequestWidth;
-               *MetaRowByte = *meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0;
+               *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestWidth) + *MetaRequestWidth);
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0);
        } else {
                *meta_row_height = *MetaRequestWidth;
-               *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestHeight) + *MetaRequestHeight;
-               *MetaRowByte = *meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0;
+               *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestHeight) + *MetaRequestHeight);
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0);
        }
-       DCCMetaSurfaceBytes = DCCMetaPitch * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes) * BytePerPixel / 256;
+       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes) * BytePerPixel / 256);
        if (GPUVMEnable == true) {
-               *MetaPTEBytesFrame = (dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) / (8 * 4.0 * 1024), 1) + 1) * 64;
+               *MetaPTEBytesFrame = (int)((dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) / (8 * 4.0 * 1024), 1) + 1) * 64);
                MPDEBytesFrame = 128 * (v->GPUVMMaxPageTableLevels - 1);
        } else {
                *MetaPTEBytesFrame = 0;
@@ -1891,17 +1891,17 @@ static unsigned int CalculateVMAndRowBytes(
 
        if (GPUVMEnable == true && v->GPUVMMaxPageTableLevels > 1) {
                if (ScanDirection != dm_vert) {
-                       *DPDE0BytesFrame = 64
+                       *DPDE0BytesFrame = (int)(64
                                        * (dml_ceil(
                                                        ((Pitch * (dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes)
                                                                        / (8 * 2097152),
-                                                       1) + 1);
+                                                       1) + 1));
                } else {
-                       *DPDE0BytesFrame = 64
+                       *DPDE0BytesFrame = (int)(64
                                        * (dml_ceil(
                                                        ((Pitch * (dml_ceil((double) SwathWidth - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes)
                                                                        / (8 * 2097152),
-                                                       1) + 1);
+                                                       1) + 1));
                }
                ExtraDPDEBytesFrame = 128 * (v->GPUVMMaxPageTableLevels - 2);
        } else {
@@ -1929,7 +1929,7 @@ static unsigned int CalculateVMAndRowBytes(
        if (SurfaceTiling == dm_sw_linear) {
                PixelPTEReqHeightPTEs = 1;
                *PixelPTEReqHeight = 1;
-               *PixelPTEReqWidth = 32768.0 / BytePerPixel;
+               *PixelPTEReqWidth = (unsigned int)(32768.0 / BytePerPixel);
                *PTERequestSize = 64;
                FractionOfPTEReturnDrop = 0;
        } else if (GPUVMMinPageSize == 4 && MacroTileSizeBytes > 4096) {
@@ -1947,16 +1947,16 @@ static unsigned int CalculateVMAndRowBytes(
        }
 
        if (SurfaceTiling == dm_sw_linear) {
-               *dpte_row_height = dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
-               *dpte_row_width_ub = (dml_ceil((double)(Pitch * *dpte_row_height - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+               *dpte_row_height = (unsigned int)dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
+               *dpte_row_width_ub = (int)((dml_ceil((double)(Pitch * *dpte_row_height - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else if (ScanDirection != dm_vert) {
                *dpte_row_height = *PixelPTEReqHeight;
-               *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+               *dpte_row_width_ub = (int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else {
-               *dpte_row_height = dml_min(*PixelPTEReqWidth, *MacroTileWidth);
-               *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight;
+               *dpte_row_height = (unsigned int)dml_min(*PixelPTEReqWidth, *MacroTileWidth);
+               *dpte_row_width_ub = (int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqHeight * *PTERequestSize;
        }
 
@@ -2041,9 +2041,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                        v->WritebackHTaps[k],
                                                        v->WritebackVTaps[k],
                                                        v->WritebackSourceWidth[k],
-                                                       v->WritebackDestinationWidth[k],
+                                                       (long)v->WritebackDestinationWidth[k],
                                                        v->HTotal[k],
-                                                       v->WritebackLineBufferSize));
+                                                       (unsigned int)v->WritebackLineBufferSize));
                }
        }
 
@@ -2229,7 +2229,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        v->DPPCLK,
                        v->ReadBandwidthPlaneLuma,
                        v->ReadBandwidthPlaneChroma,
-                       v->ReturnBusWidth,
+                       (int)v->ReturnBusWidth,
                        &v->DCFCLKDeepSleep);
 
        // DSCCLK
@@ -2266,7 +2266,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->DSCDelay[k] = dscceComputeDelay(
                                                v->DSCInputBitPerComponent[k],
                                                BPP,
-                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
                                                v->NumberOfDSCSlices[k],
                                                v->OutputFormat[k],
                                                v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
@@ -2275,8 +2275,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                * (dscceComputeDelay(
                                                                v->DSCInputBitPerComponent[k],
                                                                BPP,
-                                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
-                                                               v->NumberOfDSCSlices[k] / 2.0,
+                                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                                               (unsigned int)(v->NumberOfDSCSlices[k] / 2.0),
                                                                v->OutputFormat[k],
                                                                v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
                        } else {
@@ -2284,12 +2284,12 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                * (dscceComputeDelay(
                                                                v->DSCInputBitPerComponent[k],
                                                                BPP,
-                                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
-                                                               v->NumberOfDSCSlices[k] / 4.0,
+                                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                                               (unsigned int)(v->NumberOfDSCSlices[k] / 4.0),
                                                                v->OutputFormat[k],
                                                                v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
                        }
-                       v->DSCDelay[k] = v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
+                       v->DSCDelay[k] = (unsigned int)(v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k]);
                } else {
                        v->DSCDelay[k] = 0;
                }
@@ -2330,13 +2330,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        v->SurfaceTiling[k],
                                        v->BytePerPixelC[k],
                                        v->SourceScan[k],
-                                       v->SwathWidthC[k],
+                                       (unsigned int)v->SwathWidthC[k],
                                        v->ViewportHeightChroma[k],
                                        v->GPUVMEnable,
                                        v->HostVMEnable,
                                        v->HostVMMaxNonCachedPageTableLevels,
-                                       v->GPUVMMinPageSize,
-                                       v->HostVMMinPageSize,
+                                       (unsigned int)v->GPUVMMinPageSize,
+                                       (unsigned int)v->HostVMMinPageSize,
                                        v->PTEBufferSizeInRequestsForChroma,
                                        v->PitchC[k],
                                        v->DCCMetaPitchC[k],
@@ -2387,13 +2387,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->SurfaceTiling[k],
                                v->BytePerPixelY[k],
                                v->SourceScan[k],
-                               v->SwathWidthY[k],
+                               (unsigned int)v->SwathWidthY[k],
                                v->ViewportHeight[k],
                                v->GPUVMEnable,
                                v->HostVMEnable,
                                v->HostVMMaxNonCachedPageTableLevels,
-                               v->GPUVMMinPageSize,
-                               v->HostVMMinPageSize,
+                               (unsigned int)v->GPUVMMinPageSize,
+                               (unsigned int)v->HostVMMinPageSize,
                                v->PTEBufferSizeInRequestsForLuma,
                                v->PitchY[k],
                                v->DCCMetaPitchY[k],
@@ -2459,11 +2459,11 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        NoChromaPlanes = false;
        }
 
-       ReorderBytes = v->NumberOfChannels
+       ReorderBytes = (int)(v->NumberOfChannels
                        * dml_max3(
                                        v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
        VMDataOnlyReturnBW = dml_min(
                        dml_min(v->ReturnBusWidth * v->DCFCLK, v->FabricClock * v->FabricDatapathToDCNDataReturn)
@@ -2489,7 +2489,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                HostVMInefficiencyFactor = v->ReturnBW / VMDataOnlyReturnBW;
 
        v->UrgentExtraLatency = CalculateExtraLatency(
-                       v->RoundTripPingLatencyCycles,
+                       (int)v->RoundTripPingLatencyCycles,
                        ReorderBytes,
                        v->DCFCLK,
                        v->TotalActiveDPP,
@@ -2517,9 +2517,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                v->WritebackHRatio[k],
                                                                v->WritebackVRatio[k],
                                                                v->WritebackVTaps[k],
-                                                               v->WritebackDestinationWidth[k],
-                                                               v->WritebackDestinationHeight[k],
-                                                               v->WritebackSourceHeight[k],
+                                                               (int)v->WritebackDestinationWidth[k],
+                                                               (int)v->WritebackDestinationHeight[k],
+                                                               (int)v->WritebackSourceHeight[k],
                                                                v->HTotal[k]) / v->DISPCLK;
                        } else
                                v->WritebackDelay[v->VoltageLevel][k] = 0;
@@ -2533,9 +2533,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                                        v->WritebackHRatio[j],
                                                                                        v->WritebackVRatio[j],
                                                                                        v->WritebackVTaps[j],
-                                                                                       v->WritebackDestinationWidth[j],
-                                                                                       v->WritebackDestinationHeight[j],
-                                                                                       v->WritebackSourceHeight[j],
+                                                                                       (int)v->WritebackDestinationWidth[j],
+                                                                                       (int)v->WritebackDestinationHeight[j],
+                                                                                       (int)v->WritebackSourceHeight[j],
                                                                                        v->HTotal[k]) / v->DISPCLK);
                                }
                        }
@@ -2548,7 +2548,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->WritebackDelay[v->VoltageLevel][k] = v->WritebackDelay[v->VoltageLevel][j];
 
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
-               v->MaxVStartupLines[k] =
+               v->MaxVStartupLines[k] = (unsigned int)(
                                (v->Interlace[k] && !v->ProgressiveToInterlaceUnitInOPP) ?
                                                dml_floor((v->VTotal[k] - v->VActive[k]) / 2.0, 1.0) :
                                                v->VTotal[k] - v->VActive[k]
@@ -2557,7 +2557,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                                dml_ceil(
                                                                                                (double) v->WritebackDelay[v->VoltageLevel][k]
                                                                                                                / (v->HTotal[k] / v->PixelClock[k]),
-                                                                                               1));
+                                                                                               1)));
                if (v->MaxVStartupLines[k] > 1023)
                        v->MaxVStartupLines[k] = 1023;
 
@@ -2570,7 +2570,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
        v->MaximumMaxVStartupLines = 0;
        for (k = 0; k < v->NumberOfActivePlanes; ++k)
-               v->MaximumMaxVStartupLines = dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
+               v->MaximumMaxVStartupLines = (unsigned int)dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
 
        // VBA_DELTA
        // We don't really care to iterate between the various prefetch modes
@@ -2639,7 +2639,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        (unsigned int) (v->SwathWidthY[k] / v->HRatio[k]),
                                        v->OutputFormat[k],
                                        v->MaxInterDCNTileRepeaters,
-                                       dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
+                                       (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
                                        v->MaxVStartupLines[k],
                                        v->GPUVMMaxPageTableLevels,
                                        v->GPUVMEnable,
@@ -2653,15 +2653,15 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        v->UrgentLatency,
                                        v->UrgentExtraLatency,
                                        v->TCalc,
-                                       v->PDEAndMetaPTEBytesFrame[k],
-                                       v->MetaRowByte[k],
-                                       v->PixelPTEBytesPerRow[k],
+                                       (unsigned int)v->PDEAndMetaPTEBytesFrame[k],
+                                       (unsigned int)v->MetaRowByte[k],
+                                       (unsigned int)v->PixelPTEBytesPerRow[k],
                                        v->PrefetchSourceLinesY[k],
-                                       v->SwathWidthY[k],
+                                       (unsigned int)v->SwathWidthY[k],
                                        v->VInitPreFillY[k],
                                        v->MaxNumSwathY[k],
                                        v->PrefetchSourceLinesC[k],
-                                       v->SwathWidthC[k],
+                                       (unsigned int)v->SwathWidthC[k],
                                        v->VInitPreFillC[k],
                                        v->MaxNumSwathC[k],
                                        v->swath_width_luma_ub[k],
@@ -2692,7 +2692,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 #ifdef __DML_VBA_DEBUG__
                        dml_print("DML::%s: k=%0d Prefetch cal result=%0d\n", __func__, k, v->ErrorResult[k]);
 #endif
-                       v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
+                       v->VStartup[k] = (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
                }
 
                v->NoEnoughUrgentLatencyHiding = false;
@@ -2846,8 +2846,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
                        v->TotImmediateFlipBytes = 0;
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
-                               v->TotImmediateFlipBytes = v->TotImmediateFlipBytes
-                                               + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]);
+                               v->TotImmediateFlipBytes = (unsigned int)(v->TotImmediateFlipBytes
+                                               + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]));
                        }
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                                CalculateFlipSchedule(
@@ -3159,10 +3159,10 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
                isInterlaceTiming = (v->Interlace[k] && !v->ProgressiveToInterlaceUnitInOPP);
 
-               v->MIN_DST_Y_NEXT_START[k] = ((isInterlaceTiming ? dml_floor((v->VTotal[k] - v->VFrontPorch[k]) / 2.0, 1.0) : v->VTotal[k])
+               v->MIN_DST_Y_NEXT_START[k] = (unsigned int)(((isInterlaceTiming ? dml_floor((v->VTotal[k] - v->VFrontPorch[k]) / 2.0, 1.0) : v->VTotal[k])
                                - v->VFrontPorch[k])
                                + dml_max(1.0, dml_ceil(v->WritebackDelay[v->VoltageLevel][k] / (v->HTotal[k] / v->PixelClock[k]), 1.0))
-                               + dml_floor(4.0 * v->TSetup[k] / (v->HTotal[k] / v->PixelClock[k]), 1.0) / 4.0;
+                               + dml_floor(4.0 * v->TSetup[k] / (v->HTotal[k] / v->PixelClock[k]), 1.0) / 4.0);
 
                v->VStartup[k] = (isInterlaceTiming ? (2 * v->MaxVStartupLines[k]) : v->MaxVStartupLines[k]);
 
@@ -3438,7 +3438,7 @@ static void CalculateVupdateAndDynamicMetadataParameters(
        TotalRepeaterDelayTime = MaxInterDCNTileRepeaters * (2 / DPPCLK + 3 / DISPCLK);
        *VUpdateWidthPix = dml_ceil((14.0 / DCFClkDeepSleep + 12.0 / DPPCLK + TotalRepeaterDelayTime) * PixelClock, 1.0);
        *VReadyOffsetPix = dml_ceil(dml_max(150.0 / DPPCLK, TotalRepeaterDelayTime + 20.0 / DCFClkDeepSleep + 10.0 / DPPCLK) * PixelClock, 1.0);
-       *VUpdateOffsetPix = dml_ceil(HTotal / 4.0, 1);
+       *VUpdateOffsetPix = (unsigned int)dml_ceil(HTotal / 4.0, 1);
        *TSetup = (*VUpdateOffsetPix + *VUpdateWidthPix + *VReadyOffsetPix) / PixelClock;
        *Tdmbf = DynamicMetadataTransmittedBytes / 4.0 / DISPCLK;
        *Tdmec = HTotal / PixelClock;
@@ -3723,17 +3723,17 @@ static noinline void CalculatePrefetchSchedulePerPlane(
                mode_lib,
                HostVMInefficiencyFactor,
                &myPipe,
-               v->DSCDelayPerState[i][k],
+               (unsigned int)v->DSCDelayPerState[i][k],
                v->DPPCLKDelaySubtotal + v->DPPCLKDelayCNVCFormater,
                v->DPPCLKDelaySCL,
                v->DPPCLKDelaySCLLBOnly,
                v->DPPCLKDelayCNVCCursor,
                v->DISPCLKDelaySubtotal,
-               v->SwathWidthYThisState[k] / v->HRatio[k],
+               (unsigned int)(v->SwathWidthYThisState[k] / v->HRatio[k]),
                v->OutputFormat[k],
                v->MaxInterDCNTileRepeaters,
-               dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
-               v->MaximumVStartup[i][j][k],
+               (unsigned int)dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
+                       (unsigned int)v->MaximumVStartup[i][j][k],
                v->GPUVMMaxPageTableLevels,
                v->GPUVMEnable,
                v->HostVMEnable,
@@ -3746,15 +3746,15 @@ static noinline void CalculatePrefetchSchedulePerPlane(
                v->UrgLatency[i],
                v->ExtraLatency,
                v->TimeCalc,
-               v->PDEAndMetaPTEBytesPerFrame[i][j][k],
-               v->MetaRowBytes[i][j][k],
-               v->DPTEBytesPerRow[i][j][k],
+                       (unsigned int)v->PDEAndMetaPTEBytesPerFrame[i][j][k],
+                       (unsigned int)v->MetaRowBytes[i][j][k],
+               (unsigned int)v->DPTEBytesPerRow[i][j][k],
                v->PrefetchLinesY[i][j][k],
-               v->SwathWidthYThisState[k],
+               (unsigned int)v->SwathWidthYThisState[k],
                v->PrefillY[k],
                v->MaxNumSwY[k],
                v->PrefetchLinesC[i][j][k],
-               v->SwathWidthCThisState[k],
+               (unsigned int)v->SwathWidthCThisState[k],
                v->PrefillC[k],
                v->MaxNumSwC[k],
                v->swath_width_luma_ub_this_state[k],
@@ -3954,9 +3954,9 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->WritebackHTaps[k],
                                                        v->WritebackVTaps[k],
                                                        v->WritebackSourceWidth[k],
-                                                       v->WritebackDestinationWidth[k],
+                                                       (long)v->WritebackDestinationWidth[k],
                                                        v->HTotal[k],
-                                                       v->WritebackLineBufferSize));
+                                                       (unsigned int)v->WritebackLineBufferSize));
                }
        }
        for (k = 0; k < v->NumberOfActivePlanes; k++) {
@@ -4003,17 +4003,17 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                int MaximumSwathWidthSupportChroma;
 
                if (v->SurfaceTiling[k] == dm_sw_linear) {
-                       MaximumSwathWidthSupportLuma = 8192.0;
+                       MaximumSwathWidthSupportLuma = (int)8192.0;
                } else if (v->SourceScan[k] == dm_vert && v->BytePerPixelC[k] > 0) {
-                       MaximumSwathWidthSupportLuma = 2880.0;
+                       MaximumSwathWidthSupportLuma = (int)2880.0;
                } else if (v->SourcePixelFormat[k] == dm_rgbe_alpha) {
-                       MaximumSwathWidthSupportLuma = 3840.0;
+                       MaximumSwathWidthSupportLuma = (int)3840.0;
                } else {
-                       MaximumSwathWidthSupportLuma = 5760.0;
+                       MaximumSwathWidthSupportLuma = (int)5760.0;
                }
 
                if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) {
-                       MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma / 2.0;
+                       MaximumSwathWidthSupportChroma = (int)(MaximumSwathWidthSupportLuma / 2.0);
                } else {
                        MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma;
                }
@@ -4245,7 +4245,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                v->DISPCLK_DPPCLK_Support[i][j] = false;
                                        }
                                }
-                               v->TotalNumberOfActiveDPP[i][j] = 0.0;
+                               v->TotalNumberOfActiveDPP[i][j] = 0;
                                for (k = 0; k < v->NumberOfActivePlanes; k++) {
                                        v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + v->NoOfDPP[i][j][k];
                                }
@@ -4282,7 +4282,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                if (v->BlendingAndTiming[k] == k) {
                        if (v->PixelClockBackEnd[k] > 3200) {
-                               v->NumberOfDSCSlices[k] = dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
+                               v->NumberOfDSCSlices[k] = (unsigned int)dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
                        } else if (v->PixelClockBackEnd[k] > 1360) {
                                v->NumberOfDSCSlices[k] = 8;
                        } else if (v->PixelClockBackEnd[k] > 680) {
@@ -4344,7 +4344,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->PHYCLKD18PerState[k] >= 10000.0 / 18.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 10000,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4363,7 +4363,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                v->LinkDSCEnable = true;
                                                                v->Outbpp = TruncToValidBPP(
                                                                                (1.0 - v->Downspreading / 100.0) * 10000,
-                                                                               v->OutputLinkDPLanes[k],
+                                                                               (int)v->OutputLinkDPLanes[k],
                                                                                v->HTotal[k],
                                                                                v->HActive[k],
                                                                                v->PixelClockBackEnd[k],
@@ -4386,7 +4386,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->PHYCLKD18PerState[k] >= 13500.0 / 18.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 13500,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4405,7 +4405,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                v->LinkDSCEnable = true;
                                                                v->Outbpp = TruncToValidBPP(
                                                                                (1.0 - v->Downspreading / 100.0) * 13500,
-                                                                               v->OutputLinkDPLanes[k],
+                                                                               (int)v->OutputLinkDPLanes[k],
                                                                                v->HTotal[k],
                                                                                v->HActive[k],
                                                                                v->PixelClockBackEnd[k],
@@ -4428,7 +4428,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->PHYCLKD18PerState[k] >= 20000.0 / 18.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 20000,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4447,7 +4447,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                v->LinkDSCEnable = true;
                                                                v->Outbpp = TruncToValidBPP(
                                                                                (1.0 - v->Downspreading / 100.0) * 20000,
-                                                                               v->OutputLinkDPLanes[k],
+                                                                               (int)v->OutputLinkDPLanes[k],
                                                                                v->HTotal[k],
                                                                                v->HActive[k],
                                                                                v->PixelClockBackEnd[k],
@@ -4470,7 +4470,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                if (v->PHYCLKPerState[i] >= 270.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 2700,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4490,7 +4490,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 540.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 5400,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4510,7 +4510,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 810.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 8100,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4608,7 +4608,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        v->DSCDelayPerState[i][k] = dscceComputeDelay(
                                                        v->DSCInputBitPerComponent[k],
                                                        v->BPP,
-                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                        v->NumberOfDSCSlices[k],
                                                        v->OutputFormat[k],
                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
@@ -4617,7 +4617,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        * (dscceComputeDelay(
                                                                        v->DSCInputBitPerComponent[k],
                                                                        v->BPP,
-                                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                                        v->NumberOfDSCSlices[k] / 2,
                                                                        v->OutputFormat[k],
                                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
@@ -4626,7 +4626,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        * (dscceComputeDelay(
                                                                        v->DSCInputBitPerComponent[k],
                                                                        v->BPP,
-                                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                                        v->NumberOfDSCSlices[k] / 4,
                                                                        v->OutputFormat[k],
                                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
@@ -4716,14 +4716,14 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        v->RequiredDPPCLKThisState,
                                        v->ReadBandwidthLuma,
                                        v->ReadBandwidthChroma,
-                                       v->ReturnBusWidth,
+                                       (int)v->ReturnBusWidth,
                                        &v->ProjectedDCFCLKDeepSleep[i][j]);
 
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                                v->swath_width_luma_ub_all_states[i][j][k] = v->swath_width_luma_ub_this_state[k];
                                v->swath_width_chroma_ub_all_states[i][j][k] = v->swath_width_chroma_ub_this_state[k];
-                               v->SwathWidthYAllStates[i][j][k] = v->SwathWidthYThisState[k];
-                               v->SwathWidthCAllStates[i][j][k] = v->SwathWidthCThisState[k];
+                               v->SwathWidthYAllStates[i][j][k] = (unsigned int)v->SwathWidthYThisState[k];
+                               v->SwathWidthCAllStates[i][j][k] = (unsigned int)v->SwathWidthCThisState[k];
                                v->SwathHeightYAllStates[i][j][k] = v->SwathHeightYThisState[k];
                                v->SwathHeightCAllStates[i][j][k] = v->SwathHeightCThisState[k];
                                v->DETBufferSizeYAllStates[i][j][k] = v->DETBufferSizeYThisState[k];
@@ -4748,8 +4748,8 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
                                v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
                                v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
-                               v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
-                               v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
+                               v->DETBufferSizeYThisState[k] = (unsigned int)v->DETBufferSizeYAllStates[i][j][k];
+                               v->DETBufferSizeCThisState[k] = (unsigned int)v->DETBufferSizeCAllStates[i][j][k];
                        }
 
                        v->TotalNumberOfDCCActiveDPP[i][j] = 0;
@@ -4782,16 +4782,16 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        v->SurfaceTiling[k],
                                                        v->BytePerPixelC[k],
                                                        v->SourceScan[k],
-                                                       v->SwathWidthCThisState[k],
+                                                       (unsigned int)v->SwathWidthCThisState[k],
                                                        v->ViewportHeightChroma[k],
                                                        v->GPUVMEnable,
                                                        v->HostVMEnable,
                                                        v->HostVMMaxNonCachedPageTableLevels,
-                                                       v->GPUVMMinPageSize,
-                                                       v->HostVMMinPageSize,
+                                                       (unsigned int)v->GPUVMMinPageSize,
+                                                       (unsigned int)v->HostVMMinPageSize,
                                                        v->PTEBufferSizeInRequestsForChroma,
                                                        v->PitchC[k],
-                                                       0.0,
+                                                       0,
                                                        &v->MacroTileWidthC[k],
                                                        &v->MetaRowBytesC,
                                                        &v->DPTEBytesPerRowC,
@@ -4824,8 +4824,8 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma;
                                        v->PTEBufferSizeInRequestsForChroma = 0;
                                        v->PDEAndMetaPTEBytesPerFrameC = 0.0;
-                                       v->MetaRowBytesC = 0.0;
-                                       v->DPTEBytesPerRowC = 0.0;
+                                       v->MetaRowBytesC = 0;
+                                       v->DPTEBytesPerRowC = 0;
                                        v->PrefetchLinesC[i][j][k] = 0.0;
                                        v->PTEBufferSizeNotExceededC[i][j][k] = true;
                                }
@@ -4838,13 +4838,13 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                v->SurfaceTiling[k],
                                                v->BytePerPixelY[k],
                                                v->SourceScan[k],
-                                               v->SwathWidthYThisState[k],
+                                               (unsigned int)v->SwathWidthYThisState[k],
                                                v->ViewportHeight[k],
                                                v->GPUVMEnable,
                                                v->HostVMEnable,
                                                v->HostVMMaxNonCachedPageTableLevels,
-                                               v->GPUVMMinPageSize,
-                                               v->HostVMMinPageSize,
+                                               (unsigned int)v->GPUVMMinPageSize,
+                                               (unsigned int)v->HostVMMinPageSize,
                                                v->PTEBufferSizeInRequestsForLuma,
                                                v->PitchY[k],
                                                v->DCCMetaPitchY[k],
@@ -4978,9 +4978,9 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                v->WritebackHRatio[k],
                                                                                v->WritebackVRatio[k],
                                                                                v->WritebackVTaps[k],
-                                                                               v->WritebackDestinationWidth[k],
-                                                                               v->WritebackDestinationHeight[k],
-                                                                               v->WritebackSourceHeight[k],
+                                                                               (int)v->WritebackDestinationWidth[k],
+                                                                               (int)v->WritebackDestinationHeight[k],
+                                                                               (int)v->WritebackSourceHeight[k],
                                                                                v->HTotal[k]) / v->RequiredDISPCLK[i][j];
                                        } else {
                                                v->WritebackDelayTime[k] = 0.0;
@@ -4995,9 +4995,9 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                                        v->WritebackHRatio[m],
                                                                                                        v->WritebackVRatio[m],
                                                                                                        v->WritebackVTaps[m],
-                                                                                                       v->WritebackDestinationWidth[m],
-                                                                                                       v->WritebackDestinationHeight[m],
-                                                                                                       v->WritebackSourceHeight[m],
+                                                                                                       (int)v->WritebackDestinationWidth[m],
+                                                                                                       (int)v->WritebackDestinationHeight[m],
+                                                                                                       (int)v->WritebackSourceHeight[m],
                                                                                                        v->HTotal[m]) / v->RequiredDISPCLK[i][j]);
                                                }
                                        }
@@ -5030,11 +5030,11 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                }
        }
 
-       ReorderingBytes = v->NumberOfChannels
+       ReorderingBytes = (int)(v->NumberOfChannels
                        * dml_max3(
                                        v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
        for (i = 0; i < v->soc.num_states; ++i) {
                for (j = 0; j <= 1; ++j) {
@@ -5137,8 +5137,8 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
                                v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
                                v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
-                               v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
-                               v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
+                               v->DETBufferSizeYThisState[k] = (unsigned int)v->DETBufferSizeYAllStates[i][j][k];
+                               v->DETBufferSizeCThisState[k] = (unsigned int)v->DETBufferSizeCAllStates[i][j][k];
                        }
 
                        VMDataOnlyReturnBWPerState = dml_min(
@@ -5152,7 +5152,7 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                HostVMInefficiencyFactor = v->ReturnBWPerState[i][j] / VMDataOnlyReturnBWPerState;
 
                        v->ExtraLatency = CalculateExtraLatency(
-                                       v->RoundTripPingLatencyCycles,
+                                       (int)v->RoundTripPingLatencyCycles,
                                        ReorderingBytes,
                                        v->DCFCLKState[i][j],
                                        v->TotalNumberOfActiveDPP[i][j],
@@ -5285,11 +5285,11 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                                                                                * v->UrgentBurstFactorChromaPre[k])
                                                                                                + v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
                                        }
-                                       v->TotImmediateFlipBytes = 0.0;
+                                       v->TotImmediateFlipBytes = 0;
                                        for (k = 0; k < v->NumberOfActivePlanes; k++) {
-                                               v->TotImmediateFlipBytes = v->TotImmediateFlipBytes
+                                               v->TotImmediateFlipBytes = (unsigned int)(v->TotImmediateFlipBytes
                                                                + v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k] + v->MetaRowBytes[i][j][k]
-                                                               + v->DPTEBytesPerRow[i][j][k]);
+                                                               + v->DPTEBytesPerRow[i][j][k]));
                                        }
 
                                        for (k = 0; k < v->NumberOfActivePlanes; k++) {
@@ -5644,13 +5644,13 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                double EffectiveDETBufferSizeY = DETBufferSizeY[k];
 
-               v->LBLatencyHidingSourceLinesY = dml_min(
+               v->LBLatencyHidingSourceLinesY = (unsigned int)(dml_min(
                                (double) v->MaxLineBufferLines,
-                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1);
+                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1));
 
-               v->LBLatencyHidingSourceLinesC = dml_min(
+               v->LBLatencyHidingSourceLinesC = (unsigned int)(dml_min(
                                (double) v->MaxLineBufferLines,
-                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1);
+                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1));
 
                EffectiveLBLatencyHidingY = v->LBLatencyHidingSourceLinesY / v->VRatio[k] * (v->HTotal[k] / v->PixelClock[k]);
 
@@ -5662,11 +5662,11 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
                }
 
                LinesInDETY[k] = (double) EffectiveDETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k];
-               LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]);
+               LinesInDETYRoundedDownToSwath[k] = (unsigned int)dml_floor(LinesInDETY[k], SwathHeightY[k]);
                FullDETBufferingTimeY = LinesInDETYRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k];
                if (BytePerPixelDETC[k] > 0) {
                        LinesInDETC = v->DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k];
-                       LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]);
+                       LinesInDETCRoundedDownToSwath = (unsigned int)dml_floor(LinesInDETC, SwathHeightC[k]);
                        FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (v->HTotal[k] / v->PixelClock[k]) / v->VRatioChroma[k];
                } else {
                        LinesInDETC = 0;
@@ -6012,7 +6012,7 @@ static void CalculatePixelDeliveryTimes(
 
        for (k = 0; k < NumberOfActivePlanes; ++k) {
                int cursor_req_per_width;
-               cursor_req_per_width = dml_ceil(CursorWidth[k][0] * CursorBPP[k][0] / 256 / 8, 1);
+               cursor_req_per_width = (int)dml_ceil(CursorWidth[k][0] * CursorBPP[k][0] / 256 / 8, 1);
                if (NumberOfCursors[k] > 0) {
                        if (VRatio[k] <= 1) {
                                CursorRequestDeliveryTime[k] = CursorWidth[k][0] / HRatio[k] / PixelClock[k] / cursor_req_per_width;
@@ -6146,7 +6146,7 @@ static void CalculateMetaAndPTETimes(
                        } else {
                                meta_chunk_width_chroma = MetaChunkSize * 1024 * 256 / BytePerPixelC[k] / meta_row_height_chroma[k];
                                min_meta_chunk_width_chroma = MinMetaChunkSizeBytes * 256 / BytePerPixelC[k] / meta_row_height_chroma[k];
-                               meta_chunk_per_row_int_chroma = (double) meta_row_width_chroma[k] / meta_chunk_width_chroma;
+                               meta_chunk_per_row_int_chroma = (unsigned int)((double) meta_row_width_chroma[k] / meta_chunk_width_chroma);
                                meta_row_remainder_chroma = meta_row_width_chroma[k] % meta_chunk_width_chroma;
                                if (SourceScan[k] != dm_vert) {
                                        meta_chunk_threshold_chroma = 2 * min_meta_chunk_width_chroma - meta_req_width_chroma[k];
@@ -6179,7 +6179,7 @@ static void CalculateMetaAndPTETimes(
                        } else {
                                dpte_group_width_luma = dpte_group_bytes[k] / PTERequestSizeY[k] * PixelPTEReqHeightY[k];
                        }
-                       dpte_groups_per_row_luma_ub = dml_ceil(1.0 * dpte_row_width_luma_ub[k] / dpte_group_width_luma, 1);
+                       dpte_groups_per_row_luma_ub = (unsigned int)dml_ceil(1.0 * dpte_row_width_luma_ub[k] / dpte_group_width_luma, 1);
                        time_per_pte_group_nom_luma[k] = DST_Y_PER_PTE_ROW_NOM_L[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
                        time_per_pte_group_vblank_luma[k] = DestinationLinesToRequestRowInVBlank[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
                        time_per_pte_group_flip_luma[k] = DestinationLinesToRequestRowInImmediateFlip[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
@@ -6193,7 +6193,7 @@ static void CalculateMetaAndPTETimes(
                                } else {
                                        dpte_group_width_chroma = dpte_group_bytes[k] / PTERequestSizeC[k] * PixelPTEReqHeightC[k];
                                }
-                               dpte_groups_per_row_chroma_ub = dml_ceil(1.0 * dpte_row_width_chroma_ub[k] / dpte_group_width_chroma, 1);
+                               dpte_groups_per_row_chroma_ub = (unsigned int)dml_ceil(1.0 * dpte_row_width_chroma_ub[k] / dpte_group_width_chroma, 1);
                                time_per_pte_group_nom_chroma[k] = DST_Y_PER_PTE_ROW_NOM_C[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
                                time_per_pte_group_vblank_chroma[k] = DestinationLinesToRequestRowInVBlank[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
                                time_per_pte_group_flip_chroma[k] = DestinationLinesToRequestRowInImmediateFlip[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
@@ -6241,28 +6241,28 @@ static void CalculateVMGroupAndRequestTimes(
                if (GPUVMEnable == true && (DCCEnable[k] == true || GPUVMMaxPageTableLevels > 1)) {
                        if (DCCEnable[k] == false) {
                                if (BytePerPixelC[k] > 0) {
-                                       num_group_per_lower_vm_stage = dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                       + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                       num_group_per_lower_vm_stage = (int)(dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                       + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                } else {
-                                       num_group_per_lower_vm_stage = dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                       num_group_per_lower_vm_stage = (int)dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
                                }
                        } else {
                                if (GPUVMMaxPageTableLevels == 1) {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)(dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
                                        }
                                } else {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = 2 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                               num_group_per_lower_vm_stage = (int)(2 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
                                                                + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1)
                                                                + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = 1 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)(1 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1));
                                        }
                                }
                        }
@@ -6573,8 +6573,8 @@ static void CalculateStutterEfficiency(
 #endif
                *StutterEfficiencyNotIncludingVBlank = dml_max(0., 1 - (SRExitTime + StutterBurstTime) / *StutterPeriod) * 100;
                *Z8StutterEfficiencyNotIncludingVBlank = dml_max(0., 1 - (SRExitZ8Time + StutterBurstTime) / *StutterPeriod) * 100;
-               *NumberOfStutterBurstsPerFrame = (*StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
-               *Z8NumberOfStutterBurstsPerFrame = (*Z8StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
+               *NumberOfStutterBurstsPerFrame = (int)(*StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
+               *Z8NumberOfStutterBurstsPerFrame = (int)(*Z8StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
        } else {
                *StutterEfficiencyNotIncludingVBlank = 0.;
                *Z8StutterEfficiencyNotIncludingVBlank = 0.;
@@ -6755,17 +6755,17 @@ static void CalculateSwathAndDETConfiguration(
                        }
                }
 
-               RoundedUpMaxSwathSizeBytesY = swath_width_luma_ub[k] * BytePerPixDETY[k] * MaximumSwathHeightY[k];
-               RoundedUpMinSwathSizeBytesY = swath_width_luma_ub[k] * BytePerPixDETY[k] * MinimumSwathHeightY;
+               RoundedUpMaxSwathSizeBytesY = (int)(swath_width_luma_ub[k] * BytePerPixDETY[k] * MaximumSwathHeightY[k]);
+               RoundedUpMinSwathSizeBytesY = (int)(swath_width_luma_ub[k] * BytePerPixDETY[k] * MinimumSwathHeightY);
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesY = dml_ceil((double) RoundedUpMaxSwathSizeBytesY, 256);
-                       RoundedUpMinSwathSizeBytesY = dml_ceil((double) RoundedUpMinSwathSizeBytesY, 256);
+                       RoundedUpMaxSwathSizeBytesY = (int)dml_ceil((double) RoundedUpMaxSwathSizeBytesY, 256);
+                       RoundedUpMinSwathSizeBytesY = (int)dml_ceil((double) RoundedUpMinSwathSizeBytesY, 256);
                }
-               RoundedUpMaxSwathSizeBytesC = swath_width_chroma_ub[k] * BytePerPixDETC[k] * MaximumSwathHeightC[k];
-               RoundedUpMinSwathSizeBytesC = swath_width_chroma_ub[k] * BytePerPixDETC[k] * MinimumSwathHeightC;
+               RoundedUpMaxSwathSizeBytesC = (int)(swath_width_chroma_ub[k] * BytePerPixDETC[k] * MaximumSwathHeightC[k]);
+               RoundedUpMinSwathSizeBytesC = (int)(swath_width_chroma_ub[k] * BytePerPixDETC[k] * MinimumSwathHeightC);
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesC = dml_ceil(RoundedUpMaxSwathSizeBytesC, 256);
-                       RoundedUpMinSwathSizeBytesC = dml_ceil(RoundedUpMinSwathSizeBytesC, 256);
+                       RoundedUpMaxSwathSizeBytesC = (int)dml_ceil(RoundedUpMaxSwathSizeBytesC, 256);
+                       RoundedUpMinSwathSizeBytesC = (int)dml_ceil(RoundedUpMinSwathSizeBytesC, 256);
                }
 
                if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC <= DETBufferSizeInKByte * 1024 / 2) {
@@ -6794,14 +6794,14 @@ static void CalculateSwathAndDETConfiguration(
                {
                double actDETBufferSizeInKByte = dml_ceil(DETBufferSizeInKByte, 64);
                if (SwathHeightC[k] == 0) {
-                       DETBufferSizeY[k] = actDETBufferSizeInKByte * 1024;
+                       DETBufferSizeY[k] = (unsigned int)(actDETBufferSizeInKByte * 1024);
                        DETBufferSizeC[k] = 0;
                } else if (RoundedUpSwathSizeBytesY <= 1.5 * RoundedUpSwathSizeBytesC) {
-                       DETBufferSizeY[k] = actDETBufferSizeInKByte * 1024 / 2;
-                       DETBufferSizeC[k] = actDETBufferSizeInKByte * 1024 / 2;
+                       DETBufferSizeY[k] = (unsigned int)(actDETBufferSizeInKByte * 1024 / 2);
+                       DETBufferSizeC[k] = (unsigned int)(actDETBufferSizeInKByte * 1024 / 2);
                } else {
-                       DETBufferSizeY[k] = dml_floor(actDETBufferSizeInKByte * 1024 * 2 / 3, 1024);
-                       DETBufferSizeC[k] = actDETBufferSizeInKByte * 1024 / 3;
+                       DETBufferSizeY[k] = (unsigned int)dml_floor(actDETBufferSizeInKByte * 1024 * 2 / 3, 1024);
+                       DETBufferSizeC[k] = (unsigned int)(actDETBufferSizeInKByte * 1024 / 3);
                }
 
                if (RoundedUpMinSwathSizeBytesY + RoundedUpMinSwathSizeBytesC > actDETBufferSizeInKByte * 1024 / 2 || SwathWidth[k] > MaximumSwathWidthLuma[k]
@@ -6901,8 +6901,8 @@ static void CalculateSwathWidth(
                        SwathWidthC[k] = SwathWidthSingleDPPC[k];
                }
                {
-               int surface_width_ub_l = dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
-               int surface_height_ub_l = dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
+               int surface_width_ub_l = (int)dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
+               int surface_height_ub_l = (int)dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
 
 #ifdef __DML_VBA_DEBUG__
                dml_print("DML::%s: k=%d surface_width_ub_l=%0d\n", __func__, k, surface_width_ub_l);
@@ -6911,11 +6911,11 @@ static void CalculateSwathWidth(
                if (SourceScan[k] != dm_vert) {
                        MaximumSwathHeightY[k] = Read256BytesBlockHeightY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockHeightC[k];
-                       swath_width_luma_ub[k] = dml_min(surface_width_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockWidthY[k]) + Read256BytesBlockWidthY[k]);
+                       swath_width_luma_ub[k] = (int)dml_min(surface_width_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockWidthY[k]) + Read256BytesBlockWidthY[k]);
                        if (BytePerPixC[k] > 0) {
-                               int surface_width_ub_c = dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
+                               int surface_width_ub_c = (int)dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
 
-                               swath_width_chroma_ub[k] = dml_min(
+                               swath_width_chroma_ub[k] = (int)dml_min(
                                                surface_width_ub_c,
                                                (int) dml_ceil(SwathWidthC[k] - 1, Read256BytesBlockWidthC[k]) + Read256BytesBlockWidthC[k]);
                        } else {
@@ -6924,11 +6924,11 @@ static void CalculateSwathWidth(
                } else {
                        MaximumSwathHeightY[k] = Read256BytesBlockWidthY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockWidthC[k];
-                       swath_width_luma_ub[k] = dml_min(surface_height_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockHeightY[k]) + Read256BytesBlockHeightY[k]);
+                       swath_width_luma_ub[k] = (int)dml_min(surface_height_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockHeightY[k]) + Read256BytesBlockHeightY[k]);
                        if (BytePerPixC[k] > 0) {
-                               int surface_height_ub_c = dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
+                               int surface_height_ub_c = (int)dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
 
-                               swath_width_chroma_ub[k] = dml_min(
+                               swath_width_chroma_ub[k] = (int)dml_min(
                                                surface_height_ub_c,
                                                (int) dml_ceil(SwathWidthC[k] - 1, Read256BytesBlockHeightC[k]) + Read256BytesBlockHeightC[k]);
                        } else {
@@ -7010,9 +7010,9 @@ static double CalculateExtraLatencyBytes(
                if (HostVMMinPageSize < 2048) {
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                } else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576) {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                } else {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
                }
        } else {
                HostVMDynamicLevels = 0;
@@ -7222,7 +7222,7 @@ static void CalculateUnboundedRequestAndCompressedBufferSize(
        double actDETBufferSizeInKByte = dml_ceil(DETBufferSizeInKByte, 64);
 
        *UnboundedRequestEnabled = UnboundedRequest(UseUnboundedRequestingFinal, TotalActiveDPP, NoChromaPlanes, Output[0]);
-       *CompressedBufferSizeInkByte = (
+       *CompressedBufferSizeInkByte = (int)(
                        *UnboundedRequestEnabled == true ?
                                        ConfigReturnBufferSizeInKByte - TotalActiveDPP * actDETBufferSizeInKByte :
                                        ConfigReturnBufferSizeInKByte - MaxNumDPP * actDETBufferSizeInKByte);
index dfa1bc31eb0a3da8c7586d112e3524cb77197df7..ada80b3086ff2a58626f4a3ac43b101b10cfcb09 100644 (file)
@@ -117,11 +117,11 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib, display_rq_regs_s
 
        extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_l), &rq_param->sizing.rq_l);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height), 1) - 3;
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height), 1) - 3);
 
        if (rq_param->yuv420) {
                extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_c), &rq_param->sizing.rq_c);
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height), 1) - 3;
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height), 1) - 3);
        }
 
        rq_regs->rq_regs_l.swath_height = dml_log2(rq_param->dlg.rq_l.swath_height);
@@ -141,12 +141,12 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib, display_rq_regs_s
        // Note: detile_buf_plane1_addr is in unit of 1KB
        if (rq_param->yuv420) {
                if ((double) rq_param->misc.rq_l.stored_swath_bytes / (double) rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 1024.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 1024.0); // half to chroma
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                                        dml_print("DML_DLG: %s: detile_buf_plane1_addr = %0d (1/2 to chroma)\n", __func__, detile_buf_plane1_addr);
 #endif
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple((unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0), 1024, 0) / 1024.0; // 2/3 to luma
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple((unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0), 1024, 0) / 1024.0); // 2/3 to luma
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                                        dml_print("DML_DLG: %s: detile_buf_plane1_addr = %0d (1/3 chroma)\n", __func__, detile_buf_plane1_addr);
 #endif
@@ -189,8 +189,8 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib, display_rq_p
 #endif
 
        if (rq_param->yuv420_10bpc) {
-               full_swath_bytes_packed_l = dml_round_to_multiple(rq_param->misc.rq_l.full_swath_bytes * 2.0 / 3.0, 256, 1) + 256;
-               full_swath_bytes_packed_c = dml_round_to_multiple(rq_param->misc.rq_c.full_swath_bytes * 2.0 / 3.0, 256, 1) + 256;
+               full_swath_bytes_packed_l = (unsigned int)(dml_round_to_multiple((unsigned int)(rq_param->misc.rq_l.full_swath_bytes * 2.0 / 3.0), 256, 1) + 256);
+               full_swath_bytes_packed_c = (unsigned int)(dml_round_to_multiple((unsigned int)(rq_param->misc.rq_c.full_swath_bytes * 2.0 / 3.0), 256, 1) + 256);
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                dml_print("DML_DLG: %s: full_swath_bytes_packed_l = %0d (3-2 packing)\n", __func__, full_swath_bytes_packed_l);
                dml_print("DML_DLG: %s: full_swath_bytes_packed_c = %0d (3-2 packing)\n", __func__, full_swath_bytes_packed_c);
@@ -421,7 +421,7 @@ static void get_meta_and_pte_attr(
        // "/2" is like square root
        // blk is vertical biased
        if (tiling != dm_sw_linear)
-               log2_blk_height = log2_blk256_height + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+               log2_blk_height = (unsigned int)(log2_blk256_height + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1));
        else
                log2_blk_height = 0;    // blk height of 1
 
@@ -574,7 +574,7 @@ static void get_meta_and_pte_attr(
        if (surf_linear) {
                unsigned int dpte_row_height;
 
-               log2_dpte_row_height_linear = dml_floor(dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch), 1);
+               log2_dpte_row_height_linear = (unsigned int)(dml_floor(dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch), 1));
 
                dml_print("DML_DLG: %s: is_chroma                   = %d\n", __func__, is_chroma);
                dml_print("DML_DLG: %s: dpte_buf_in_pte_reqs        = %d\n", __func__, dpte_buf_in_pte_reqs);
@@ -640,7 +640,7 @@ static void get_meta_and_pte_attr(
 
        // since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
        // the upper bound for the dpte groups per row is as follows.
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil((double) dpte_row_width_ub / dpte_group_width, 1);
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil((double) dpte_row_width_ub / dpte_group_width, 1);
 }
 
 static void get_surf_rq_param(
@@ -665,7 +665,7 @@ static void get_surf_rq_param(
                vp_height = pipe_param->src.viewport_height_c;
                data_pitch = pipe_param->src.data_pitch_c;
                meta_pitch = pipe_param->src.meta_pitch_c;
-               surface_height = pipe_param->src.surface_height_y / 2.0;
+               surface_height = (unsigned int)(pipe_param->src.surface_height_y / 2.0);
        } else {
                vp_width = pipe_param->src.viewport_width / ppe;
                vp_height = pipe_param->src.viewport_height;
@@ -683,18 +683,18 @@ static void get_surf_rq_param(
                access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
                hactive_odm = pipe_param->dest.hactive / ((unsigned int) pipe_param->dest.odm_combine * 2);
                if (is_chroma) {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
-                       src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width);
+                       src_hactive_odm = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm);
                } else {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
-                       src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width);
+                       src_hactive_odm = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm);
                }
 
                if (access_dir == 0) {
-                       vp_width = dml_min(full_src_vp_width, src_hactive_odm);
+                       vp_width = (unsigned int)dml_min(full_src_vp_width, src_hactive_odm);
                        dml_print("DML_DLG: %s: vp_width = %d\n", __func__, vp_width);
                } else {
-                       vp_height = dml_min(full_src_vp_width, src_hactive_odm);
+                       vp_height = (unsigned int)dml_min(full_src_vp_width, src_hactive_odm);
                        dml_print("DML_DLG: %s: vp_height = %d\n", __func__, vp_height);
 
                }
@@ -814,7 +814,7 @@ static void calculate_ttu_cursor(
                                cur_req_size = 256;
                }
 
-               cur_req_width = (double) cur_req_size / ((double) cur_bit_per_pixel / 8.0);
+               cur_req_width = (unsigned int)((double) cur_req_size / ((double) cur_bit_per_pixel / 8.0));
                cur_width_ub = dml_ceil((double) cur_src_width / (double) cur_req_width, 1) * (double) cur_req_width;
                cur_req_per_width = cur_width_ub / (double) cur_req_width;
                hactive_cur = (double) cur_src_width / hscl_ratio; // FIXME: oswin to think about what to do for cursor
@@ -1051,8 +1051,8 @@ static void dml_rq_dlg_get_dlg_params(
        if (interlaced)
                vstartup_start = vstartup_start / 2;
 
-       dst_x_after_scaler = get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
-       dst_y_after_scaler = get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
+       dst_x_after_scaler = (unsigned int)get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
+       dst_y_after_scaler = (unsigned int)get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
 
        // do some adjustment on the dst_after scaler to account for odm combine mode
        dml_print("DML_DLG: %s: input dst_x_after_scaler   = %d\n", __func__, dst_x_after_scaler);
@@ -1278,9 +1278,9 @@ static void dml_rq_dlg_get_dlg_params(
        }
 
        if (src->dynamic_metadata_enable && src->gpuvm)
-               disp_dlg_regs->refcyc_per_vm_dmdata = get_refcyc_per_vm_dmdata_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
+               disp_dlg_regs->refcyc_per_vm_dmdata = (unsigned int)(get_refcyc_per_vm_dmdata_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
 
-       disp_dlg_regs->dmdata_dl_delta = get_dmdata_dl_delta_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
+       disp_dlg_regs->dmdata_dl_delta = (unsigned int)(get_dmdata_dl_delta_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
 
        // TTU - Luma / Chroma
        if (access_dir) {  // vertical access
@@ -1386,8 +1386,8 @@ static void dml_rq_dlg_get_dlg_params(
                                src->cur0_src_width,
                                (enum cursor_bpp) (src->cur0_bpp));
 
-               vba__refcyc_per_req_delivery_pre_cur0 = get_refcyc_per_cursor_req_delivery_pre_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
-               vba__refcyc_per_req_delivery_cur0 = get_refcyc_per_cursor_req_delivery_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
+                               vba__refcyc_per_req_delivery_pre_cur0 = (float)(get_refcyc_per_cursor_req_delivery_pre_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
+                               vba__refcyc_per_req_delivery_cur0 = (float)(get_refcyc_per_cursor_req_delivery_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
 
                dml_print("DML_DLG: %s: refcyc_per_req_delivery_pre_cur0 = %3.2f\n", __func__, refcyc_per_req_delivery_pre_cur0);
                dml_print("DML_DLG: %s: refcyc_per_req_delivery_cur0     = %3.2f\n", __func__, refcyc_per_req_delivery_cur0);
@@ -1407,7 +1407,7 @@ static void dml_rq_dlg_get_dlg_params(
        // Assignment to register structures
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
        ASSERT(disp_dlg_regs->dst_y_after_scaler < (unsigned int)8);
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq;       // in terms of refclk
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq);       // in terms of refclk
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int)dml_pow(2, 13));
        disp_dlg_regs->dst_y_prefetch = (unsigned int) (dst_y_prefetch * dml_pow(2, 2));
        disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int) (dst_y_per_vm_vblank * dml_pow(2, 2));
@@ -1444,23 +1444,23 @@ static void dml_rq_dlg_get_dlg_params(
                disp_dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int) (dst_y_per_row_flip * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c;
        }
 
-       disp_dlg_regs->refcyc_per_vm_group_vblank = get_refcyc_per_vm_group_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;            // From VBA
-       disp_dlg_regs->refcyc_per_vm_group_flip = get_refcyc_per_vm_group_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;            // From VBA
-       disp_dlg_regs->refcyc_per_vm_req_vblank = get_refcyc_per_vm_req_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10); // From VBA
-       disp_dlg_regs->refcyc_per_vm_req_flip = get_refcyc_per_vm_req_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);   // From VBA
+       disp_dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(get_refcyc_per_vm_group_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);            // From VBA
+       disp_dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(get_refcyc_per_vm_group_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);            // From VBA
+       disp_dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(get_refcyc_per_vm_req_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10)); // From VBA
+       disp_dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(get_refcyc_per_vm_req_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));   // From VBA
 
        // Clamp to max for now
        if (disp_dlg_regs->refcyc_per_vm_group_vblank >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_group_flip >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_req_vblank >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_req_flip >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int) ((double) dpte_row_height_l / (double) vratio_l * dml_pow(2, 2));
        ASSERT(disp_dlg_regs->dst_y_per_pte_row_nom_l < (unsigned int)dml_pow(2, 17));
@@ -1484,23 +1484,23 @@ static void dml_rq_dlg_get_dlg_params(
        disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int) ((double) dpte_row_height_l / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) dpte_groups_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
        disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int) ((double) meta_row_height_l / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) meta_chunks_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dual_plane) {
                disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int) ((double) dpte_row_height_c / (double) vratio_c * (double) htotal * ref_freq_to_pix_freq
                                / (double) dpte_groups_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
 
                // TODO: Is this the right calculation? Does htotal need to be halved?
                disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int) ((double) meta_row_height_c / (double) vratio_c * (double) htotal * ref_freq_to_pix_freq
                                / (double) meta_chunks_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
 
        disp_dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int) dml_floor(refcyc_per_line_delivery_pre_l, 1);
@@ -1541,7 +1541,7 @@ static void dml_rq_dlg_get_dlg_params(
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
@@ -1572,7 +1572,7 @@ void dml31_rq_dlg_get_dlg_reg(
        dlg_sys_param.t_mclk_wm_us = get_wm_dram_clock_change(mode_lib, e2e_pipe_param, num_pipes);
        dlg_sys_param.t_sr_wm_us = get_wm_stutter_enter_exit(mode_lib, e2e_pipe_param, num_pipes);
        dlg_sys_param.total_flip_bw = get_total_immediate_flip_bw(mode_lib, e2e_pipe_param, num_pipes);
-       dlg_sys_param.total_flip_bytes = get_total_immediate_flip_bytes(mode_lib, e2e_pipe_param, num_pipes);
+       dlg_sys_param.total_flip_bytes = (unsigned int)get_total_immediate_flip_bytes(mode_lib, e2e_pipe_param, num_pipes);
 
        print__dlg_sys_params_st(mode_lib, &dlg_sys_param);
 
index ab016c294ba7e5057c79998f90d0aae99c89a2f0..6263d082ebe85ef59d6048e8c448fa04e7c541ed 100644 (file)
@@ -284,11 +284,11 @@ static bool is_dual_plane(enum surface_pixel_format format)
 static unsigned int micro_sec_to_vert_lines(unsigned int num_us, struct dc_crtc_timing *timing)
 {
        unsigned int num_lines = 0;
-       unsigned int lines_time_in_ns = 1000.0 *
-                       (((float)timing->h_total * 1000.0) /
-                        ((float)timing->pix_clk_100hz / 10.0));
+       double lines_time_in_ns = 1000.0 *
+                       (((double)timing->h_total * 1000.0) /
+                        ((double)timing->pix_clk_100hz / 10.0));
 
-       num_lines = dml_ceil(1000.0 * num_us / lines_time_in_ns, 1.0);
+       num_lines = (unsigned int)dml_ceil(1000.0 * num_us / lines_time_in_ns, 1.0);
 
        return num_lines;
 }
index 033fde774337f126b91b1eedb8441cf688251069..2dcaf192dedda119af7355fefe84955b3e7492b0 100644 (file)
@@ -718,7 +718,7 @@ static unsigned int dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -1003,13 +1003,13 @@ static bool CalculatePrefetchSchedule(
        *Tdmdl_vm = (DynamicMetadataEnable == true && DynamicMetadataVMEnabled == true && GPUVMEnable == true ? TWait + Tvm_trips : 0);
 
        if (myPipe->ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + myPipe->NumberOfCursors * DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + myPipe->NumberOfCursors * DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)DISPCLKDelaySubtotal;
 
        if (myPipe->DPPCLK == 0.0 || myPipe->DISPCLK == 0.0)
                return true;
@@ -1571,11 +1571,11 @@ static void CalculateDCCConfiguration(
                horz_div_c = 0;
 
        if (BytePerPixelC == 0) {
-               swath_buf_size = DETBufferSize / 2 - 2 * 256;
+               swath_buf_size = (int)(DETBufferSize / 2 - 2 * 256);
                detile_buf_vp_horz_limit = (double) swath_buf_size / ((double) RequestHeight256ByteLuma * BytePerPixelY / (1 + horz_div_l));
                detile_buf_vp_vert_limit = (double) swath_buf_size / (256.0 / RequestHeight256ByteLuma / (1 + vert_div_l));
        } else {
-               swath_buf_size = DETBufferSize / 2 - 2 * 2 * 256;
+               swath_buf_size = (int)(DETBufferSize / 2 - 2 * 2 * 256);
                detile_buf_vp_horz_limit = (double) swath_buf_size
                                / ((double) RequestHeight256ByteLuma * BytePerPixelY / (1 + horz_div_l)
                                                + (double) RequestHeight256ByteChroma * BytePerPixelC / (1 + horz_div_c) / (1 + yuv420));
@@ -1593,8 +1593,8 @@ static void CalculateDCCConfiguration(
 
        MAS_vp_horz_limit = SourcePixelFormat == dm_rgbe_alpha ? 3840 : 5760;
        MAS_vp_vert_limit = (BytePerPixelC > 0 ? 2880 : 5760);
-       max_vp_horz_width = dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
-       max_vp_vert_height = dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
+       max_vp_horz_width = (int)dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
+       max_vp_vert_height = (int)dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
        eff_surf_width_l = (SurfaceWidthLuma > max_vp_horz_width ? max_vp_horz_width : SurfaceWidthLuma);
        eff_surf_width_c = eff_surf_width_l / (1 + yuv420);
        eff_surf_height_l = (SurfaceHeightLuma > max_vp_vert_height ? max_vp_vert_height : SurfaceHeightLuma);
@@ -1611,10 +1611,10 @@ static void CalculateDCCConfiguration(
        }
 
        if (SourcePixelFormat == dm_420_10) {
-               full_swath_bytes_horz_wc_l = dml_ceil(full_swath_bytes_horz_wc_l * 2 / 3, 256);
-               full_swath_bytes_horz_wc_c = dml_ceil(full_swath_bytes_horz_wc_c * 2 / 3, 256);
-               full_swath_bytes_vert_wc_l = dml_ceil(full_swath_bytes_vert_wc_l * 2 / 3, 256);
-               full_swath_bytes_vert_wc_c = dml_ceil(full_swath_bytes_vert_wc_c * 2 / 3, 256);
+               full_swath_bytes_horz_wc_l = (int)dml_ceil(full_swath_bytes_horz_wc_l * 2 / 3, 256);
+               full_swath_bytes_horz_wc_c = (int)dml_ceil(full_swath_bytes_horz_wc_c * 2 / 3, 256);
+               full_swath_bytes_vert_wc_l = (int)dml_ceil(full_swath_bytes_vert_wc_l * 2 / 3, 256);
+               full_swath_bytes_vert_wc_c = (int)dml_ceil(full_swath_bytes_vert_wc_c * 2 / 3, 256);
        }
 
        if (2 * full_swath_bytes_horz_wc_l + 2 * full_swath_bytes_horz_wc_c <= DETBufferSize) {
@@ -1777,20 +1777,20 @@ static double CalculatePrefetchSourceLines(
 
        if (!v->IgnoreViewportPositioning) {
 
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0;
+               *MaxNumSwath = (unsigned int)(dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1.0);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 2) % SwathHeight;
                else
                        MaxPartialSwath = (unsigned int) (*VInitPreFill + SwathHeight - 2) % SwathHeight;
-               MaxPartialSwath = dml_max(1U, MaxPartialSwath);
+               MaxPartialSwath = (unsigned int)dml_max(1U, MaxPartialSwath);
 
        } else {
 
                if (ViewportYStart != 0)
                        dml_print("WARNING DML: using viewport y position of 0 even though actual viewport y position is non-zero in prefetch source lines calculation\n");
 
-               *MaxNumSwath = dml_ceil(*VInitPreFill / SwathHeight, 1);
+               *MaxNumSwath = (unsigned int)dml_ceil(*VInitPreFill / SwathHeight, 1);
 
                if (*VInitPreFill > 1.0)
                        MaxPartialSwath = (unsigned int) (*VInitPreFill - 1) % SwathHeight;
@@ -1865,9 +1865,9 @@ static unsigned int CalculateVMAndRowBytes(
                if (HostVMMinPageSize < 2048) {
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                } else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576) {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                } else {
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
                }
        }
 
@@ -1875,16 +1875,16 @@ static unsigned int CalculateVMAndRowBytes(
        *MetaRequestWidth = 8 * BlockWidth256Bytes;
        if (ScanDirection != dm_vert) {
                *meta_row_height = *MetaRequestHeight;
-               *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestWidth) + *MetaRequestWidth;
-               *MetaRowByte = *meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0;
+               *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestWidth) + *MetaRequestWidth);
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0);
        } else {
                *meta_row_height = *MetaRequestWidth;
-               *meta_row_width = dml_ceil((double) SwathWidth - 1, *MetaRequestHeight) + *MetaRequestHeight;
-               *MetaRowByte = *meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0;
+               *meta_row_width = (unsigned int)(dml_ceil((double) SwathWidth - 1, *MetaRequestHeight) + *MetaRequestHeight);
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0);
        }
-       DCCMetaSurfaceBytes = DCCMetaPitch * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes) * BytePerPixel / 256;
+       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch * (dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes) * BytePerPixel / 256);
        if (GPUVMEnable == true) {
-               *MetaPTEBytesFrame = (dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) / (8 * 4.0 * 1024), 1) + 1) * 64;
+               *MetaPTEBytesFrame = (int)((dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) / (8 * 4.0 * 1024), 1) + 1) * 64);
                MPDEBytesFrame = 128 * (v->GPUVMMaxPageTableLevels - 1);
        } else {
                *MetaPTEBytesFrame = 0;
@@ -1908,17 +1908,17 @@ static unsigned int CalculateVMAndRowBytes(
 
        if (GPUVMEnable == true && v->GPUVMMaxPageTableLevels > 1) {
                if (ScanDirection != dm_vert) {
-                       *DPDE0BytesFrame = 64
+                       *DPDE0BytesFrame = (int)(64
                                        * (dml_ceil(
                                                        ((Pitch * (dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes)
                                                                        / (8 * 2097152),
-                                                       1) + 1);
+                                                       1) + 1));
                } else {
-                       *DPDE0BytesFrame = 64
+                       *DPDE0BytesFrame = (int)(64
                                        * (dml_ceil(
                                                        ((Pitch * (dml_ceil((double) SwathWidth - 1, MacroTileHeight) + MacroTileHeight) * BytePerPixel) - MacroTileSizeBytes)
                                                                        / (8 * 2097152),
-                                                       1) + 1);
+                                                       1) + 1));
                }
                ExtraDPDEBytesFrame = 128 * (v->GPUVMMaxPageTableLevels - 2);
        } else {
@@ -1946,7 +1946,7 @@ static unsigned int CalculateVMAndRowBytes(
        if (SurfaceTiling == dm_sw_linear) {
                PixelPTEReqHeightPTEs = 1;
                *PixelPTEReqHeight = 1;
-               *PixelPTEReqWidth = 32768.0 / BytePerPixel;
+               *PixelPTEReqWidth = (unsigned int)(32768.0 / BytePerPixel);
                *PTERequestSize = 64;
                FractionOfPTEReturnDrop = 0;
        } else if (GPUVMMinPageSize == 4 && MacroTileSizeBytes > 4096) {
@@ -1964,16 +1964,16 @@ static unsigned int CalculateVMAndRowBytes(
        }
 
        if (SurfaceTiling == dm_sw_linear) {
-               *dpte_row_height = dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
-               *dpte_row_width_ub = (dml_ceil((double)(Pitch * *dpte_row_height - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+               *dpte_row_height = (unsigned int)dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
+               *dpte_row_width_ub = (int)((dml_ceil((double)(Pitch * *dpte_row_height - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else if (ScanDirection != dm_vert) {
                *dpte_row_height = *PixelPTEReqHeight;
-               *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+               *dpte_row_width_ub = (int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else {
-               *dpte_row_height = dml_min(*PixelPTEReqWidth, *MacroTileWidth);
-               *dpte_row_width_ub = (dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight;
+               *dpte_row_height = (unsigned int)dml_min(*PixelPTEReqWidth, *MacroTileWidth);
+               *dpte_row_width_ub = (int)((dml_ceil((double) (SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1) * *PixelPTEReqHeight);
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqHeight * *PTERequestSize;
        }
 
@@ -2059,9 +2059,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                        v->WritebackHTaps[k],
                                                        v->WritebackVTaps[k],
                                                        v->WritebackSourceWidth[k],
-                                                       v->WritebackDestinationWidth[k],
+                                                       (long)v->WritebackDestinationWidth[k],
                                                        v->HTotal[k],
-                                                       v->WritebackLineBufferSize));
+                                                       (unsigned int)v->WritebackLineBufferSize));
                }
        }
 
@@ -2247,7 +2247,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        v->DPPCLK,
                        v->ReadBandwidthPlaneLuma,
                        v->ReadBandwidthPlaneChroma,
-                       v->ReturnBusWidth,
+                       (int)v->ReturnBusWidth,
                        &v->DCFCLKDeepSleep);
 
        // DSCCLK
@@ -2284,7 +2284,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->DSCDelay[k] = dscceComputeDelay(
                                                v->DSCInputBitPerComponent[k],
                                                BPP,
-                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
                                                v->NumberOfDSCSlices[k],
                                                v->OutputFormat[k],
                                                v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
@@ -2293,8 +2293,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                * (dscceComputeDelay(
                                                                v->DSCInputBitPerComponent[k],
                                                                BPP,
-                                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
-                                                               v->NumberOfDSCSlices[k] / 2.0,
+                                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                                               (unsigned int)(v->NumberOfDSCSlices[k] / 2.0),
                                                                v->OutputFormat[k],
                                                                v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
                        } else {
@@ -2302,13 +2302,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                * (dscceComputeDelay(
                                                                v->DSCInputBitPerComponent[k],
                                                                BPP,
-                                                               dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
-                                                               v->NumberOfDSCSlices[k] / 4.0,
+                                                               (unsigned int)dml_ceil((double) v->HActive[k] / v->NumberOfDSCSlices[k], 1),
+                                                               (unsigned int)(v->NumberOfDSCSlices[k] / 4.0),
                                                                v->OutputFormat[k],
                                                                v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
                        }
-                       v->DSCDelay[k] = v->DSCDelay[k] + (v->HTotal[k] - v->HActive[k]) * dml_ceil((double) v->DSCDelay[k] / v->HActive[k], 1);
-                       v->DSCDelay[k] = v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k];
+                       v->DSCDelay[k] = (unsigned int)(v->DSCDelay[k] + (v->HTotal[k] - v->HActive[k]) * dml_ceil((double) v->DSCDelay[k] / v->HActive[k], 1));
+                       v->DSCDelay[k] = (unsigned int)(v->DSCDelay[k] * v->PixelClock[k] / v->PixelClockBackEnd[k]);
                } else {
                        v->DSCDelay[k] = 0;
                }
@@ -2349,13 +2349,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        v->SurfaceTiling[k],
                                        v->BytePerPixelC[k],
                                        v->SourceScan[k],
-                                       v->SwathWidthC[k],
+                                       (unsigned int)v->SwathWidthC[k],
                                        v->ViewportHeightChroma[k],
                                        v->GPUVMEnable,
                                        v->HostVMEnable,
                                        v->HostVMMaxNonCachedPageTableLevels,
-                                       v->GPUVMMinPageSize,
-                                       v->HostVMMinPageSize,
+                                       (unsigned int)v->GPUVMMinPageSize,
+                                       (unsigned int)v->HostVMMinPageSize,
                                        v->PTEBufferSizeInRequestsForChroma,
                                        v->PitchC[k],
                                        v->DCCMetaPitchC[k],
@@ -2406,13 +2406,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                v->SurfaceTiling[k],
                                v->BytePerPixelY[k],
                                v->SourceScan[k],
-                               v->SwathWidthY[k],
+                               (unsigned int)v->SwathWidthY[k],
                                v->ViewportHeight[k],
                                v->GPUVMEnable,
                                v->HostVMEnable,
                                v->HostVMMaxNonCachedPageTableLevels,
-                               v->GPUVMMinPageSize,
-                               v->HostVMMinPageSize,
+                               (unsigned int)v->GPUVMMinPageSize,
+                               (unsigned int)v->HostVMMinPageSize,
                                v->PTEBufferSizeInRequestsForLuma,
                                v->PitchY[k],
                                v->DCCMetaPitchY[k],
@@ -2478,11 +2478,11 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        NoChromaPlanes = false;
        }
 
-       ReorderBytes = v->NumberOfChannels
+       ReorderBytes = (int)(v->NumberOfChannels
                        * dml_max3(
                                        v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
        VMDataOnlyReturnBW = dml_min(
                        dml_min(v->ReturnBusWidth * v->DCFCLK, v->FabricClock * v->FabricDatapathToDCNDataReturn)
@@ -2508,7 +2508,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                HostVMInefficiencyFactor = v->ReturnBW / VMDataOnlyReturnBW;
 
        v->UrgentExtraLatency = CalculateExtraLatency(
-                       v->RoundTripPingLatencyCycles,
+                       (int)v->RoundTripPingLatencyCycles,
                        ReorderBytes,
                        v->DCFCLK,
                        v->TotalActiveDPP,
@@ -2536,9 +2536,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                v->WritebackHRatio[k],
                                                                v->WritebackVRatio[k],
                                                                v->WritebackVTaps[k],
-                                                               v->WritebackDestinationWidth[k],
-                                                               v->WritebackDestinationHeight[k],
-                                                               v->WritebackSourceHeight[k],
+                                                               (int)v->WritebackDestinationWidth[k],
+                                                               (int)v->WritebackDestinationHeight[k],
+                                                               (int)v->WritebackSourceHeight[k],
                                                                v->HTotal[k]) / v->DISPCLK;
                        } else
                                v->WritebackDelay[v->VoltageLevel][k] = 0;
@@ -2552,9 +2552,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                                        v->WritebackHRatio[j],
                                                                                        v->WritebackVRatio[j],
                                                                                        v->WritebackVTaps[j],
-                                                                                       v->WritebackDestinationWidth[j],
-                                                                                       v->WritebackDestinationHeight[j],
-                                                                                       v->WritebackSourceHeight[j],
+                                                                                       (int)v->WritebackDestinationWidth[j],
+                                                                                       (int)v->WritebackDestinationHeight[j],
+                                                                                       (int)v->WritebackSourceHeight[j],
                                                                                        v->HTotal[k]) / v->DISPCLK);
                                }
                        }
@@ -2588,7 +2588,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
        v->MaximumMaxVStartupLines = 0;
        for (k = 0; k < v->NumberOfActivePlanes; ++k)
-               v->MaximumMaxVStartupLines = dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
+               v->MaximumMaxVStartupLines = (unsigned int)dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
 
        // VBA_DELTA
        // We don't really care to iterate between the various prefetch modes
@@ -2658,7 +2658,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        (unsigned int) (v->SwathWidthY[k] / v->HRatio[k]),
                                        v->OutputFormat[k],
                                        v->MaxInterDCNTileRepeaters,
-                                       dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
+                                       (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
                                        v->MaxVStartupLines[k],
                                        v->GPUVMMaxPageTableLevels,
                                        v->GPUVMEnable,
@@ -2672,15 +2672,15 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        v->UrgentLatency,
                                        v->UrgentExtraLatency,
                                        v->TCalc,
-                                       v->PDEAndMetaPTEBytesFrame[k],
-                                       v->MetaRowByte[k],
-                                       v->PixelPTEBytesPerRow[k],
+                                       (unsigned int)v->PDEAndMetaPTEBytesFrame[k],
+                                       (unsigned int)v->MetaRowByte[k],
+                                       (unsigned int)v->PixelPTEBytesPerRow[k],
                                        v->PrefetchSourceLinesY[k],
-                                       v->SwathWidthY[k],
+                                       (unsigned int)v->SwathWidthY[k],
                                        v->VInitPreFillY[k],
                                        v->MaxNumSwathY[k],
                                        v->PrefetchSourceLinesC[k],
-                                       v->SwathWidthC[k],
+                                       (unsigned int)v->SwathWidthC[k],
                                        v->VInitPreFillC[k],
                                        v->MaxNumSwathC[k],
                                        v->swath_width_luma_ub[k],
@@ -2711,7 +2711,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 #ifdef __DML_VBA_DEBUG__
                        dml_print("DML::%s: k=%0d Prefetch cal result=%0d\n", __func__, k, v->ErrorResult[k]);
 #endif
-                       v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
+                       v->VStartup[k] = (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
                }
 
                v->NoEnoughUrgentLatencyHiding = false;
@@ -2865,8 +2865,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
                        v->TotImmediateFlipBytes = 0;
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
-                               v->TotImmediateFlipBytes = v->TotImmediateFlipBytes
-                                               + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]);
+                               v->TotImmediateFlipBytes = (unsigned int)(v->TotImmediateFlipBytes
+                                               + v->DPPPerPlane[k] * (v->PDEAndMetaPTEBytesFrame[k] + v->MetaRowByte[k] + v->PixelPTEBytesPerRow[k]));
                        }
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                                CalculateFlipSchedule(
@@ -3179,11 +3179,11 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                isInterlaceTiming = (v->Interlace[k] && !v->ProgressiveToInterlaceUnitInOPP);
                v->VStartup[k] = (isInterlaceTiming ? (2 * v->MaxVStartupLines[k]) : v->MaxVStartupLines[k]);
                if (v->Interlace[k] && !v->ProgressiveToInterlaceUnitInOPP) {
-                       v->MIN_DST_Y_NEXT_START[k] = dml_floor((v->VTotal[k] - v->VFrontPorch[k] + v->VTotal[k] - v->VActive[k] - v->VStartup[k]) / 2.0, 1.0);
+                       v->MIN_DST_Y_NEXT_START[k] = (unsigned int)dml_floor((v->VTotal[k] - v->VFrontPorch[k] + v->VTotal[k] - v->VActive[k] - v->VStartup[k]) / 2.0, 1.0);
                } else {
                        v->MIN_DST_Y_NEXT_START[k] = v->VTotal[k] - v->VFrontPorch[k] + v->VTotal[k] - v->VActive[k] - v->VStartup[k];
                }
-               v->MIN_DST_Y_NEXT_START[k] += dml_floor(4.0 * v->TSetup[k] / ((double)v->HTotal[k] / v->PixelClock[k]), 1.0) / 4.0;
+               v->MIN_DST_Y_NEXT_START[k] += (unsigned int)(dml_floor(4.0 * v->TSetup[k] / ((double)v->HTotal[k] / v->PixelClock[k]), 1.0) / 4.0);
                if (((v->VUpdateOffsetPix[k] + v->VUpdateWidthPix[k] + v->VReadyOffsetPix[k]) / v->HTotal[k])
                                <= (isInterlaceTiming ?
                                                dml_floor((v->VTotal[k] - v->VActive[k] - v->VFrontPorch[k] - v->VStartup[k]) / 2.0, 1.0) :
@@ -3544,7 +3544,7 @@ static void CalculateVupdateAndDynamicMetadataParameters(
        TotalRepeaterDelayTime = MaxInterDCNTileRepeaters * (2 / DPPCLK + 3 / DISPCLK);
        *VUpdateWidthPix = dml_ceil((14.0 / DCFClkDeepSleep + 12.0 / DPPCLK + TotalRepeaterDelayTime) * PixelClock, 1.0);
        *VReadyOffsetPix = dml_ceil(dml_max(150.0 / DPPCLK, TotalRepeaterDelayTime + 20.0 / DCFClkDeepSleep + 10.0 / DPPCLK) * PixelClock, 1.0);
-       *VUpdateOffsetPix = dml_ceil(HTotal / 4.0, 1);
+       *VUpdateOffsetPix = (unsigned int)dml_ceil(HTotal / 4.0, 1);
        *TSetup = (*VUpdateOffsetPix + *VUpdateWidthPix + *VReadyOffsetPix) / PixelClock;
        *Tdmbf = DynamicMetadataTransmittedBytes / 4.0 / DISPCLK;
        *Tdmec = HTotal / PixelClock;
@@ -3829,17 +3829,17 @@ static noinline void CalculatePrefetchSchedulePerPlane(
                mode_lib,
                HostVMInefficiencyFactor,
                &myPipe,
-               v->DSCDelayPerState[i][k],
+               (unsigned int)v->DSCDelayPerState[i][k],
                v->DPPCLKDelaySubtotal + v->DPPCLKDelayCNVCFormater,
                v->DPPCLKDelaySCL,
                v->DPPCLKDelaySCLLBOnly,
                v->DPPCLKDelayCNVCCursor,
                v->DISPCLKDelaySubtotal,
-               v->SwathWidthYThisState[k] / v->HRatio[k],
+               (unsigned int)(v->SwathWidthYThisState[k] / v->HRatio[k]),
                v->OutputFormat[k],
                v->MaxInterDCNTileRepeaters,
-               dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
-               v->MaximumVStartup[i][j][k],
+               (unsigned int)dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
+               (unsigned int)v->MaximumVStartup[i][j][k],
                v->GPUVMMaxPageTableLevels,
                v->GPUVMEnable,
                v->HostVMEnable,
@@ -3852,15 +3852,15 @@ static noinline void CalculatePrefetchSchedulePerPlane(
                v->UrgLatency[i],
                v->ExtraLatency,
                v->TimeCalc,
-               v->PDEAndMetaPTEBytesPerFrame[i][j][k],
-               v->MetaRowBytes[i][j][k],
-               v->DPTEBytesPerRow[i][j][k],
+               (unsigned int)v->PDEAndMetaPTEBytesPerFrame[i][j][k],
+               (unsigned int)v->MetaRowBytes[i][j][k],
+               (unsigned int)v->DPTEBytesPerRow[i][j][k],
                v->PrefetchLinesY[i][j][k],
-               v->SwathWidthYThisState[k],
+               (unsigned int)v->SwathWidthYThisState[k],
                v->PrefillY[k],
                v->MaxNumSwY[k],
                v->PrefetchLinesC[i][j][k],
-               v->SwathWidthCThisState[k],
+               (unsigned int)v->SwathWidthCThisState[k],
                v->PrefillC[k],
                v->MaxNumSwC[k],
                v->swath_width_luma_ub_this_state[k],
@@ -4045,9 +4045,9 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        v->WritebackHTaps[k],
                                                        v->WritebackVTaps[k],
                                                        v->WritebackSourceWidth[k],
-                                                       v->WritebackDestinationWidth[k],
+                                                       (long)v->WritebackDestinationWidth[k],
                                                        v->HTotal[k],
-                                                       v->WritebackLineBufferSize));
+                                                       (unsigned int)v->WritebackLineBufferSize));
                }
        }
        for (k = 0; k < v->NumberOfActivePlanes; k++) {
@@ -4094,17 +4094,17 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                int MaximumSwathWidthSupportChroma;
 
                if (v->SurfaceTiling[k] == dm_sw_linear) {
-                       MaximumSwathWidthSupportLuma = 8192.0;
+                       MaximumSwathWidthSupportLuma = (int)8192.0;
                } else if (v->SourceScan[k] == dm_vert && v->BytePerPixelC[k] > 0) {
-                       MaximumSwathWidthSupportLuma = 2880.0;
+                       MaximumSwathWidthSupportLuma = (int)2880.0;
                } else if (v->SourcePixelFormat[k] == dm_rgbe_alpha) {
-                       MaximumSwathWidthSupportLuma = 3840.0;
+                       MaximumSwathWidthSupportLuma = (int)3840.0;
                } else {
-                       MaximumSwathWidthSupportLuma = 5760.0;
+                       MaximumSwathWidthSupportLuma = (int)5760.0;
                }
 
                if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_420_12) {
-                       MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma / 2.0;
+                       MaximumSwathWidthSupportChroma = (int)(MaximumSwathWidthSupportLuma / 2.0);
                } else {
                        MaximumSwathWidthSupportChroma = MaximumSwathWidthSupportLuma;
                }
@@ -4332,7 +4332,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                v->DISPCLK_DPPCLK_Support[i][j] = false;
                                        }
                                }
-                               v->TotalNumberOfActiveDPP[i][j] = 0.0;
+                               v->TotalNumberOfActiveDPP[i][j] = 0;
                                for (k = 0; k < v->NumberOfActivePlanes; k++) {
                                        v->TotalNumberOfActiveDPP[i][j] = v->TotalNumberOfActiveDPP[i][j] + v->NoOfDPP[i][j][k];
                                }
@@ -4369,7 +4369,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                if (v->BlendingAndTiming[k] == k) {
                        if (v->PixelClockBackEnd[k] > 3200) {
-                               v->NumberOfDSCSlices[k] = dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
+                               v->NumberOfDSCSlices[k] = (unsigned int)dml_ceil(v->PixelClockBackEnd[k] / 400.0, 4.0);
                        } else if (v->PixelClockBackEnd[k] > 1360) {
                                v->NumberOfDSCSlices[k] = 8;
                        } else if (v->PixelClockBackEnd[k] > 680) {
@@ -4431,7 +4431,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        v->PHYCLKD18PerState[k] >= 10000.0 / 18.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 10000,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4450,7 +4450,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                                v->LinkDSCEnable = true;
                                                                v->Outbpp = TruncToValidBPP(
                                                                                (1.0 - v->Downspreading / 100.0) * 10000,
-                                                                               v->OutputLinkDPLanes[k],
+                                                                               (int)v->OutputLinkDPLanes[k],
                                                                                v->HTotal[k],
                                                                                v->HActive[k],
                                                                                v->PixelClockBackEnd[k],
@@ -4473,7 +4473,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        v->PHYCLKD18PerState[k] >= 13500.0 / 18.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 13500,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4492,7 +4492,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                                v->LinkDSCEnable = true;
                                                                v->Outbpp = TruncToValidBPP(
                                                                                (1.0 - v->Downspreading / 100.0) * 13500,
-                                                                               v->OutputLinkDPLanes[k],
+                                                                               (int)v->OutputLinkDPLanes[k],
                                                                                v->HTotal[k],
                                                                                v->HActive[k],
                                                                                v->PixelClockBackEnd[k],
@@ -4515,7 +4515,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        v->PHYCLKD18PerState[k] >= 20000.0 / 18.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 20000,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4534,7 +4534,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                                v->LinkDSCEnable = true;
                                                                v->Outbpp = TruncToValidBPP(
                                                                                (1.0 - v->Downspreading / 100.0) * 20000,
-                                                                               v->OutputLinkDPLanes[k],
+                                                                               (int)v->OutputLinkDPLanes[k],
                                                                                v->HTotal[k],
                                                                                v->HActive[k],
                                                                                v->PixelClockBackEnd[k],
@@ -4557,7 +4557,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                if (v->PHYCLKPerState[i] >= 270.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 2700,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4577,7 +4577,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 540.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 5400,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4597,7 +4597,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                if (v->Outbpp == BPP_INVALID && v->PHYCLKPerState[i] >= 810.0) {
                                                        v->Outbpp = TruncToValidBPP(
                                                                        (1.0 - v->Downspreading / 100.0) * 8100,
-                                                                       v->OutputLinkDPLanes[k],
+                                                                       (int)v->OutputLinkDPLanes[k],
                                                                        v->HTotal[k],
                                                                        v->HActive[k],
                                                                        v->PixelClockBackEnd[k],
@@ -4696,7 +4696,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                        v->DSCDelayPerState[i][k] = dscceComputeDelay(
                                                        v->DSCInputBitPerComponent[k],
                                                        v->BPP,
-                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                        v->NumberOfDSCSlices[k],
                                                        v->OutputFormat[k],
                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]);
@@ -4705,7 +4705,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        * (dscceComputeDelay(
                                                                        v->DSCInputBitPerComponent[k],
                                                                        v->BPP,
-                                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                                        v->NumberOfDSCSlices[k] / 2,
                                                                        v->OutputFormat[k],
                                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
@@ -4714,7 +4714,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        * (dscceComputeDelay(
                                                                        v->DSCInputBitPerComponent[k],
                                                                        v->BPP,
-                                                                       dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
+                                                                       (unsigned int)dml_ceil(1.0 * v->HActive[k] / v->NumberOfDSCSlices[k], 1.0),
                                                                        v->NumberOfDSCSlices[k] / 4,
                                                                        v->OutputFormat[k],
                                                                        v->Output[k]) + dscComputeDelay(v->OutputFormat[k], v->Output[k]));
@@ -4802,14 +4802,14 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                        v->RequiredDPPCLKThisState,
                                        v->ReadBandwidthLuma,
                                        v->ReadBandwidthChroma,
-                                       v->ReturnBusWidth,
+                                       (int)v->ReturnBusWidth,
                                        &v->ProjectedDCFCLKDeepSleep[i][j]);
 
                        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                                v->swath_width_luma_ub_all_states[i][j][k] = v->swath_width_luma_ub_this_state[k];
                                v->swath_width_chroma_ub_all_states[i][j][k] = v->swath_width_chroma_ub_this_state[k];
-                               v->SwathWidthYAllStates[i][j][k] = v->SwathWidthYThisState[k];
-                               v->SwathWidthCAllStates[i][j][k] = v->SwathWidthCThisState[k];
+                               v->SwathWidthYAllStates[i][j][k] = (unsigned int)v->SwathWidthYThisState[k];
+                               v->SwathWidthCAllStates[i][j][k] = (unsigned int)v->SwathWidthCThisState[k];
                                v->SwathHeightYAllStates[i][j][k] = v->SwathHeightYThisState[k];
                                v->SwathHeightCAllStates[i][j][k] = v->SwathHeightCThisState[k];
                                v->DETBufferSizeYAllStates[i][j][k] = v->DETBufferSizeYThisState[k];
@@ -4834,8 +4834,8 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
                                v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
                                v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
-                               v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
-                               v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
+                               v->DETBufferSizeYThisState[k] = (unsigned int)v->DETBufferSizeYAllStates[i][j][k];
+                               v->DETBufferSizeCThisState[k] = (unsigned int)v->DETBufferSizeCAllStates[i][j][k];
                        }
 
                        v->TotalNumberOfDCCActiveDPP[i][j] = 0;
@@ -4868,16 +4868,16 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                        v->SurfaceTiling[k],
                                                        v->BytePerPixelC[k],
                                                        v->SourceScan[k],
-                                                       v->SwathWidthCThisState[k],
+                                                       (unsigned int)v->SwathWidthCThisState[k],
                                                        v->ViewportHeightChroma[k],
                                                        v->GPUVMEnable,
                                                        v->HostVMEnable,
                                                        v->HostVMMaxNonCachedPageTableLevels,
-                                                       v->GPUVMMinPageSize,
-                                                       v->HostVMMinPageSize,
+                                                       (unsigned int)v->GPUVMMinPageSize,
+                                                       (unsigned int)v->HostVMMinPageSize,
                                                        v->PTEBufferSizeInRequestsForChroma,
                                                        v->PitchC[k],
-                                                       0.0,
+                                                       0,
                                                        &v->MacroTileWidthC[k],
                                                        &v->MetaRowBytesC,
                                                        &v->DPTEBytesPerRowC,
@@ -4910,8 +4910,8 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                        v->PTEBufferSizeInRequestsForLuma = v->PTEBufferSizeInRequestsLuma + v->PTEBufferSizeInRequestsChroma;
                                        v->PTEBufferSizeInRequestsForChroma = 0;
                                        v->PDEAndMetaPTEBytesPerFrameC = 0.0;
-                                       v->MetaRowBytesC = 0.0;
-                                       v->DPTEBytesPerRowC = 0.0;
+                                       v->MetaRowBytesC = 0;
+                                       v->DPTEBytesPerRowC = 0;
                                        v->PrefetchLinesC[i][j][k] = 0.0;
                                        v->PTEBufferSizeNotExceededC[i][j][k] = true;
                                }
@@ -4924,13 +4924,13 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                v->SurfaceTiling[k],
                                                v->BytePerPixelY[k],
                                                v->SourceScan[k],
-                                               v->SwathWidthYThisState[k],
+                                               (unsigned int)v->SwathWidthYThisState[k],
                                                v->ViewportHeight[k],
                                                v->GPUVMEnable,
                                                v->HostVMEnable,
                                                v->HostVMMaxNonCachedPageTableLevels,
-                                               v->GPUVMMinPageSize,
-                                               v->HostVMMinPageSize,
+                                               (unsigned int)v->GPUVMMinPageSize,
+                                               (unsigned int)v->HostVMMinPageSize,
                                                v->PTEBufferSizeInRequestsForLuma,
                                                v->PitchY[k],
                                                v->DCCMetaPitchY[k],
@@ -5066,9 +5066,9 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                                                v->WritebackHRatio[k],
                                                                                v->WritebackVRatio[k],
                                                                                v->WritebackVTaps[k],
-                                                                               v->WritebackDestinationWidth[k],
-                                                                               v->WritebackDestinationHeight[k],
-                                                                               v->WritebackSourceHeight[k],
+                                                                               (int)v->WritebackDestinationWidth[k],
+                                                                               (int)v->WritebackDestinationHeight[k],
+                                                                               (int)v->WritebackSourceHeight[k],
                                                                                v->HTotal[k]) / v->RequiredDISPCLK[i][j];
                                        } else {
                                                v->WritebackDelayTime[k] = 0.0;
@@ -5083,9 +5083,9 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                                                                        v->WritebackHRatio[m],
                                                                                                        v->WritebackVRatio[m],
                                                                                                        v->WritebackVTaps[m],
-                                                                                                       v->WritebackDestinationWidth[m],
-                                                                                                       v->WritebackDestinationHeight[m],
-                                                                                                       v->WritebackSourceHeight[m],
+                                                                                                       (int)v->WritebackDestinationWidth[m],
+                                                                                                       (int)v->WritebackDestinationHeight[m],
+                                                                                                       (int)v->WritebackSourceHeight[m],
                                                                                                        v->HTotal[m]) / v->RequiredDISPCLK[i][j]);
                                                }
                                        }
@@ -5116,11 +5116,11 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                }
        }
 
-       ReorderingBytes = v->NumberOfChannels
+       ReorderingBytes = (int)(v->NumberOfChannels
                        * dml_max3(
                                        v->UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        v->UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       v->UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
        for (i = 0; i < v->soc.num_states; ++i) {
                for (j = 0; j <= 1; ++j) {
@@ -5223,8 +5223,8 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                v->SwathWidthCThisState[k] = v->SwathWidthCAllStates[i][j][k];
                                v->SwathHeightYThisState[k] = v->SwathHeightYAllStates[i][j][k];
                                v->SwathHeightCThisState[k] = v->SwathHeightCAllStates[i][j][k];
-                               v->DETBufferSizeYThisState[k] = v->DETBufferSizeYAllStates[i][j][k];
-                               v->DETBufferSizeCThisState[k] = v->DETBufferSizeCAllStates[i][j][k];
+                               v->DETBufferSizeYThisState[k] = (unsigned int)v->DETBufferSizeYAllStates[i][j][k];
+                               v->DETBufferSizeCThisState[k] = (unsigned int)v->DETBufferSizeCAllStates[i][j][k];
                        }
 
                        VMDataOnlyReturnBWPerState = dml_min(
@@ -5238,7 +5238,7 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                HostVMInefficiencyFactor = v->ReturnBWPerState[i][j] / VMDataOnlyReturnBWPerState;
 
                        v->ExtraLatency = CalculateExtraLatency(
-                                       v->RoundTripPingLatencyCycles,
+                                       (int)v->RoundTripPingLatencyCycles,
                                        ReorderingBytes,
                                        v->DCFCLKState[i][j],
                                        v->TotalNumberOfActiveDPP[i][j],
@@ -5371,11 +5371,11 @@ void dml314_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_
                                                                                                                                * v->UrgentBurstFactorChromaPre[k])
                                                                                                + v->cursor_bw_pre[k] * v->UrgentBurstFactorCursorPre[k]);
                                        }
-                                       v->TotImmediateFlipBytes = 0.0;
+                                       v->TotImmediateFlipBytes = 0;
                                        for (k = 0; k < v->NumberOfActivePlanes; k++) {
-                                               v->TotImmediateFlipBytes = v->TotImmediateFlipBytes
+                                               v->TotImmediateFlipBytes = (unsigned int)(v->TotImmediateFlipBytes
                                                                + v->NoOfDPP[i][j][k] * (v->PDEAndMetaPTEBytesPerFrame[i][j][k] + v->MetaRowBytes[i][j][k]
-                                                               + v->DPTEBytesPerRow[i][j][k]);
+                                                               + v->DPTEBytesPerRow[i][j][k]));
                                        }
 
                                        for (k = 0; k < v->NumberOfActivePlanes; k++) {
@@ -5738,13 +5738,13 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
        for (k = 0; k < v->NumberOfActivePlanes; ++k) {
                double EffectiveDETBufferSizeY = DETBufferSizeY[k];
 
-               v->LBLatencyHidingSourceLinesY = dml_min(
+               v->LBLatencyHidingSourceLinesY = (unsigned int)(dml_min(
                                (double) v->MaxLineBufferLines,
-                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1);
+                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1));
 
-               v->LBLatencyHidingSourceLinesC = dml_min(
+               v->LBLatencyHidingSourceLinesC = (unsigned int)(dml_min(
                                (double) v->MaxLineBufferLines,
-                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1);
+                               dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1));
 
                EffectiveLBLatencyHidingY = v->LBLatencyHidingSourceLinesY / v->VRatio[k] * (v->HTotal[k] / v->PixelClock[k]);
 
@@ -5756,11 +5756,11 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
                }
 
                LinesInDETY[k] = (double) EffectiveDETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k];
-               LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]);
+               LinesInDETYRoundedDownToSwath[k] = (unsigned int)dml_floor(LinesInDETY[k], SwathHeightY[k]);
                FullDETBufferingTimeY = LinesInDETYRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k];
                if (BytePerPixelDETC[k] > 0) {
                        LinesInDETC = v->DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k];
-                       LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]);
+                       LinesInDETCRoundedDownToSwath = (unsigned int)dml_floor(LinesInDETC, SwathHeightC[k]);
                        FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (v->HTotal[k] / v->PixelClock[k]) / v->VRatioChroma[k];
                } else {
                        LinesInDETC = 0;
@@ -6107,7 +6107,7 @@ static void CalculatePixelDeliveryTimes(
        for (k = 0; k < NumberOfActivePlanes; ++k) {
                int cursor_req_per_width;
 
-               cursor_req_per_width = dml_ceil(CursorWidth[k][0] * CursorBPP[k][0] / 256 / 8, 1);
+               cursor_req_per_width = (int)dml_ceil(CursorWidth[k][0] * CursorBPP[k][0] / 256 / 8, 1);
                if (NumberOfCursors[k] > 0) {
                        if (VRatio[k] <= 1) {
                                CursorRequestDeliveryTime[k] = CursorWidth[k][0] / HRatio[k] / PixelClock[k] / cursor_req_per_width;
@@ -6241,7 +6241,7 @@ static void CalculateMetaAndPTETimes(
                        } else {
                                meta_chunk_width_chroma = MetaChunkSize * 1024 * 256 / BytePerPixelC[k] / meta_row_height_chroma[k];
                                min_meta_chunk_width_chroma = MinMetaChunkSizeBytes * 256 / BytePerPixelC[k] / meta_row_height_chroma[k];
-                               meta_chunk_per_row_int_chroma = (double) meta_row_width_chroma[k] / meta_chunk_width_chroma;
+                               meta_chunk_per_row_int_chroma = (unsigned int)((double) meta_row_width_chroma[k] / meta_chunk_width_chroma);
                                meta_row_remainder_chroma = meta_row_width_chroma[k] % meta_chunk_width_chroma;
                                if (SourceScan[k] != dm_vert) {
                                        meta_chunk_threshold_chroma = 2 * min_meta_chunk_width_chroma - meta_req_width_chroma[k];
@@ -6274,7 +6274,7 @@ static void CalculateMetaAndPTETimes(
                        } else {
                                dpte_group_width_luma = dpte_group_bytes[k] / PTERequestSizeY[k] * PixelPTEReqHeightY[k];
                        }
-                       dpte_groups_per_row_luma_ub = dml_ceil(1.0 * dpte_row_width_luma_ub[k] / dpte_group_width_luma, 1);
+                       dpte_groups_per_row_luma_ub = (unsigned int)dml_ceil(1.0 * dpte_row_width_luma_ub[k] / dpte_group_width_luma, 1);
                        time_per_pte_group_nom_luma[k] = DST_Y_PER_PTE_ROW_NOM_L[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
                        time_per_pte_group_vblank_luma[k] = DestinationLinesToRequestRowInVBlank[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
                        time_per_pte_group_flip_luma[k] = DestinationLinesToRequestRowInImmediateFlip[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_luma_ub;
@@ -6288,7 +6288,7 @@ static void CalculateMetaAndPTETimes(
                                } else {
                                        dpte_group_width_chroma = dpte_group_bytes[k] / PTERequestSizeC[k] * PixelPTEReqHeightC[k];
                                }
-                               dpte_groups_per_row_chroma_ub = dml_ceil(1.0 * dpte_row_width_chroma_ub[k] / dpte_group_width_chroma, 1);
+                               dpte_groups_per_row_chroma_ub = (unsigned int)dml_ceil(1.0 * dpte_row_width_chroma_ub[k] / dpte_group_width_chroma, 1);
                                time_per_pte_group_nom_chroma[k] = DST_Y_PER_PTE_ROW_NOM_C[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
                                time_per_pte_group_vblank_chroma[k] = DestinationLinesToRequestRowInVBlank[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
                                time_per_pte_group_flip_chroma[k] = DestinationLinesToRequestRowInImmediateFlip[k] * HTotal[k] / PixelClock[k] / dpte_groups_per_row_chroma_ub;
@@ -6336,28 +6336,28 @@ static void CalculateVMGroupAndRequestTimes(
                if (GPUVMEnable == true && (DCCEnable[k] == true || GPUVMMaxPageTableLevels > 1)) {
                        if (DCCEnable[k] == false) {
                                if (BytePerPixelC[k] > 0) {
-                                       num_group_per_lower_vm_stage = dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                       + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                       num_group_per_lower_vm_stage = (int)(dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                       + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                } else {
-                                       num_group_per_lower_vm_stage = dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                       num_group_per_lower_vm_stage = (int)dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
                                }
                        } else {
                                if (GPUVMMaxPageTableLevels == 1) {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)(dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
                                        }
                                } else {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = 2 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                               num_group_per_lower_vm_stage = (int)(2 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
                                                                + dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1)
                                                                + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1);
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) / (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = 1 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
-                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1);
+                                               num_group_per_lower_vm_stage = (int)(1 + dml_ceil((double) (dpde0_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1)
+                                                               + dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) / (double) (vm_group_bytes[k]), 1));
                                        }
                                }
                        }
@@ -6668,8 +6668,8 @@ static void CalculateStutterEfficiency(
 #endif
                *StutterEfficiencyNotIncludingVBlank = dml_max(0., 1 - (SRExitTime + StutterBurstTime) / *StutterPeriod) * 100;
                *Z8StutterEfficiencyNotIncludingVBlank = dml_max(0., 1 - (SRExitZ8Time + StutterBurstTime) / *StutterPeriod) * 100;
-               *NumberOfStutterBurstsPerFrame = (*StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
-               *Z8NumberOfStutterBurstsPerFrame = (*Z8StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
+               *NumberOfStutterBurstsPerFrame = (int)(*StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
+               *Z8NumberOfStutterBurstsPerFrame = (int)(*Z8StutterEfficiencyNotIncludingVBlank > 0 ? dml_ceil(VActiveTimeCriticalPlane / *StutterPeriod, 1) : 0);
        } else {
                *StutterEfficiencyNotIncludingVBlank = 0.;
                *Z8StutterEfficiencyNotIncludingVBlank = 0.;
@@ -6845,17 +6845,17 @@ static void CalculateSwathAndDETConfiguration(
                        }
                }
 
-               RoundedUpMaxSwathSizeBytesY = swath_width_luma_ub[k] * BytePerPixDETY[k] * MaximumSwathHeightY[k];
-               RoundedUpMinSwathSizeBytesY = swath_width_luma_ub[k] * BytePerPixDETY[k] * MinimumSwathHeightY;
+               RoundedUpMaxSwathSizeBytesY = (int)(swath_width_luma_ub[k] * BytePerPixDETY[k] * MaximumSwathHeightY[k]);
+               RoundedUpMinSwathSizeBytesY = (int)(swath_width_luma_ub[k] * BytePerPixDETY[k] * MinimumSwathHeightY);
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesY = dml_ceil((double) RoundedUpMaxSwathSizeBytesY, 256);
-                       RoundedUpMinSwathSizeBytesY = dml_ceil((double) RoundedUpMinSwathSizeBytesY, 256);
+                       RoundedUpMaxSwathSizeBytesY = (int)dml_ceil((double) RoundedUpMaxSwathSizeBytesY, 256);
+                       RoundedUpMinSwathSizeBytesY = (int)dml_ceil((double) RoundedUpMinSwathSizeBytesY, 256);
                }
-               RoundedUpMaxSwathSizeBytesC = swath_width_chroma_ub[k] * BytePerPixDETC[k] * MaximumSwathHeightC[k];
-               RoundedUpMinSwathSizeBytesC = swath_width_chroma_ub[k] * BytePerPixDETC[k] * MinimumSwathHeightC;
+               RoundedUpMaxSwathSizeBytesC = (int)(swath_width_chroma_ub[k] * BytePerPixDETC[k] * MaximumSwathHeightC[k]);
+               RoundedUpMinSwathSizeBytesC = (int)(swath_width_chroma_ub[k] * BytePerPixDETC[k] * MinimumSwathHeightC);
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesC = dml_ceil(RoundedUpMaxSwathSizeBytesC, 256);
-                       RoundedUpMinSwathSizeBytesC = dml_ceil(RoundedUpMinSwathSizeBytesC, 256);
+                       RoundedUpMaxSwathSizeBytesC = (int)dml_ceil(RoundedUpMaxSwathSizeBytesC, 256);
+                       RoundedUpMinSwathSizeBytesC = (int)dml_ceil(RoundedUpMinSwathSizeBytesC, 256);
                }
 
                if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC <= DETBufferSizeInKByte * 1024 / 2) {
@@ -6885,14 +6885,14 @@ static void CalculateSwathAndDETConfiguration(
                double actDETBufferSizeInKByte = dml_ceil(DETBufferSizeInKByte, 64);
 
                if (SwathHeightC[k] == 0) {
-                       DETBufferSizeY[k] = actDETBufferSizeInKByte * 1024;
+                       DETBufferSizeY[k] = (unsigned int)(actDETBufferSizeInKByte * 1024);
                        DETBufferSizeC[k] = 0;
                } else if (RoundedUpSwathSizeBytesY <= 1.5 * RoundedUpSwathSizeBytesC) {
-                       DETBufferSizeY[k] = actDETBufferSizeInKByte * 1024 / 2;
-                       DETBufferSizeC[k] = actDETBufferSizeInKByte * 1024 / 2;
+                       DETBufferSizeY[k] = (unsigned int)(actDETBufferSizeInKByte * 1024 / 2);
+                       DETBufferSizeC[k] = (unsigned int)(actDETBufferSizeInKByte * 1024 / 2);
                } else {
-                       DETBufferSizeY[k] = dml_floor(actDETBufferSizeInKByte * 1024 * 2 / 3, 1024);
-                       DETBufferSizeC[k] = actDETBufferSizeInKByte * 1024 / 3;
+                       DETBufferSizeY[k] = (unsigned int)dml_floor(actDETBufferSizeInKByte * 1024 * 2 / 3, 1024);
+                       DETBufferSizeC[k] = (unsigned int)(actDETBufferSizeInKByte * 1024 / 3);
                }
 
                if (RoundedUpMinSwathSizeBytesY + RoundedUpMinSwathSizeBytesC > actDETBufferSizeInKByte * 1024 / 2 || SwathWidth[k] > MaximumSwathWidthLuma[k]
@@ -6991,8 +6991,8 @@ static void CalculateSwathWidth(
                        SwathWidthC[k] = SwathWidthSingleDPPC[k];
                }
                {
-               int surface_width_ub_l = dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
-               int surface_height_ub_l = dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
+               int surface_width_ub_l = (int)dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
+               int surface_height_ub_l = (int)dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
 
 #ifdef __DML_VBA_DEBUG__
                dml_print("DML::%s: k=%d surface_width_ub_l=%0d\n", __func__, k, surface_width_ub_l);
@@ -7001,11 +7001,11 @@ static void CalculateSwathWidth(
                if (SourceScan[k] != dm_vert) {
                        MaximumSwathHeightY[k] = Read256BytesBlockHeightY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockHeightC[k];
-                       swath_width_luma_ub[k] = dml_min(surface_width_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockWidthY[k]) + Read256BytesBlockWidthY[k]);
+                       swath_width_luma_ub[k] = (int)dml_min(surface_width_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockWidthY[k]) + Read256BytesBlockWidthY[k]);
                        if (BytePerPixC[k] > 0) {
-                               int surface_width_ub_c = dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
+                               int surface_width_ub_c = (int)dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
 
-                               swath_width_chroma_ub[k] = dml_min(
+                               swath_width_chroma_ub[k] = (int)dml_min(
                                                surface_width_ub_c,
                                                (int) dml_ceil(SwathWidthC[k] - 1, Read256BytesBlockWidthC[k]) + Read256BytesBlockWidthC[k]);
                        } else {
@@ -7014,11 +7014,11 @@ static void CalculateSwathWidth(
                } else {
                        MaximumSwathHeightY[k] = Read256BytesBlockWidthY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockWidthC[k];
-                       swath_width_luma_ub[k] = dml_min(surface_height_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockHeightY[k]) + Read256BytesBlockHeightY[k]);
+                       swath_width_luma_ub[k] = (int)dml_min(surface_height_ub_l, (int) dml_ceil(SwathWidthY[k] - 1, Read256BytesBlockHeightY[k]) + Read256BytesBlockHeightY[k]);
                        if (BytePerPixC[k] > 0) {
-                               int surface_height_ub_c = dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
+                               int surface_height_ub_c = (int)dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
 
-                               swath_width_chroma_ub[k] = dml_min(
+                               swath_width_chroma_ub[k] = (int)dml_min(
                                                surface_height_ub_c,
                                                (int) dml_ceil(SwathWidthC[k] - 1, Read256BytesBlockHeightC[k]) + Read256BytesBlockHeightC[k]);
                        } else {
@@ -7100,9 +7100,9 @@ static double CalculateExtraLatencyBytes(
                if (HostVMMinPageSize < 2048)
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576)
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                else
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
        } else {
                HostVMDynamicLevels = 0;
        }
@@ -7310,7 +7310,7 @@ static void CalculateUnboundedRequestAndCompressedBufferSize(
        double actDETBufferSizeInKByte = dml_ceil(DETBufferSizeInKByte, 64);
 
        *UnboundedRequestEnabled = UnboundedRequest(UseUnboundedRequestingFinal, TotalActiveDPP, NoChromaPlanes, Output[0]);
-       *CompressedBufferSizeInkByte = (
+       *CompressedBufferSizeInkByte = (int)(
                        *UnboundedRequestEnabled == true ?
                                        ConfigReturnBufferSizeInKByte - TotalActiveDPP * actDETBufferSizeInKByte :
                                        ConfigReturnBufferSizeInKByte - MaxNumDPP * actDETBufferSizeInKByte);
@@ -7352,15 +7352,15 @@ static unsigned int CalculateMaxVStartup(
        unsigned int vblank_size = 0;
        double line_time_us = HTotal / PixelClock;
        unsigned int vblank_actual = VTotal - VActive;
-       unsigned int vblank_nom_default_in_line = dml_floor(VBlankNomDefaultUS / line_time_us, 1.0);
+       unsigned int vblank_nom_default_in_line = (unsigned int)dml_floor(VBlankNomDefaultUS / line_time_us, 1.0);
        unsigned int vblank_nom_input = VBlankNom; //dml_min(VBlankNom, vblank_nom_default_in_line);
        unsigned int vblank_avail = vblank_nom_input == 0 ? vblank_nom_default_in_line : vblank_nom_input;
 
        vblank_size = (unsigned int) dml_min(vblank_actual, vblank_avail);
        if (Interlace && !ProgressiveTointerlaceUnitinOPP)
-               MaxVStartup = dml_floor(vblank_size / 2.0, 1.0);
+               MaxVStartup = (unsigned int)dml_floor(vblank_size / 2.0, 1.0);
        else
-               MaxVStartup = vblank_size - dml_max(1.0, dml_ceil(WritebackDelayTime / line_time_us, 1.0));
+               MaxVStartup = (unsigned int)(vblank_size - dml_max(1.0, dml_ceil(WritebackDelayTime / line_time_us, 1.0)));
        if (MaxVStartup > 1023)
                MaxVStartup = 1023;
        return MaxVStartup;
index 40a916c2a9c61b1d53559c884666b60f7f642546..ec745c2d6c81829e6883d69580d9a562fa18aa9c 100644 (file)
@@ -205,11 +205,11 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib, display_rq_regs_s
 
        extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_l), &rq_param->sizing.rq_l);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height), 1) - 3;
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_l.dpte_row_height), 1) - 3);
 
        if (rq_param->yuv420) {
                extract_rq_sizing_regs(mode_lib, &(rq_regs->rq_regs_c), &rq_param->sizing.rq_c);
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height), 1) - 3;
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(rq_param->dlg.rq_c.dpte_row_height), 1) - 3);
        }
 
        rq_regs->rq_regs_l.swath_height = dml_log2(rq_param->dlg.rq_l.swath_height);
@@ -229,12 +229,12 @@ static void extract_rq_regs(struct display_mode_lib *mode_lib, display_rq_regs_s
        // Note: detile_buf_plane1_addr is in unit of 1KB
        if (rq_param->yuv420) {
                if ((double) rq_param->misc.rq_l.stored_swath_bytes / (double) rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 1024.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 1024.0); // half to chroma
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                                        dml_print("DML_DLG: %s: detile_buf_plane1_addr = %0d (1/2 to chroma)\n", __func__, detile_buf_plane1_addr);
 #endif
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple((unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0), 1024, 0) / 1024.0; // 2/3 to luma
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple((unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0), 1024, 0) / 1024.0); // 2/3 to luma
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                                        dml_print("DML_DLG: %s: detile_buf_plane1_addr = %0d (1/3 chroma)\n", __func__, detile_buf_plane1_addr);
 #endif
@@ -277,8 +277,8 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib, display_rq_p
 #endif
 
        if (rq_param->yuv420_10bpc) {
-               full_swath_bytes_packed_l = dml_round_to_multiple(rq_param->misc.rq_l.full_swath_bytes * 2.0 / 3.0, 256, 1) + 256;
-               full_swath_bytes_packed_c = dml_round_to_multiple(rq_param->misc.rq_c.full_swath_bytes * 2.0 / 3.0, 256, 1) + 256;
+               full_swath_bytes_packed_l = (unsigned int)(dml_round_to_multiple((unsigned int)(rq_param->misc.rq_l.full_swath_bytes * 2.0 / 3.0), 256, 1) + 256);
+               full_swath_bytes_packed_c = (unsigned int)(dml_round_to_multiple((unsigned int)(rq_param->misc.rq_c.full_swath_bytes * 2.0 / 3.0), 256, 1) + 256);
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                dml_print("DML_DLG: %s: full_swath_bytes_packed_l = %0d (3-2 packing)\n", __func__, full_swath_bytes_packed_l);
                dml_print("DML_DLG: %s: full_swath_bytes_packed_c = %0d (3-2 packing)\n", __func__, full_swath_bytes_packed_c);
@@ -509,7 +509,7 @@ static void get_meta_and_pte_attr(
        // "/2" is like square root
        // blk is vertical biased
        if (tiling != dm_sw_linear)
-               log2_blk_height = log2_blk256_height + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+               log2_blk_height = (unsigned int)(log2_blk256_height + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1));
        else
                log2_blk_height = 0;    // blk height of 1
 
@@ -662,7 +662,7 @@ static void get_meta_and_pte_attr(
        if (surf_linear) {
                unsigned int dpte_row_height;
 
-               log2_dpte_row_height_linear = dml_floor(dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch), 1);
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch), 1);
 
                dml_print("DML_DLG: %s: is_chroma                   = %d\n", __func__, is_chroma);
                dml_print("DML_DLG: %s: dpte_buf_in_pte_reqs        = %d\n", __func__, dpte_buf_in_pte_reqs);
@@ -728,7 +728,7 @@ static void get_meta_and_pte_attr(
 
        // since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
        // the upper bound for the dpte groups per row is as follows.
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil((double) dpte_row_width_ub / dpte_group_width, 1);
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil((double) dpte_row_width_ub / dpte_group_width, 1);
 }
 
 static void get_surf_rq_param(
@@ -753,7 +753,7 @@ static void get_surf_rq_param(
                vp_height = pipe_param->src.viewport_height_c;
                data_pitch = pipe_param->src.data_pitch_c;
                meta_pitch = pipe_param->src.meta_pitch_c;
-               surface_height = pipe_param->src.surface_height_y / 2.0;
+               surface_height = (unsigned int)(pipe_param->src.surface_height_y / 2.0);
        } else {
                vp_width = pipe_param->src.viewport_width / ppe;
                vp_height = pipe_param->src.viewport_height;
@@ -771,18 +771,18 @@ static void get_surf_rq_param(
                access_dir = (pipe_param->src.source_scan == dm_vert); // vp access direction: horizontal or vertical accessed
                hactive_odm = pipe_param->dest.hactive / ((unsigned int) pipe_param->dest.odm_combine * 2);
                if (is_chroma) {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width;
-                       src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * pipe_param->dest.full_recout_width);
+                       src_hactive_odm = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio_c * hactive_odm);
                } else {
-                       full_src_vp_width = pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width;
-                       src_hactive_odm = pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm;
+                       full_src_vp_width = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * pipe_param->dest.full_recout_width);
+                       src_hactive_odm = (unsigned int)(pipe_param->scale_ratio_depth.hscl_ratio * hactive_odm);
                }
 
                if (access_dir == 0) {
-                       vp_width = dml_min(full_src_vp_width, src_hactive_odm);
+                       vp_width = (unsigned int)dml_min(full_src_vp_width, src_hactive_odm);
                        dml_print("DML_DLG: %s: vp_width = %d\n", __func__, vp_width);
                } else {
-                       vp_height = dml_min(full_src_vp_width, src_hactive_odm);
+                       vp_height = (unsigned int)dml_min(full_src_vp_width, src_hactive_odm);
                        dml_print("DML_DLG: %s: vp_height = %d\n", __func__, vp_height);
 
                }
@@ -901,7 +901,7 @@ static void calculate_ttu_cursor(
                                cur_req_size = 256;
                }
 
-               cur_req_width = (double) cur_req_size / ((double) cur_bit_per_pixel / 8.0);
+               cur_req_width = (unsigned int)((double) cur_req_size / ((double) cur_bit_per_pixel / 8.0));
                cur_width_ub = dml_ceil((double) cur_src_width / (double) cur_req_width, 1) * (double) cur_req_width;
                cur_req_per_width = cur_width_ub / (double) cur_req_width;
                hactive_cur = (double) cur_src_width / hscl_ratio; // FIXME: oswin to think about what to do for cursor
@@ -1042,7 +1042,7 @@ static void dml_rq_dlg_get_dlg_params(
        double refcyc_per_req_delivery_cur0;
        double refcyc_per_req_delivery_pre_cur1;
        double refcyc_per_req_delivery_cur1;
-       unsigned int vba__min_dst_y_next_start = get_min_dst_y_next_start(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // FROM VBA
+       unsigned int vba__min_dst_y_next_start = (unsigned int)get_min_dst_y_next_start(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // FROM VBA
        unsigned int vba__vready_after_vcount0 = get_vready_at_or_after_vsync(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
 
        float vba__refcyc_per_line_delivery_pre_l = get_refcyc_per_line_delivery_pre_l_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
@@ -1075,7 +1075,7 @@ static void dml_rq_dlg_get_dlg_params(
        dlg_vblank_start = interlaced ? (vblank_start / 2) : vblank_start;
        disp_dlg_regs->min_dst_y_next_start_us =
                (vba__min_dst_y_next_start * dst->hactive) / (unsigned int) dst->pixel_rate_mhz;
-       disp_dlg_regs->min_dst_y_next_start = vba__min_dst_y_next_start * dml_pow(2, 2);
+       disp_dlg_regs->min_dst_y_next_start = (unsigned int)(vba__min_dst_y_next_start * dml_pow(2, 2));
 
        ASSERT(disp_dlg_regs->min_dst_y_next_start < (unsigned int)dml_pow(2, 18));
 
@@ -1138,8 +1138,8 @@ static void dml_rq_dlg_get_dlg_params(
        if (interlaced)
                vstartup_start = vstartup_start / 2;
 
-       dst_x_after_scaler = get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
-       dst_y_after_scaler = get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
+       dst_x_after_scaler = (unsigned int)get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
+       dst_y_after_scaler = (unsigned int)get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
 
        // do some adjustment on the dst_after scaler to account for odm combine mode
        dml_print("DML_DLG: %s: input dst_x_after_scaler   = %d\n", __func__, dst_x_after_scaler);
@@ -1366,9 +1366,9 @@ static void dml_rq_dlg_get_dlg_params(
        }
 
        if (src->dynamic_metadata_enable && src->gpuvm)
-               disp_dlg_regs->refcyc_per_vm_dmdata = get_refcyc_per_vm_dmdata_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
+               disp_dlg_regs->refcyc_per_vm_dmdata = (unsigned int)(get_refcyc_per_vm_dmdata_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
 
-       disp_dlg_regs->dmdata_dl_delta = get_dmdata_dl_delta_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
+       disp_dlg_regs->dmdata_dl_delta = (unsigned int)(get_dmdata_dl_delta_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
 
        // TTU - Luma / Chroma
        if (access_dir) {  // vertical access
@@ -1474,8 +1474,8 @@ static void dml_rq_dlg_get_dlg_params(
                                src->cur0_src_width,
                                (enum cursor_bpp) (src->cur0_bpp));
 
-               vba__refcyc_per_req_delivery_pre_cur0 = get_refcyc_per_cursor_req_delivery_pre_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
-               vba__refcyc_per_req_delivery_cur0 = get_refcyc_per_cursor_req_delivery_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
+               vba__refcyc_per_req_delivery_pre_cur0 = (float)(get_refcyc_per_cursor_req_delivery_pre_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
+               vba__refcyc_per_req_delivery_cur0 = (float)(get_refcyc_per_cursor_req_delivery_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
 
                dml_print("DML_DLG: %s: refcyc_per_req_delivery_pre_cur0 = %3.2f\n", __func__, refcyc_per_req_delivery_pre_cur0);
                dml_print("DML_DLG: %s: refcyc_per_req_delivery_cur0     = %3.2f\n", __func__, refcyc_per_req_delivery_cur0);
@@ -1495,7 +1495,7 @@ static void dml_rq_dlg_get_dlg_params(
        // Assignment to register structures
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
        ASSERT(disp_dlg_regs->dst_y_after_scaler < 8);
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq;       // in terms of refclk
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq);       // in terms of refclk
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int)dml_pow(2, 13));
        disp_dlg_regs->dst_y_prefetch = (unsigned int) (dst_y_prefetch * dml_pow(2, 2));
        disp_dlg_regs->dst_y_per_vm_vblank = (unsigned int) (dst_y_per_vm_vblank * dml_pow(2, 2));
@@ -1532,23 +1532,23 @@ static void dml_rq_dlg_get_dlg_params(
                disp_dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int) (dst_y_per_row_flip * htotal * ref_freq_to_pix_freq) / meta_chunks_per_row_ub_c;
        }
 
-       disp_dlg_regs->refcyc_per_vm_group_vblank = get_refcyc_per_vm_group_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;            // From VBA
-       disp_dlg_regs->refcyc_per_vm_group_flip = get_refcyc_per_vm_group_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz;            // From VBA
-       disp_dlg_regs->refcyc_per_vm_req_vblank = get_refcyc_per_vm_req_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10); // From VBA
-       disp_dlg_regs->refcyc_per_vm_req_flip = get_refcyc_per_vm_req_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);   // From VBA
+       disp_dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(get_refcyc_per_vm_group_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);            // From VBA
+       disp_dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(get_refcyc_per_vm_group_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz);            // From VBA
+       disp_dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(get_refcyc_per_vm_req_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10)); // From VBA
+       disp_dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(get_refcyc_per_vm_req_flip_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));   // From VBA
 
        // Clamp to max for now
        if (disp_dlg_regs->refcyc_per_vm_group_vblank >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_group_flip >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_group_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_req_vblank >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_vblank = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (disp_dlg_regs->refcyc_per_vm_req_flip >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_vm_req_flip = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        disp_dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int) ((double) dpte_row_height_l / (double) vratio_l * dml_pow(2, 2));
        ASSERT(disp_dlg_regs->dst_y_per_pte_row_nom_l < (unsigned int)dml_pow(2, 17));
@@ -1572,23 +1572,23 @@ static void dml_rq_dlg_get_dlg_params(
        disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int) ((double) dpte_row_height_l / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) dpte_groups_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
        disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int) ((double) meta_row_height_l / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) meta_chunks_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dual_plane) {
                disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int) ((double) dpte_row_height_c / (double) vratio_c * (double) htotal * ref_freq_to_pix_freq
                                / (double) dpte_groups_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
 
                // TODO: Is this the right calculation? Does htotal need to be halved?
                disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int) ((double) meta_row_height_c / (double) vratio_c * (double) htotal * ref_freq_to_pix_freq
                                / (double) meta_chunks_per_row_ub_c);
                if (disp_dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int) dml_pow(2, 23))
-                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                       disp_dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
 
        disp_dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int) dml_floor(refcyc_per_line_delivery_pre_l, 1);
@@ -1629,7 +1629,7 @@ static void dml_rq_dlg_get_dlg_params(
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
@@ -1660,7 +1660,7 @@ void dml314_rq_dlg_get_dlg_reg(
        dlg_sys_param.t_mclk_wm_us = get_wm_dram_clock_change(mode_lib, e2e_pipe_param, num_pipes);
        dlg_sys_param.t_sr_wm_us = get_wm_stutter_enter_exit(mode_lib, e2e_pipe_param, num_pipes);
        dlg_sys_param.total_flip_bw = get_total_immediate_flip_bw(mode_lib, e2e_pipe_param, num_pipes);
-       dlg_sys_param.total_flip_bytes = get_total_immediate_flip_bytes(mode_lib, e2e_pipe_param, num_pipes);
+       dlg_sys_param.total_flip_bytes = (unsigned int)get_total_immediate_flip_bytes(mode_lib, e2e_pipe_param, num_pipes);
 
        print__dlg_sys_params_st(mode_lib, &dlg_sys_param);
 
index f5ddf771e73d90e05ef4b393c8e3c68242db4af4..23e9635a9da5a6d0d561e8d96791bacb43a0d48b 100644 (file)
@@ -350,13 +350,13 @@ void dcn32_helper_populate_phantom_dlg_params(struct dc *dc,
 
                if (pipe->plane_state && dc_state_get_pipe_subvp_type(context, pipe) == SUBVP_PHANTOM) {
                        pipes[pipe_idx].pipe.dest.vstartup_start =
-                               get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+                               (unsigned int)get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
                        pipes[pipe_idx].pipe.dest.vupdate_offset =
-                               get_vupdate_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+                               (unsigned int)get_vupdate_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
                        pipes[pipe_idx].pipe.dest.vupdate_width =
-                               get_vupdate_width(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+                               (unsigned int)get_vupdate_width(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
                        pipes[pipe_idx].pipe.dest.vready_offset =
-                               get_vready_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+                               (unsigned int)get_vready_offset(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
                        pipe->pipe_dlg_param = pipes[pipe_idx].pipe.dest;
                }
                pipe_idx++;
@@ -370,18 +370,18 @@ static float calculate_net_bw_in_kbytes_sec(struct _vcs_dpi_voltage_scaling_st *
        float sdp_bw_kbytes_sec;
        float limiting_bw_kbytes_sec;
 
-       memory_bw_kbytes_sec = entry->dram_speed_mts *
+       memory_bw_kbytes_sec = (float)(entry->dram_speed_mts *
                                dcn3_2_soc.num_chans *
                                dcn3_2_soc.dram_channel_width_bytes *
-                               ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100);
+                       ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
 
-       fabric_bw_kbytes_sec = entry->fabricclk_mhz *
+       fabric_bw_kbytes_sec = (float)(entry->fabricclk_mhz *
                                dcn3_2_soc.return_bus_width_bytes *
-                               ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100);
+                       ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100));
 
-       sdp_bw_kbytes_sec = entry->dcfclk_mhz *
+       sdp_bw_kbytes_sec = (float)(entry->dcfclk_mhz *
                                dcn3_2_soc.return_bus_width_bytes *
-                               ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100);
+                       ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100));
 
        limiting_bw_kbytes_sec = memory_bw_kbytes_sec;
 
@@ -397,23 +397,23 @@ static float calculate_net_bw_in_kbytes_sec(struct _vcs_dpi_voltage_scaling_st *
 static void get_optimal_ntuple(struct _vcs_dpi_voltage_scaling_st *entry)
 {
        if (entry->dcfclk_mhz > 0) {
-               float bw_on_sdp = entry->dcfclk_mhz * dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100);
+               float bw_on_sdp = (float)(entry->dcfclk_mhz * dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100));
 
-               entry->fabricclk_mhz = bw_on_sdp / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100));
-               entry->dram_speed_mts = bw_on_sdp / (dcn3_2_soc.num_chans *
-                               dcn3_2_soc.dram_channel_width_bytes * ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
+               entry->fabricclk_mhz = (float)(bw_on_sdp / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100)));
+               entry->dram_speed_mts = (float)(bw_on_sdp / (dcn3_2_soc.num_chans *
+                               dcn3_2_soc.dram_channel_width_bytes * ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100)));
        } else if (entry->fabricclk_mhz > 0) {
-               float bw_on_fabric = entry->fabricclk_mhz * dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100);
+               float bw_on_fabric = (float)(entry->fabricclk_mhz * dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100));
 
-               entry->dcfclk_mhz = bw_on_fabric / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100));
-               entry->dram_speed_mts = bw_on_fabric / (dcn3_2_soc.num_chans *
-                               dcn3_2_soc.dram_channel_width_bytes * ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
+               entry->dcfclk_mhz = (float)(bw_on_fabric / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100)));
+               entry->dram_speed_mts = (float)(bw_on_fabric / (dcn3_2_soc.num_chans *
+                               dcn3_2_soc.dram_channel_width_bytes * ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100)));
        } else if (entry->dram_speed_mts > 0) {
-               float bw_on_dram = entry->dram_speed_mts * dcn3_2_soc.num_chans *
-                               dcn3_2_soc.dram_channel_width_bytes * ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100);
+               float bw_on_dram = (float)(entry->dram_speed_mts * dcn3_2_soc.num_chans *
+                               dcn3_2_soc.dram_channel_width_bytes * ((float)dcn3_2_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
 
-               entry->fabricclk_mhz = bw_on_dram / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100));
-               entry->dcfclk_mhz = bw_on_dram / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100));
+               entry->fabricclk_mhz = (float)(bw_on_dram / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_fabric_bw_after_urgent / 100)));
+               entry->dcfclk_mhz = (float)(bw_on_dram / (dcn3_2_soc.return_bus_width_bytes * ((float)dcn3_2_soc.pct_ideal_sdp_bw_after_urgent / 100)));
        }
 }
 
@@ -479,8 +479,8 @@ void dcn32_set_phantom_stream_timing(struct dc *dc,
        uint32_t phantom_vactive, phantom_bp, pstate_width_fw_delay_lines;
        unsigned int num_dpp;
        unsigned int vlevel = context->bw_ctx.dml.vba.VoltageLevel;
-       unsigned int dcfclk = context->bw_ctx.dml.vba.DCFCLKState[vlevel][context->bw_ctx.dml.vba.maxMpcComb];
-       unsigned int socclk = context->bw_ctx.dml.vba.SOCCLKPerState[vlevel];
+       unsigned int dcfclk = (unsigned int)context->bw_ctx.dml.vba.DCFCLKState[vlevel][context->bw_ctx.dml.vba.maxMpcComb];
+       unsigned int socclk = (unsigned int)context->bw_ctx.dml.vba.SOCCLKPerState[vlevel];
        struct vba_vars_st *vba = &context->bw_ctx.dml.vba;
        struct dc_stream_state *main_stream = ref_pipe->stream;
 
@@ -500,10 +500,10 @@ void dcn32_set_phantom_stream_timing(struct dc *dc,
        }
 
        // Calculate lines required for pstate allow width and FW processing delays
-       pstate_width_fw_delay_lines = ((double)(dc->caps.subvp_fw_processing_delay_us +
+       pstate_width_fw_delay_lines = (uint32_t)(((double)(dc->caps.subvp_fw_processing_delay_us +
                        dc->caps.subvp_pstate_allow_width_us) / 1000000) *
                        (ref_pipe->stream->timing.pix_clk_100hz * 100) /
-                       (double)ref_pipe->stream->timing.h_total;
+                       (double)ref_pipe->stream->timing.h_total);
 
        // Update clks_cfg for calling into recalculate
        pipes[0].clks_cfg.voltage = vlevel;
@@ -515,8 +515,8 @@ void dcn32_set_phantom_stream_timing(struct dc *dc,
        /* Add 16 lines margin to the MALL REGION because SUB_VP_START_LINE must be aligned
         * to 2 swaths (i.e. 16 lines)
         */
-       phantom_vactive = get_subviewport_lines_needed_in_mall(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx) +
-                               pstate_width_fw_delay_lines + dc->caps.subvp_swath_height_margin_lines;
+       phantom_vactive = (uint32_t)(get_subviewport_lines_needed_in_mall(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx) +
+                               pstate_width_fw_delay_lines + dc->caps.subvp_swath_height_margin_lines);
 
        // W/A for DCC corruption with certain high resolution timings.
        // Determing if pipesplit is used. If so, add meta_row_height to the phantom vactive.
@@ -527,7 +527,7 @@ void dcn32_set_phantom_stream_timing(struct dc *dc,
        phantom_vactive += dc->debug.subvp_extra_lines;
 
        // For backporch of phantom pipe, use vstartup of the main pipe
-       phantom_bp = get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+       phantom_bp = (uint32_t)get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
 
        phantom_stream->dst.y = 0;
        phantom_stream->dst.height = phantom_vactive;
@@ -537,7 +537,7 @@ void dcn32_set_phantom_stream_timing(struct dc *dc,
         * phantom for this case.
         */
        phantom_stream->src.y = 0;
-       phantom_stream->src.height = (double)phantom_vactive * (double)main_stream->src.height / (double)main_stream->dst.height;
+       phantom_stream->src.height = (int)((double)phantom_vactive * (double)main_stream->src.height / (double)main_stream->dst.height);
 
        phantom_stream->timing.v_addressable = phantom_vactive;
        phantom_stream->timing.v_front_porch = 1;
@@ -618,9 +618,9 @@ static bool dcn32_assign_subvp_pipe(struct dc *dc,
                        continue;
 
                // Round up
-               refresh_rate = (pipe->stream->timing.pix_clk_100hz * 100 +
+               refresh_rate = (unsigned int)((pipe->stream->timing.pix_clk_100hz * 100 +
                                pipe->stream->timing.v_total * pipe->stream->timing.h_total - 1)
-                               / (double)(pipe->stream->timing.v_total * pipe->stream->timing.h_total);
+                               / (double)(pipe->stream->timing.v_total * pipe->stream->timing.h_total));
                /* SubVP pipe candidate requirements:
                 * - Refresh rate < 120hz
                 * - Not able to switch in vactive naturally (switching in active means the
@@ -647,8 +647,8 @@ static bool dcn32_assign_subvp_pipe(struct dc *dc,
                        pipe = &context->res_ctx.pipe_ctx[i];
                        if (num_pipes <= free_pipes) {
                                struct dc_stream_state *stream = pipe->stream;
-                               unsigned int frame_us = (stream->timing.v_total * stream->timing.h_total /
-                                               (double)(stream->timing.pix_clk_100hz * 100)) * 1000000;
+                               unsigned int frame_us = (unsigned int)((stream->timing.v_total * stream->timing.h_total /
+                                               (double)(stream->timing.pix_clk_100hz * 100)) * 1000000);
                                if (frame_us > max_frame_time) {
                                        *index = i;
                                        max_frame_time = frame_us;
@@ -750,10 +750,10 @@ static bool subvp_subvp_schedulable(struct dc *dc, struct dc_state *context)
                                        phantom->timing.v_addressable;
 
                        // Round up when calculating microschedule time (+ 1 at the end)
-                       time_us = (microschedule_lines * phantom->timing.h_total) /
+                       time_us = (uint32_t)((microschedule_lines * phantom->timing.h_total) /
                                        (double)(phantom->timing.pix_clk_100hz * 100) * 1000000 +
                                                dc->caps.subvp_prefetch_end_to_mall_start_us +
-                                               dc->caps.subvp_fw_processing_delay_us + 1;
+                                               dc->caps.subvp_fw_processing_delay_us + 1);
                        if (time_us > max_microschedule_us)
                                max_microschedule_us = time_us;
 
@@ -765,16 +765,16 @@ static bool subvp_subvp_schedulable(struct dc *dc, struct dc_state *context)
                                break;
                }
        }
-       vactive1_us = ((subvp_pipes[0]->stream->timing.v_addressable * subvp_pipes[0]->stream->timing.h_total) /
-                       (double)(subvp_pipes[0]->stream->timing.pix_clk_100hz * 100)) * 1000000;
-       vactive2_us = ((subvp_pipes[1]->stream->timing.v_addressable * subvp_pipes[1]->stream->timing.h_total) /
-                               (double)(subvp_pipes[1]->stream->timing.pix_clk_100hz * 100)) * 1000000;
-       vblank1_us = (((subvp_pipes[0]->stream->timing.v_total - subvp_pipes[0]->stream->timing.v_addressable) *
+       vactive1_us = (int32_t)(((subvp_pipes[0]->stream->timing.v_addressable * subvp_pipes[0]->stream->timing.h_total) /
+                       (double)(subvp_pipes[0]->stream->timing.pix_clk_100hz * 100)) * 1000000);
+       vactive2_us = (int32_t)(((subvp_pipes[1]->stream->timing.v_addressable * subvp_pipes[1]->stream->timing.h_total) /
+                               (double)(subvp_pipes[1]->stream->timing.pix_clk_100hz * 100)) * 1000000);
+       vblank1_us = (int32_t)((((subvp_pipes[0]->stream->timing.v_total - subvp_pipes[0]->stream->timing.v_addressable) *
                        subvp_pipes[0]->stream->timing.h_total) /
-                       (double)(subvp_pipes[0]->stream->timing.pix_clk_100hz * 100)) * 1000000;
-       vblank2_us = (((subvp_pipes[1]->stream->timing.v_total - subvp_pipes[1]->stream->timing.v_addressable) *
+                       (double)(subvp_pipes[0]->stream->timing.pix_clk_100hz * 100)) * 1000000);
+       vblank2_us = (int32_t)((((subvp_pipes[1]->stream->timing.v_total - subvp_pipes[1]->stream->timing.v_addressable) *
                        subvp_pipes[1]->stream->timing.h_total) /
-                       (double)(subvp_pipes[1]->stream->timing.pix_clk_100hz * 100)) * 1000000;
+                       (double)(subvp_pipes[1]->stream->timing.pix_clk_100hz * 100)) * 1000000);
 
        if ((vactive1_us - vblank2_us) / 2 > max_microschedule_us &&
            (vactive2_us - vblank1_us) / 2 > max_microschedule_us)
@@ -855,19 +855,19 @@ static bool subvp_drr_schedulable(struct dc *dc, struct dc_state *context)
                main_timing = &pipe->stream->timing;
                phantom_timing = &phantom_stream->timing;
                drr_timing = &drr_pipe->stream->timing;
-               prefetch_us = (phantom_timing->v_total - phantom_timing->v_front_porch) * phantom_timing->h_total /
+               prefetch_us = (uint16_t)((phantom_timing->v_total - phantom_timing->v_front_porch) * phantom_timing->h_total /
                                (double)(phantom_timing->pix_clk_100hz * 100) * 1000000 +
-                               dc->caps.subvp_prefetch_end_to_mall_start_us;
-               subvp_active_us = main_timing->v_addressable * main_timing->h_total /
-                               (double)(main_timing->pix_clk_100hz * 100) * 1000000;
-               drr_frame_us = drr_timing->v_total * drr_timing->h_total /
-                               (double)(drr_timing->pix_clk_100hz * 100) * 1000000;
+                               dc->caps.subvp_prefetch_end_to_mall_start_us);
+               subvp_active_us = (uint16_t)(main_timing->v_addressable * main_timing->h_total /
+                               (double)(main_timing->pix_clk_100hz * 100) * 1000000);
+               drr_frame_us = (uint16_t)(drr_timing->v_total * drr_timing->h_total /
+                               (double)(drr_timing->pix_clk_100hz * 100) * 1000000);
                // P-State allow width and FW delays already included phantom_timing->v_addressable
-               mall_region_us = phantom_timing->v_addressable * phantom_timing->h_total /
-                               (double)(phantom_timing->pix_clk_100hz * 100) * 1000000;
+               mall_region_us = (uint16_t)(phantom_timing->v_addressable * phantom_timing->h_total /
+                               (double)(phantom_timing->pix_clk_100hz * 100) * 1000000);
                stretched_drr_us = drr_frame_us + mall_region_us + SUBVP_DRR_MARGIN_US;
-               drr_stretched_vblank_us = (drr_timing->v_total - drr_timing->v_addressable) * drr_timing->h_total /
-                               (double)(drr_timing->pix_clk_100hz * 100) * 1000000 + (stretched_drr_us - drr_frame_us);
+               drr_stretched_vblank_us = (uint16_t)((drr_timing->v_total - drr_timing->v_addressable) * drr_timing->h_total /
+                               (double)(drr_timing->pix_clk_100hz * 100) * 1000000 + (stretched_drr_us - drr_frame_us));
                max_vblank_mallregion = drr_stretched_vblank_us > mall_region_us ? drr_stretched_vblank_us : mall_region_us;
        }
 
@@ -950,18 +950,18 @@ static bool subvp_vblank_schedulable(struct dc *dc, struct dc_state *context)
                vblank_timing = &context->res_ctx.pipe_ctx[vblank_index].stream->timing;
                // Prefetch time is equal to VACTIVE + BP + VSYNC of the phantom pipe
                // Also include the prefetch end to mallstart delay time
-               prefetch_us = (phantom_timing->v_total - phantom_timing->v_front_porch) * phantom_timing->h_total /
+               prefetch_us = (uint16_t)((phantom_timing->v_total - phantom_timing->v_front_porch) * phantom_timing->h_total /
                                (double)(phantom_timing->pix_clk_100hz * 100) * 1000000 +
-                               dc->caps.subvp_prefetch_end_to_mall_start_us;
+                               dc->caps.subvp_prefetch_end_to_mall_start_us);
                // P-State allow width and FW delays already included phantom_timing->v_addressable
-               mall_region_us = phantom_timing->v_addressable * phantom_timing->h_total /
-                               (double)(phantom_timing->pix_clk_100hz * 100) * 1000000;
-               vblank_frame_us = vblank_timing->v_total * vblank_timing->h_total /
-                               (double)(vblank_timing->pix_clk_100hz * 100) * 1000000;
-               vblank_blank_us =  (vblank_timing->v_total - vblank_timing->v_addressable) * vblank_timing->h_total /
-                               (double)(vblank_timing->pix_clk_100hz * 100) * 1000000;
-               subvp_active_us = main_timing->v_addressable * main_timing->h_total /
-                               (double)(main_timing->pix_clk_100hz * 100) * 1000000;
+               mall_region_us = (uint16_t)(phantom_timing->v_addressable * phantom_timing->h_total /
+                               (double)(phantom_timing->pix_clk_100hz * 100) * 1000000);
+               vblank_frame_us = (uint16_t)(vblank_timing->v_total * vblank_timing->h_total /
+                               (double)(vblank_timing->pix_clk_100hz * 100) * 1000000);
+               vblank_blank_us =  (uint16_t)((vblank_timing->v_total - vblank_timing->v_addressable) * vblank_timing->h_total /
+                               (double)(vblank_timing->pix_clk_100hz * 100) * 1000000);
+               subvp_active_us = (uint16_t)(main_timing->v_addressable * main_timing->h_total /
+                               (double)(main_timing->pix_clk_100hz * 100) * 1000000);
                max_vblank_mallregion = vblank_blank_us > mall_region_us ? vblank_blank_us : mall_region_us;
 
                // Schedulable if VACTIVE region of the SubVP pipe can fit the MALL prefetch, VBLANK frame time,
@@ -1103,7 +1103,7 @@ static void assign_subvp_index(struct dc *dc, struct dc_state *context)
 
                if (resource_is_pipe_type(pipe_ctx, OTG_MASTER) &&
                                dc_state_get_pipe_subvp_type(context, pipe_ctx) == SUBVP_MAIN) {
-                       pipe_ctx->subvp_index = index++;
+                       pipe_ctx->subvp_index = (uint8_t)index++;
                } else {
                        pipe_ctx->subvp_index = 0;
                }
@@ -1627,12 +1627,12 @@ static void dcn32_calculate_dlg_params(struct dc *dc, struct dc_state *context,
        /* Writeback MCIF_WB arbitration parameters */
        dc->res_pool->funcs->set_mcif_arb_params(dc, context, pipes, pipe_cnt);
 
-       context->bw_ctx.bw.dcn.clk.dispclk_khz = context->bw_ctx.dml.vba.DISPCLK * 1000;
-       context->bw_ctx.bw.dcn.clk.dcfclk_khz = context->bw_ctx.dml.vba.DCFCLK * 1000;
-       context->bw_ctx.bw.dcn.clk.socclk_khz = context->bw_ctx.dml.vba.SOCCLK * 1000;
-       context->bw_ctx.bw.dcn.clk.dramclk_khz = context->bw_ctx.dml.vba.DRAMSpeed * 1000 / 16;
-       context->bw_ctx.bw.dcn.clk.dcfclk_deep_sleep_khz = context->bw_ctx.dml.vba.DCFCLKDeepSleep * 1000;
-       context->bw_ctx.bw.dcn.clk.fclk_khz = context->bw_ctx.dml.vba.FabricClock * 1000;
+       context->bw_ctx.bw.dcn.clk.dispclk_khz = (int)(context->bw_ctx.dml.vba.DISPCLK * 1000);
+       context->bw_ctx.bw.dcn.clk.dcfclk_khz = (int)(context->bw_ctx.dml.vba.DCFCLK * 1000);
+       context->bw_ctx.bw.dcn.clk.socclk_khz = (int)(context->bw_ctx.dml.vba.SOCCLK * 1000);
+       context->bw_ctx.bw.dcn.clk.dramclk_khz = (int)(context->bw_ctx.dml.vba.DRAMSpeed * 1000 / 16);
+       context->bw_ctx.bw.dcn.clk.dcfclk_deep_sleep_khz = (int)(context->bw_ctx.dml.vba.DCFCLKDeepSleep * 1000);
+       context->bw_ctx.bw.dcn.clk.fclk_khz = (int)(context->bw_ctx.dml.vba.FabricClock * 1000);
        context->bw_ctx.bw.dcn.clk.p_state_change_support =
                        context->bw_ctx.dml.vba.DRAMClockChangeSupport[vlevel][context->bw_ctx.dml.vba.maxMpcComb]
                                        != dm_dram_clock_change_unsupported;
@@ -1644,7 +1644,7 @@ static void dcn32_calculate_dlg_params(struct dc *dc, struct dc_state *context,
 
        context->bw_ctx.bw.dcn.clk.dppclk_khz = 0;
        context->bw_ctx.bw.dcn.clk.dtbclk_en = is_dtbclk_required(dc, context);
-       context->bw_ctx.bw.dcn.clk.ref_dtbclk_khz = context->bw_ctx.dml.vba.DTBCLKPerState[vlevel] * 1000;
+       context->bw_ctx.bw.dcn.clk.ref_dtbclk_khz = (int)(context->bw_ctx.dml.vba.DTBCLKPerState[vlevel] * 1000);
        if (context->bw_ctx.dml.vba.FCLKChangeSupport[vlevel][context->bw_ctx.dml.vba.maxMpcComb] == dm_fclock_change_unsupported)
                context->bw_ctx.bw.dcn.clk.fclk_p_state_change_support = false;
        else
@@ -1673,13 +1673,13 @@ static void dcn32_calculate_dlg_params(struct dc *dc, struct dc_state *context,
                        continue;
                if (context->res_ctx.pipe_ctx[i].plane_state)
                        active_hubp_count++;
-               pipes[pipe_idx].pipe.dest.vstartup_start = get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt,
+               pipes[pipe_idx].pipe.dest.vstartup_start = (unsigned int)get_vstartup(&context->bw_ctx.dml, pipes, pipe_cnt,
                                pipe_idx);
-               pipes[pipe_idx].pipe.dest.vupdate_offset = get_vupdate_offset(&context->bw_ctx.dml, pipes, pipe_cnt,
+               pipes[pipe_idx].pipe.dest.vupdate_offset = (unsigned int)get_vupdate_offset(&context->bw_ctx.dml, pipes, pipe_cnt,
                                pipe_idx);
-               pipes[pipe_idx].pipe.dest.vupdate_width = get_vupdate_width(&context->bw_ctx.dml, pipes, pipe_cnt,
+               pipes[pipe_idx].pipe.dest.vupdate_width = (unsigned int)get_vupdate_width(&context->bw_ctx.dml, pipes, pipe_cnt,
                                pipe_idx);
-               pipes[pipe_idx].pipe.dest.vready_offset = get_vready_offset(&context->bw_ctx.dml, pipes, pipe_cnt,
+               pipes[pipe_idx].pipe.dest.vready_offset = (unsigned int)get_vready_offset(&context->bw_ctx.dml, pipes, pipe_cnt,
                                pipe_idx);
 
                if (dc_state_get_pipe_subvp_type(context, &context->res_ctx.pipe_ctx[i]) == SUBVP_PHANTOM) {
@@ -1687,20 +1687,20 @@ static void dcn32_calculate_dlg_params(struct dc *dc, struct dc_state *context,
                        context->res_ctx.pipe_ctx[i].det_buffer_size_kb = 0;
                        context->res_ctx.pipe_ctx[i].unbounded_req = false;
                } else {
-                       context->res_ctx.pipe_ctx[i].det_buffer_size_kb = get_det_buffer_size_kbytes(&context->bw_ctx.dml, pipes, pipe_cnt,
+                       context->res_ctx.pipe_ctx[i].det_buffer_size_kb = (int)get_det_buffer_size_kbytes(&context->bw_ctx.dml, pipes, pipe_cnt,
                                                        pipe_idx);
                        context->res_ctx.pipe_ctx[i].unbounded_req = unbounded_req_enabled;
                }
 
                if (context->bw_ctx.bw.dcn.clk.dppclk_khz < pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000)
-                       context->bw_ctx.bw.dcn.clk.dppclk_khz = pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000;
+                       context->bw_ctx.bw.dcn.clk.dppclk_khz = (int)(pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000);
                if (context->res_ctx.pipe_ctx[i].plane_state)
-                       context->res_ctx.pipe_ctx[i].plane_res.bw.dppclk_khz = pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000;
+                       context->res_ctx.pipe_ctx[i].plane_res.bw.dppclk_khz = (int)(pipes[pipe_idx].clks_cfg.dppclk_mhz * 1000);
                else
                        context->res_ctx.pipe_ctx[i].plane_res.bw.dppclk_khz = 0;
                context->res_ctx.pipe_ctx[i].pipe_dlg_param = pipes[pipe_idx].pipe.dest;
 
-               context->res_ctx.pipe_ctx[i].surface_size_in_mall_bytes = get_surface_size_in_mall(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
+               context->res_ctx.pipe_ctx[i].surface_size_in_mall_bytes = (unsigned int)get_surface_size_in_mall(&context->bw_ctx.dml, pipes, pipe_cnt, pipe_idx);
 
                if (vba->ActiveDRAMClockChangeLatencyMarginPerState[vba->VoltageLevel][vba->maxMpcComb][vba->pipe_plane[pipe_idx]] > 0)
                        context->res_ctx.pipe_ctx[i].has_vactive_margin = true;
@@ -1743,10 +1743,10 @@ static void dcn32_calculate_dlg_params(struct dc *dc, struct dc_state *context,
        /*save a original dppclock copy*/
        context->bw_ctx.bw.dcn.clk.bw_dppclk_khz = context->bw_ctx.bw.dcn.clk.dppclk_khz;
        context->bw_ctx.bw.dcn.clk.bw_dispclk_khz = context->bw_ctx.bw.dcn.clk.dispclk_khz;
-       context->bw_ctx.bw.dcn.clk.max_supported_dppclk_khz = context->bw_ctx.dml.soc.clock_limits[vlevel].dppclk_mhz
-                       * 1000;
-       context->bw_ctx.bw.dcn.clk.max_supported_dispclk_khz = context->bw_ctx.dml.soc.clock_limits[vlevel].dispclk_mhz
-                       * 1000;
+       context->bw_ctx.bw.dcn.clk.max_supported_dppclk_khz = (int)(context->bw_ctx.dml.soc.clock_limits[vlevel].dppclk_mhz
+                       * 1000);
+       context->bw_ctx.bw.dcn.clk.max_supported_dispclk_khz = (int)(context->bw_ctx.dml.soc.clock_limits[vlevel].dispclk_mhz
+                       * 1000);
 
        context->bw_ctx.bw.dcn.clk.num_ways = dcn32_helper_calculate_num_ways_for_subvp(dc, context);
 
@@ -2279,7 +2279,7 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
                        dm_dram_clock_change_unsupported;
        unsigned int dummy_latency_index = 0;
        int maxMpcComb = context->bw_ctx.dml.vba.maxMpcComb;
-       unsigned int min_dram_speed_mts = context->bw_ctx.dml.vba.DRAMSpeed;
+       unsigned int min_dram_speed_mts = (unsigned int)context->bw_ctx.dml.vba.DRAMSpeed;
        bool subvp_in_use = dcn32_subvp_in_use(dc, context);
        unsigned int min_dram_speed_mts_margin;
        bool need_fclk_lat_as_dummy = false;
@@ -2408,16 +2408,16 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
                context->bw_ctx.dml.soc.sr_enter_plus_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_B].dml_input.sr_enter_plus_exit_time_us;
                context->bw_ctx.dml.soc.sr_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_B].dml_input.sr_exit_time_us;
        }
-       context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.fclk_pstate_change_ns = get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.b.usr_retraining_ns = get_usr_retraining_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.fclk_pstate_change_ns = (uint32_t)(get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.b.usr_retraining_ns = (uint32_t)(get_usr_retraining_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
 
        /* Set D:
         * All clocks min.
@@ -2472,7 +2472,7 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
        }
 
        if (dc->clk_mgr->bw_params->wm_table.nv_entries[WM_C].valid) {
-               min_dram_speed_mts = dram_speed_from_validation;
+               min_dram_speed_mts = (unsigned int)dram_speed_from_validation;
                min_dram_speed_mts_margin = 160;
 
                context->bw_ctx.dml.soc.dram_clock_change_latency_us =
@@ -2504,20 +2504,20 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
                context->bw_ctx.dml.soc.sr_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_C].dml_input.sr_exit_time_us;
        }
 
-       context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
        /* On DCN32/321, PMFW will set PSTATE_CHANGE_TYPE = 1 (FCLK) for UCLK dummy p-state.
         * In this case we must program FCLK WM Set C to use the UCLK dummy p-state WM
         * value.
         */
-       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.fclk_pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-       context->bw_ctx.bw.dcn.watermarks.c.usr_retraining_ns = get_usr_retraining_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+       context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.fclk_pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+       context->bw_ctx.bw.dcn.watermarks.c.usr_retraining_ns = (uint32_t)(get_usr_retraining_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
 
        if ((!pstate_en) && (dc->clk_mgr->bw_params->wm_table.nv_entries[WM_C].valid)) {
                /* The only difference between A and C is p-state latency, if p-state is not supported
@@ -2529,7 +2529,7 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
                /* Calculate FCLK p-state change watermark based on FCLK pstate change latency in case
                 * UCLK p-state is not supported, to avoid underflow in case FCLK pstate is supported
                 */
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.fclk_pstate_change_ns = get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.fclk_pstate_change_ns = (uint32_t)(get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
        } else {
                /* Set A:
                 * All clocks min.
@@ -2543,16 +2543,16 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
                context->bw_ctx.dml.soc.sr_enter_plus_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].dml_input.sr_enter_plus_exit_time_us;
                context->bw_ctx.dml.soc.sr_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].dml_input.sr_exit_time_us;
 
-               context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.fclk_pstate_change_ns = get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
-               context->bw_ctx.bw.dcn.watermarks.a.usr_retraining_ns = get_usr_retraining_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000;
+               context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = (uint32_t)(get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = (uint32_t)(get_wm_stutter_enter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = (uint32_t)(get_wm_stutter_exit(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = (uint32_t)(get_wm_dram_clock_change(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = (uint32_t)(get_wm_memory_trip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = (uint32_t)(get_fraction_of_urgent_bandwidth(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = (uint32_t)(get_fraction_of_urgent_bandwidth_imm_flip(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = (uint32_t)(get_urgent_latency(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.fclk_pstate_change_ns = (uint32_t)(get_fclk_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
+               context->bw_ctx.bw.dcn.watermarks.a.usr_retraining_ns = (uint32_t)(get_usr_retraining_watermark(&context->bw_ctx.dml, pipes, pipe_cnt) * 1000);
        }
 
        /* Make set D = set A since we do not optimized watermarks for MALL */
@@ -2577,7 +2577,7 @@ void dcn32_calculate_wm_and_dlg_fpu(struct dc *dc, struct dc_state *context,
                pipe_idx++;
        }
 
-       context->perf_params.stutter_period_us = context->bw_ctx.dml.vba.StutterPeriod;
+       context->perf_params.stutter_period_us = (unsigned int)context->bw_ctx.dml.vba.StutterPeriod;
 
        /* for proper prefetch calculations, if dummy lat > fclk lat, use fclk lat = dummy lat */
        if (need_fclk_lat_as_dummy)
@@ -2611,12 +2611,12 @@ static void dcn32_get_optimal_dcfclk_fclk_for_uclk(unsigned int uclk_mts,
        bw_from_dram = (bw_from_dram1 < bw_from_dram2) ? bw_from_dram1 : bw_from_dram2;
 
        if (optimal_fclk)
-               *optimal_fclk = bw_from_dram /
-               (dcn3_2_soc.fabric_datapath_to_dcn_data_return_bytes * (dcn3_2_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_fclk = (unsigned int)(bw_from_dram /
+               (dcn3_2_soc.fabric_datapath_to_dcn_data_return_bytes * (dcn3_2_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 
        if (optimal_dcfclk)
-               *optimal_dcfclk =  bw_from_dram /
-               (dcn3_2_soc.return_bus_width_bytes * (dcn3_2_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_dcfclk =  (unsigned int)(bw_from_dram /
+               (dcn3_2_soc.return_bus_width_bytes * (dcn3_2_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 }
 
 static void remove_entry_from_table_at_index(struct _vcs_dpi_voltage_scaling_st *table, unsigned int *num_entries,
@@ -2663,13 +2663,13 @@ void dcn32_patch_dpm_table(struct clk_bw_params *bw_params)
         *  0, will cause it to skip building the clock table.
         */
        if (max_dcfclk_mhz == 0)
-               bw_params->clk_table.entries[0].dcfclk_mhz = dcn3_2_soc.clock_limits[0].dcfclk_mhz;
+               bw_params->clk_table.entries[0].dcfclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].dcfclk_mhz;
        if (max_dispclk_mhz == 0)
-               bw_params->clk_table.entries[0].dispclk_mhz = dcn3_2_soc.clock_limits[0].dispclk_mhz;
+               bw_params->clk_table.entries[0].dispclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].dispclk_mhz;
        if (max_dtbclk_mhz == 0)
-               bw_params->clk_table.entries[0].dtbclk_mhz = dcn3_2_soc.clock_limits[0].dtbclk_mhz;
+               bw_params->clk_table.entries[0].dtbclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].dtbclk_mhz;
        if (max_uclk_mhz == 0)
-               bw_params->clk_table.entries[0].memclk_mhz = dcn3_2_soc.clock_limits[0].dram_speed_mts / 16;
+               bw_params->clk_table.entries[0].memclk_mhz = (unsigned int)(dcn3_2_soc.clock_limits[0].dram_speed_mts / 16);
 }
 
 static void swap_table_entries(struct _vcs_dpi_voltage_scaling_st *first_entry,
@@ -2691,7 +2691,7 @@ static void sort_entries_with_same_bw(struct _vcs_dpi_voltage_scaling_st *table,
 
        for (int i = 0; i < (*num_entries - 1); i++) {
                if (table[i].net_bw_in_kbytes_sec == table[i+1].net_bw_in_kbytes_sec) {
-                       current_bw = table[i].net_bw_in_kbytes_sec;
+                       current_bw = (unsigned int)table[i].net_bw_in_kbytes_sec;
                        start_index = i;
                        end_index = ++i;
 
@@ -2838,12 +2838,12 @@ static int build_synthetic_soc_states(bool disable_dc_mode_overwrite, struct clk
                max_clk_data.dppclk_mhz = max_clk_data.dispclk_mhz;
 
        if (max_clk_data.fclk_mhz == 0)
-               max_clk_data.fclk_mhz = max_clk_data.dcfclk_mhz *
+               max_clk_data.fclk_mhz = (unsigned int)(max_clk_data.dcfclk_mhz *
                                dcn3_2_soc.pct_ideal_sdp_bw_after_urgent /
-                               dcn3_2_soc.pct_ideal_fabric_bw_after_urgent;
+                               dcn3_2_soc.pct_ideal_fabric_bw_after_urgent);
 
        if (max_clk_data.phyclk_mhz == 0)
-               max_clk_data.phyclk_mhz = dcn3_2_soc.clock_limits[0].phyclk_mhz;
+               max_clk_data.phyclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].phyclk_mhz;
 
        *num_entries = 0;
        entry.dispclk_mhz = max_clk_data.dispclk_mhz;
@@ -3096,9 +3096,12 @@ void dcn32_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_pa
                        dc->ctx->dc_bios->vram_info.num_chans) * dc->caps.mall_size_per_mem_channel);
        }
 
-       if (dc->ctx->dc_bios->vram_info.dram_channel_width_bytes)
-               dc->dml2_options.bbox_overrides.dram_chanel_width_bytes =
-               dcn3_2_soc.dram_channel_width_bytes = dc->ctx->dc_bios->vram_info.dram_channel_width_bytes;
+       if (dc->ctx->dc_bios->vram_info.dram_channel_width_bytes) {
+               unsigned int dram_channel_width_bytes = (unsigned int)dc->ctx->dc_bios->vram_info.dram_channel_width_bytes;
+
+               dc->dml2_options.bbox_overrides.dram_chanel_width_bytes = dram_channel_width_bytes;
+               dcn3_2_soc.dram_channel_width_bytes = dram_channel_width_bytes;
+       }
 
        /* DML DSC delay factor workaround */
        dcn3_2_ip.dsc_delay_factor_wa = dc->debug.dsc_delay_factor_wa_x1000 / 1000.0;
@@ -3145,13 +3148,13 @@ void dcn32_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_pa
                        if (min_dcfclk > dcfclk_sta_targets[0])
                                dcfclk_sta_targets[0] = min_dcfclk;
                        if (!max_dcfclk_mhz)
-                               max_dcfclk_mhz = dcn3_2_soc.clock_limits[0].dcfclk_mhz;
+                               max_dcfclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].dcfclk_mhz;
                        if (!max_dispclk_mhz)
-                               max_dispclk_mhz = dcn3_2_soc.clock_limits[0].dispclk_mhz;
+                               max_dispclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].dispclk_mhz;
                        if (!max_dppclk_mhz)
-                               max_dppclk_mhz = dcn3_2_soc.clock_limits[0].dppclk_mhz;
+                               max_dppclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].dppclk_mhz;
                        if (!max_phyclk_mhz)
-                               max_phyclk_mhz = dcn3_2_soc.clock_limits[0].phyclk_mhz;
+                               max_phyclk_mhz = (unsigned int)dcn3_2_soc.clock_limits[0].phyclk_mhz;
 
                        if (max_dcfclk_mhz > dcfclk_sta_targets[num_dcfclk_sta_targets-1]) {
                                // If max DCFCLK is greater than the max DCFCLK STA target, insert into the DCFCLK STA target array
@@ -3414,9 +3417,9 @@ bool dcn32_allow_subvp_high_refresh_rate(struct dc *dc, struct dc_state *context
 
                if (!pipe_ctx->stream)
                        continue;
-               refresh_rate = (pipe_ctx->stream->timing.pix_clk_100hz * 100 +
+               refresh_rate = (unsigned int)((pipe_ctx->stream->timing.pix_clk_100hz * 100 +
                                pipe_ctx->stream->timing.v_total * pipe_ctx->stream->timing.h_total - 1)
-                                               / (double)(pipe_ctx->stream->timing.v_total * pipe_ctx->stream->timing.h_total);
+                                               / (double)(pipe_ctx->stream->timing.v_total * pipe_ctx->stream->timing.h_total));
 
                if (refresh_rate < min_refresh)
                        min_refresh = refresh_rate;
@@ -3424,9 +3427,9 @@ bool dcn32_allow_subvp_high_refresh_rate(struct dc *dc, struct dc_state *context
 
        if (!dc->debug.disable_subvp_high_refresh && min_refresh >= subvp_min_refresh && pipe->stream &&
                        pipe->plane_state && !(pipe->stream->vrr_active_variable || pipe->stream->vrr_active_fixed)) {
-               refresh_rate = (pipe->stream->timing.pix_clk_100hz * 100 +
+               refresh_rate = (unsigned int)((pipe->stream->timing.pix_clk_100hz * 100 +
                                                pipe->stream->timing.v_total * pipe->stream->timing.h_total - 1)
-                                               / (double)(pipe->stream->timing.v_total * pipe->stream->timing.h_total);
+                                               / (double)(pipe->stream->timing.v_total * pipe->stream->timing.h_total));
                if (refresh_rate >= subvp_min_refresh && refresh_rate <= subvp_max_refresh) {
                        for (i = 0; i < SUBVP_HIGH_REFRESH_LIST_LEN; i++) {
                                uint32_t width = subvp_high_refresh_list.res[i].width;
@@ -3546,8 +3549,8 @@ bool dcn32_find_vactive_pipe(struct dc *dc, const struct dc_state *context, stru
                /* Every plane (apart from the ones driven by the FPO pipes) needs to have active margin
                 * in order for us to have found a valid "vactive" config for FPO + Vactive
                 */
-               blank_us = ((pipe->stream->timing.v_total - pipe->stream->timing.v_addressable) * pipe->stream->timing.h_total /
-                               (double)(pipe->stream->timing.pix_clk_100hz * 100)) * 1000000;
+               blank_us = (unsigned int)(((pipe->stream->timing.v_total - pipe->stream->timing.v_addressable) * pipe->stream->timing.h_total /
+                               (double)(pipe->stream->timing.pix_clk_100hz * 100)) * 1000000);
                if (vba->ActiveDRAMClockChangeLatencyMarginPerState[vba->VoltageLevel][vba->maxMpcComb][vba->pipe_plane[pipe_idx]] < vactive_margin_req_us ||
                                pipe->stream->vrr_active_variable || pipe->stream->vrr_active_fixed || blank_us >= dc->debug.fpo_vactive_max_blank_us) {
                        vactive_found = false;
@@ -3575,7 +3578,7 @@ void dcn32_override_min_req_memclk(struct dc *dc, struct dc_state *context)
                if (context->bw_ctx.dml.vba.DRAMSpeed <= dc->clk_mgr->bw_params->clk_table.entries[0].memclk_mhz * 16 &&
                                num_mclk_levels > 1) {
                        context->bw_ctx.dml.vba.DRAMSpeed = dc->clk_mgr->bw_params->clk_table.entries[1].memclk_mhz * 16;
-                       context->bw_ctx.bw.dcn.clk.dramclk_khz = context->bw_ctx.dml.vba.DRAMSpeed * 1000 / 16;
+                       context->bw_ctx.bw.dcn.clk.dramclk_khz = (int)(context->bw_ctx.dml.vba.DRAMSpeed * 1000 / 16);
                }
        }
 }
index 0782a34689a00fa684586baf79ce0ca4d46a4f8b..f2bd43c8ed991be659e735e1acfef273bc463561 100644 (file)
@@ -92,8 +92,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                        mode_lib->vba.WritebackHTaps[k],
                                                        mode_lib->vba.WritebackVTaps[k],
                                                        mode_lib->vba.WritebackSourceWidth[k],
-                                                       mode_lib->vba.WritebackDestinationWidth[k],
-                                                       mode_lib->vba.HTotal[k], mode_lib->vba.WritebackLineBufferSize,
+                                                       (long)mode_lib->vba.WritebackDestinationWidth[k],
+                                                       mode_lib->vba.HTotal[k], (unsigned int)mode_lib->vba.WritebackLineBufferSize,
                                                        mode_lib->vba.DISPCLKDPPCLKVCOSpeed));
                }
        }
@@ -305,8 +305,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                         .dummy_boolean); /* bool *ViewportSizeSupport */
        }
 
-       v->CompBufReservedSpaceZs     = v->CompBufReservedSpaceKBytes * 1024.0 / 256.0;
-       v->CompBufReservedSpace64B    = v->CompBufReservedSpaceKBytes * 1024.0 / 64.0;
+       v->CompBufReservedSpaceZs     = (unsigned int)(v->CompBufReservedSpaceKBytes * 1024.0 / 256.0);
+       v->CompBufReservedSpace64B    = (unsigned int)(v->CompBufReservedSpaceKBytes * 1024.0 / 64.0);
 
        // DCFCLK Deep Sleep
        dml32_CalculateDCFCLKDeepSleep(
@@ -326,7 +326,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        mode_lib->vba.DPPCLK,
                        v->ReadBandwidthSurfaceLuma,
                        v->ReadBandwidthSurfaceChroma,
-                       mode_lib->vba.ReturnBusWidth,
+                       (int)mode_lib->vba.ReturnBusWidth,
 
                        /* Output */
                        &v->DCFCLKDeepSleep);
@@ -479,7 +479,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                mode_lib->vba.HostVMMaxNonCachedPageTableLevels,
                                mode_lib->vba.GPUVMMaxPageTableLevels,
                                mode_lib->vba.GPUVMMinPageSizeKBytes,
-                               mode_lib->vba.HostVMMinPageSize,
+                               (unsigned int)mode_lib->vba.HostVMMinPageSize,
 
                                /* Output */
                                v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.dummy_boolean_array2[0],  // Boolean PTEBufferSizeNotExceeded[]
@@ -528,12 +528,12 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
        }
 
 
-       v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.ReorderBytes = mode_lib->vba.NumberOfChannels
+       v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.ReorderBytes = (unsigned int)(mode_lib->vba.NumberOfChannels
                        * dml_max3(mode_lib->vba.UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        mode_lib->vba.UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       mode_lib->vba.UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       mode_lib->vba.UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
-       v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.VMDataOnlyReturnBW = dml32_get_return_bw_mbps_vm_only(
+       v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.VMDataOnlyReturnBW = (unsigned int)dml32_get_return_bw_mbps_vm_only(
                        &mode_lib->vba.soc,
                        mode_lib->vba.VoltageLevel,
                        mode_lib->vba.DCFCLK,
@@ -577,7 +577,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
        }
 
        v->UrgentExtraLatency = dml32_CalculateExtraLatency(
-                       mode_lib->vba.RoundTripPingLatencyCycles,
+                       (int)mode_lib->vba.RoundTripPingLatencyCycles,
                        v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.ReorderBytes,
                        mode_lib->vba.DCFCLK,
                        mode_lib->vba.TotalActiveDPP,
@@ -591,7 +591,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        mode_lib->vba.DPPPerPlane,
                        v->dpte_group_bytes,
                        v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.HostVMInefficiencyFactor,
-                       mode_lib->vba.HostVMMinPageSize,
+                       (unsigned int)mode_lib->vba.HostVMMinPageSize,
                        mode_lib->vba.HostVMMaxNonCachedPageTableLevels);
 
        mode_lib->vba.TCalc = 24.0 / v->DCFCLKDeepSleep;
@@ -605,9 +605,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                mode_lib->vba.WritebackHRatio[k],
                                                                mode_lib->vba.WritebackVRatio[k],
                                                                mode_lib->vba.WritebackVTaps[k],
-                                                               mode_lib->vba.WritebackDestinationWidth[k],
-                                                               mode_lib->vba.WritebackDestinationHeight[k],
-                                                               mode_lib->vba.WritebackSourceHeight[k],
+                                                               (long)mode_lib->vba.WritebackDestinationWidth[k],
+                                                               (int)mode_lib->vba.WritebackDestinationHeight[k],
+                                                               (int)mode_lib->vba.WritebackSourceHeight[k],
                                                                mode_lib->vba.HTotal[k]) / mode_lib->vba.DISPCLK;
                        } else
                                v->WritebackDelay[mode_lib->vba.VoltageLevel][k] = 0;
@@ -622,9 +622,9 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                                mode_lib->vba.WritebackHRatio[j],
                                                                mode_lib->vba.WritebackVRatio[j],
                                                                mode_lib->vba.WritebackVTaps[j],
-                                                               mode_lib->vba.WritebackDestinationWidth[j],
-                                                               mode_lib->vba.WritebackDestinationHeight[j],
-                                                               mode_lib->vba.WritebackSourceHeight[j],
+                                                               (int)mode_lib->vba.WritebackDestinationWidth[j],
+                                                               (int)mode_lib->vba.WritebackDestinationHeight[j],
+                                                               (int)mode_lib->vba.WritebackSourceHeight[j],
                                                                mode_lib->vba.HTotal[k]) / mode_lib->vba.DISPCLK);
                                }
                        }
@@ -693,12 +693,12 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                mode_lib->vba.UseUnboundedRequesting);
 
        for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
-               v->MaxVStartupLines[k] = ((mode_lib->vba.Interlace[k] &&
+               v->MaxVStartupLines[k] = (unsigned int)(((mode_lib->vba.Interlace[k] &&
                                !mode_lib->vba.ProgressiveToInterlaceUnitInOPP) ?
                                dml_floor((mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k]) / 2.0, 1.0) :
                                mode_lib->vba.VTotal[k] - mode_lib->vba.VActive[k]) - dml_max(1.0,
                                dml_ceil((double) v->WritebackDelay[mode_lib->vba.VoltageLevel][k]
-                               / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]), 1));
+                               / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]), 1)));
 
                // Clamp to max OTG vstartup register limit
                if (v->MaxVStartupLines[k] > 1023)
@@ -714,7 +714,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 
        v->MaximumMaxVStartupLines = 0;
        for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k)
-               v->MaximumMaxVStartupLines = dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
+               v->MaximumMaxVStartupLines = (unsigned int)dml_max(v->MaximumMaxVStartupLines, v->MaxVStartupLines[k]);
 
        ImmediateFlipRequirementFinal = false;
 
@@ -789,21 +789,21 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                        &v->dummy_vars.DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation.myPipe,
                                        v->DSCDelay[k],
                                        (unsigned int) (v->SwathWidthY[k] / v->HRatio[k]),
-                                       dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
+                                       (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]),
                                        v->MaxVStartupLines[k],
                                        v->UrgentLatency,
                                        v->UrgentExtraLatency,
                                        v->TCalc,
-                                       v->PDEAndMetaPTEBytesFrame[k],
-                                       v->MetaRowByte[k],
-                                       v->PixelPTEBytesPerRow[k],
+                                       (unsigned int)v->PDEAndMetaPTEBytesFrame[k],
+                                       (unsigned int)v->MetaRowByte[k],
+                                       (unsigned int)v->PixelPTEBytesPerRow[k],
                                        v->PrefetchSourceLinesY[k],
-                                       v->SwathWidthY[k],
-                                       v->VInitPreFillY[k],
+                                       (unsigned int)v->SwathWidthY[k],
+                                       (unsigned int)v->VInitPreFillY[k],
                                        v->MaxNumSwathY[k],
                                        v->PrefetchSourceLinesC[k],
-                                       v->SwathWidthC[k],
-                                       v->VInitPreFillC[k],
+                                       (unsigned int)v->SwathWidthC[k],
+                                       (unsigned int)v->VInitPreFillC[k],
                                        v->MaxNumSwathC[k],
                                        v->swath_width_luma_ub[k],
                                        v->swath_width_chroma_ub[k],
@@ -839,7 +839,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        dml_print("DML::%s: k=%0d Prefetch calculation errResult=%0d\n",
                                        __func__, k, mode_lib->vba.ErrorResult[k]);
 #endif
-                       v->VStartup[k] = dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
+                       v->VStartup[k] = (unsigned int)dml_min(v->VStartupLines, v->MaxVStartupLines[k]);
                }
 
                for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
@@ -1019,18 +1019,18 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                        mode_lib->vba.TotImmediateFlipBytes = 0;
                        for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) {
                                if (mode_lib->vba.ImmediateFlipRequirement[k] != dm_immediate_flip_not_required) {
-                                       mode_lib->vba.TotImmediateFlipBytes = mode_lib->vba.TotImmediateFlipBytes
+                                       mode_lib->vba.TotImmediateFlipBytes = (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
                                                        + mode_lib->vba.DPPPerPlane[k]
                                                                        * (v->PDEAndMetaPTEBytesFrame[k]
-                                                                                       + v->MetaRowByte[k]);
+                                                                                       + v->MetaRowByte[k]));
                                        if (v->use_one_row_for_frame_flip[k][0][0]) {
                                                mode_lib->vba.TotImmediateFlipBytes =
-                                                               mode_lib->vba.TotImmediateFlipBytes
-                                                                               + 2 * v->PixelPTEBytesPerRow[k];
+                                                               (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
+                                                                               + 2 * v->PixelPTEBytesPerRow[k]);
                                        } else {
                                                mode_lib->vba.TotImmediateFlipBytes =
-                                                               mode_lib->vba.TotImmediateFlipBytes
-                                                                               + v->PixelPTEBytesPerRow[k];
+                                                               (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
+                                                                               + v->PixelPTEBytesPerRow[k]);
                                        }
                                }
                        }
@@ -1042,10 +1042,10 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                                                mode_lib->vba.HostVMEnable,
                                                mode_lib->vba.HostVMMaxNonCachedPageTableLevels,
                                                mode_lib->vba.GPUVMEnable,
-                                               mode_lib->vba.HostVMMinPageSize,
-                                               v->PDEAndMetaPTEBytesFrame[k],
-                                               v->MetaRowByte[k],
-                                               v->PixelPTEBytesPerRow[k],
+                                               (unsigned int)mode_lib->vba.HostVMMinPageSize,
+                                               (unsigned int)v->PDEAndMetaPTEBytesFrame[k],
+                                               (unsigned int)v->MetaRowByte[k],
+                                               (unsigned int)v->PixelPTEBytesPerRow[k],
                                                mode_lib->vba.BandwidthAvailableForImmediateFlip,
                                                mode_lib->vba.TotImmediateFlipBytes,
                                                mode_lib->vba.SourcePixelFormat[k],
@@ -1439,14 +1439,14 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
                isInterlaceTiming = (mode_lib->vba.Interlace[k] &&
                                !mode_lib->vba.ProgressiveToInterlaceUnitInOPP);
 
-               v->MIN_DST_Y_NEXT_START[k] = ((isInterlaceTiming ? dml_floor((mode_lib->vba.VTotal[k] -
+               v->MIN_DST_Y_NEXT_START[k] = (unsigned int)(((isInterlaceTiming ? dml_floor((mode_lib->vba.VTotal[k] -
                                                mode_lib->vba.VFrontPorch[k]) / 2.0, 1.0) :
                                                mode_lib->vba.VTotal[k]) - mode_lib->vba.VFrontPorch[k])
                                                + dml_max(1.0,
                                                dml_ceil(v->WritebackDelay[mode_lib->vba.VoltageLevel][k]
                                                / (mode_lib->vba.HTotal[k] / mode_lib->vba.PixelClock[k]), 1.0))
                                                + dml_floor(4.0 * v->TSetup[k] / (mode_lib->vba.HTotal[k]
-                                               / mode_lib->vba.PixelClock[k]), 1.0) / 4.0;
+                                               / mode_lib->vba.PixelClock[k]), 1.0) / 4.0);
 
                v->VStartup[k] = (isInterlaceTiming ? (2 * v->MaxVStartupLines[k]) : v->MaxVStartupLines[k]);
 
@@ -1931,7 +1931,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
 
                if (mode_lib->vba.SourcePixelFormat[k] == dm_420_8 || mode_lib->vba.SourcePixelFormat[k] == dm_420_10
                                || mode_lib->vba.SourcePixelFormat[k] == dm_420_12) {
-                       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportChroma = v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportLuma / 2.0;
+                       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportChroma = (unsigned int)(v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportLuma / 2.0);
                } else {
                        v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportChroma = v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.MaximumSwathWidthSupportLuma;
                }
@@ -2103,7 +2103,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeNoDSC,
                                                v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ODMModeDSC,
                                                mode_lib->vba.DSCEnable[k],
-                                               mode_lib->vba.OutputLinkDPLanes[k],
+                                               (int)mode_lib->vba.OutputLinkDPLanes[k],
                                                mode_lib->vba.OutputLinkDPRate[k],
 
                                                /* Output */
@@ -2237,9 +2237,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                        mode_lib->vba.WritebackHTaps[k],
                                                                        mode_lib->vba.WritebackVTaps[k],
                                                                        mode_lib->vba.WritebackSourceWidth[k],
-                                                                       mode_lib->vba.WritebackDestinationWidth[k],
+                                                                       (long)mode_lib->vba.WritebackDestinationWidth[k],
                                                                        mode_lib->vba.HTotal[k],
-                                                                       mode_lib->vba.WritebackLineBufferSize,
+                                                                       (unsigned int)mode_lib->vba.WritebackLineBufferSize,
                                                                        mode_lib->vba.DISPCLKDPPCLKVCOSpeed));
                                }
                        }
@@ -2622,8 +2622,8 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                mode_lib->vba.swath_width_luma_ub_this_state[k];
                                mode_lib->vba.swath_width_chroma_ub_all_states[i][j][k] =
                                                mode_lib->vba.swath_width_chroma_ub_this_state[k];
-                               mode_lib->vba.SwathWidthYAllStates[i][j][k] = mode_lib->vba.SwathWidthYThisState[k];
-                               mode_lib->vba.SwathWidthCAllStates[i][j][k] = mode_lib->vba.SwathWidthCThisState[k];
+                               mode_lib->vba.SwathWidthYAllStates[i][j][k] = (unsigned int)mode_lib->vba.SwathWidthYThisState[k];
+                               mode_lib->vba.SwathWidthCAllStates[i][j][k] = (unsigned int)mode_lib->vba.SwathWidthCThisState[k];
                                mode_lib->vba.SwathHeightYAllStates[i][j][k] = mode_lib->vba.SwathHeightYThisState[k];
                                mode_lib->vba.SwathHeightCAllStates[i][j][k] = mode_lib->vba.SwathHeightCThisState[k];
                                mode_lib->vba.UnboundedRequestEnabledAllStates[i][j] =
@@ -2696,9 +2696,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                mode_lib->vba.DETBufferSizeInKByteThisState[k] =
                                                mode_lib->vba.DETBufferSizeInKByteAllStates[i][j][k];
                                mode_lib->vba.DETBufferSizeYThisState[k] =
-                                               mode_lib->vba.DETBufferSizeYAllStates[i][j][k];
+                                               (unsigned int)mode_lib->vba.DETBufferSizeYAllStates[i][j][k];
                                mode_lib->vba.DETBufferSizeCThisState[k] =
-                                               mode_lib->vba.DETBufferSizeCAllStates[i][j][k];
+                                               (unsigned int)mode_lib->vba.DETBufferSizeCAllStates[i][j][k];
                                mode_lib->vba.RequiredDPPCLKThisState[k] = mode_lib->vba.RequiredDPPCLK[i][j][k];
                                mode_lib->vba.NoOfDPPThisState[k] = mode_lib->vba.NoOfDPP[i][j][k];
                        }
@@ -2772,7 +2772,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                mode_lib->vba.HostVMMaxNonCachedPageTableLevels,
                                                mode_lib->vba.GPUVMMaxPageTableLevels,
                                                mode_lib->vba.GPUVMMinPageSizeKBytes,
-                                               mode_lib->vba.HostVMMinPageSize,
+                                               (unsigned int)mode_lib->vba.HostVMMinPageSize,
 
                                                /* Output */
                                                mode_lib->vba.PTEBufferSizeNotExceededPerState,
@@ -2901,7 +2901,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                        mode_lib->vba.RequiredDPPCLKThisState,
                                        mode_lib->vba.ReadBandwidthLuma,
                                        mode_lib->vba.ReadBandwidthChroma,
-                                       mode_lib->vba.ReturnBusWidth,
+                                       (int)mode_lib->vba.ReturnBusWidth,
 
                                        /* Output */
                                        &mode_lib->vba.ProjectedDCFCLKDeepSleep[i][j]);
@@ -2921,9 +2921,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.WritebackHRatio[k],
                                                        mode_lib->vba.WritebackVRatio[k],
                                                        mode_lib->vba.WritebackVTaps[k],
-                                                       mode_lib->vba.WritebackDestinationWidth[k],
-                                                       mode_lib->vba.WritebackDestinationHeight[k],
-                                                       mode_lib->vba.WritebackSourceHeight[k],
+                                                       (long)mode_lib->vba.WritebackDestinationWidth[k],
+                                                       (int)mode_lib->vba.WritebackDestinationHeight[k],
+                                                       (int)mode_lib->vba.WritebackSourceHeight[k],
                                                        mode_lib->vba.HTotal[k])
                                                        / mode_lib->vba.RequiredDISPCLK[i][j];
                                        } else {
@@ -2940,9 +2940,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                                        mode_lib->vba.WritebackHRatio[m],
                                                                        mode_lib->vba.WritebackVRatio[m],
                                                                        mode_lib->vba.WritebackVTaps[m],
-                                                                       mode_lib->vba.WritebackDestinationWidth[m],
-                                                                       mode_lib->vba.WritebackDestinationHeight[m],
-                                                                       mode_lib->vba.WritebackSourceHeight[m],
+                                                                       (int)mode_lib->vba.WritebackDestinationWidth[m],
+                                                                       (int)mode_lib->vba.WritebackDestinationHeight[m],
+                                                                       (int)mode_lib->vba.WritebackSourceHeight[m],
                                                                        mode_lib->vba.HTotal[m]) /
                                                                        mode_lib->vba.RequiredDISPCLK[i][j]);
                                                }
@@ -2979,10 +2979,10 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                }
        }
 
-       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes = mode_lib->vba.NumberOfChannels
+       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes = (unsigned int)(mode_lib->vba.NumberOfChannels
                        * dml_max3(mode_lib->vba.UrgentOutOfOrderReturnPerChannelPixelDataOnly,
                                        mode_lib->vba.UrgentOutOfOrderReturnPerChannelPixelMixedWithVMData,
-                                       mode_lib->vba.UrgentOutOfOrderReturnPerChannelVMDataOnly);
+                                       mode_lib->vba.UrgentOutOfOrderReturnPerChannelVMDataOnly));
 
        dml32_CalculateMinAndMaxPrefetchMode(mode_lib->vba.AllowForPStateChangeOrStutterInVBlankFinal,
                        &mode_lib->vba.MinPrefetchMode,
@@ -3060,8 +3060,8 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                mode_lib->vba.DRAMClockChangeLatency,
                                mode_lib->vba.FCLKChangeLatency,
                                mode_lib->vba.SREnterPlusExitTime,
-                               mode_lib->vba.ReturnBusWidth,
-                               mode_lib->vba.RoundTripPingLatencyCycles,
+                               (int)mode_lib->vba.ReturnBusWidth,
+                               (int)mode_lib->vba.RoundTripPingLatencyCycles,
                                v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes,
                                mode_lib->vba.PixelChunkSizeInKByte,
                                mode_lib->vba.MetaChunkSize,
@@ -3069,7 +3069,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                mode_lib->vba.GPUVMMaxPageTableLevels,
                                mode_lib->vba.HostVMEnable,
                                mode_lib->vba.NumberOfActiveSurfaces,
-                               mode_lib->vba.HostVMMinPageSize,
+                               (unsigned int)mode_lib->vba.HostVMMinPageSize,
                                mode_lib->vba.HostVMMaxNonCachedPageTableLevels,
                                mode_lib->vba.DynamicMetadataVMEnabled,
                                mode_lib->vba.ImmediateFlipRequiredFinal,
@@ -3187,9 +3187,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                mode_lib->vba.DETBufferSizeInKByteThisState[k] =
                                                mode_lib->vba.DETBufferSizeInKByteAllStates[i][j][k];
                                mode_lib->vba.DETBufferSizeYThisState[k] =
-                                               mode_lib->vba.DETBufferSizeYAllStates[i][j][k];
+                                               (unsigned int)mode_lib->vba.DETBufferSizeYAllStates[i][j][k];
                                mode_lib->vba.DETBufferSizeCThisState[k] =
-                                               mode_lib->vba.DETBufferSizeCAllStates[i][j][k];
+                                               (unsigned int)mode_lib->vba.DETBufferSizeCAllStates[i][j][k];
                        }
 
                        mode_lib->vba.VActiveBandwithSupport[i][j] = dml32_CalculateVActiveBandwithSupport(
@@ -3236,14 +3236,14 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                / v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.VMDataOnlyReturnBWPerState;
 
                        mode_lib->vba.ExtraLatency = dml32_CalculateExtraLatency(
-                                       mode_lib->vba.RoundTripPingLatencyCycles, v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes,
+                                       (int)mode_lib->vba.RoundTripPingLatencyCycles, v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.ReorderingBytes,
                                        mode_lib->vba.DCFCLKState[i][j], mode_lib->vba.TotalNumberOfActiveDPP[i][j],
                                        mode_lib->vba.PixelChunkSizeInKByte,
                                        mode_lib->vba.TotalNumberOfDCCActiveDPP[i][j], mode_lib->vba.MetaChunkSize,
                                        mode_lib->vba.ReturnBWPerState[i][j], mode_lib->vba.GPUVMEnable,
                                        mode_lib->vba.HostVMEnable, mode_lib->vba.NumberOfActiveSurfaces,
                                        mode_lib->vba.NoOfDPPThisState, mode_lib->vba.dpte_group_bytes,
-                                       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor, mode_lib->vba.HostVMMinPageSize,
+                                       v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor, (unsigned int)mode_lib->vba.HostVMMinPageSize,
                                        mode_lib->vba.HostVMMaxNonCachedPageTableLevels);
 
                        v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.NextPrefetchModeState = mode_lib->vba.MinPrefetchMode;
@@ -3295,23 +3295,23 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        k,
                                                        v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.HostVMInefficiencyFactor,
                                                        &v->dummy_vars.dml32_ModeSupportAndSystemConfigurationFull.myPipe,
-                                                       v->DSCDelayPerState[i][k],
-                                                       v->SwathWidthYThisState[k] / v->HRatio[k],
-                                                       dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
-                                                       v->MaximumVStartup[i][j][k],
+                                                       (unsigned int)v->DSCDelayPerState[i][k],
+                                                       (unsigned int)(v->SwathWidthYThisState[k] / v->HRatio[k]),
+                                                       (unsigned int)dml_min(v->MaxVStartup, v->MaximumVStartup[i][j][k]),
+                                                       (unsigned int)v->MaximumVStartup[i][j][k],
                                                        v->UrgLatency[i],
                                                        v->ExtraLatency,
                                                        v->TimeCalc,
-                                                       v->PDEAndMetaPTEBytesPerFrame[i][j][k],
-                                                       v->MetaRowBytes[i][j][k],
-                                                       v->DPTEBytesPerRow[i][j][k],
+                                                       (unsigned int)v->PDEAndMetaPTEBytesPerFrame[i][j][k],
+                                                       (unsigned int)v->MetaRowBytes[i][j][k],
+                                                       (unsigned int)v->DPTEBytesPerRow[i][j][k],
                                                        v->PrefetchLinesY[i][j][k],
-                                                       v->SwathWidthYThisState[k],
-                                                       v->PrefillY[k],
+                                                       (unsigned int)v->SwathWidthYThisState[k],
+                                                       (unsigned int)v->PrefillY[k],
                                                        v->MaxNumSwY[k],
                                                        v->PrefetchLinesC[i][j][k],
-                                                       v->SwathWidthCThisState[k],
-                                                       v->PrefillC[k],
+                                                       (unsigned int)v->SwathWidthCThisState[k],
+                                                       (unsigned int)v->PrefillC[k],
                                                        v->MaxNumSwC[k],
                                                        v->swath_width_luma_ub_this_state[k],
                                                        v->swath_width_chroma_ub_this_state[k],
@@ -3451,23 +3451,23 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.UrgentBurstFactorChromaPre,
                                                        mode_lib->vba.UrgentBurstFactorCursorPre);
 
-                                       mode_lib->vba.TotImmediateFlipBytes = 0.0;
+                                       mode_lib->vba.TotImmediateFlipBytes = 0;
                                        for (k = 0; k <= mode_lib->vba.NumberOfActiveSurfaces - 1; k++) {
                                                if (!(mode_lib->vba.ImmediateFlipRequirement[k] ==
                                                                dm_immediate_flip_not_required)) {
                                                        mode_lib->vba.TotImmediateFlipBytes =
-                                                                       mode_lib->vba.TotImmediateFlipBytes
+                                                                       (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
                                                                + mode_lib->vba.NoOfDPP[i][j][k]
                                                                * mode_lib->vba.PDEAndMetaPTEBytesPerFrame[i][j][k]
-                                                               + mode_lib->vba.MetaRowBytes[i][j][k];
+                                                               + mode_lib->vba.MetaRowBytes[i][j][k]);
                                                        if (mode_lib->vba.use_one_row_for_frame_flip[i][j][k]) {
                                                                mode_lib->vba.TotImmediateFlipBytes =
-                                                                       mode_lib->vba.TotImmediateFlipBytes + 2
-                                                               * mode_lib->vba.DPTEBytesPerRow[i][j][k];
+                                                                       (unsigned int)(mode_lib->vba.TotImmediateFlipBytes + 2
+                                                               * mode_lib->vba.DPTEBytesPerRow[i][j][k]);
                                                        } else {
                                                                mode_lib->vba.TotImmediateFlipBytes =
-                                                                       mode_lib->vba.TotImmediateFlipBytes
-                                                               + mode_lib->vba.DPTEBytesPerRow[i][j][k];
+                                                                       (unsigned int)(mode_lib->vba.TotImmediateFlipBytes
+                                                               + mode_lib->vba.DPTEBytesPerRow[i][j][k]);
                                                        }
                                                }
                                        }
@@ -3480,7 +3480,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                                                        mode_lib->vba.HostVMEnable,
                                                        mode_lib->vba.HostVMMaxNonCachedPageTableLevels,
                                                        mode_lib->vba.GPUVMEnable,
-                                                       mode_lib->vba.HostVMMinPageSize,
+                                                       (unsigned int)mode_lib->vba.HostVMMinPageSize,
                                                        mode_lib->vba.PDEAndMetaPTEBytesPerFrame[i][j][k],
                                                        mode_lib->vba.MetaRowBytes[i][j][k],
                                                        mode_lib->vba.DPTEBytesPerRow[i][j][k],
@@ -3722,9 +3722,9 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
                mode_lib->vba.DETBufferSizeInKByte[k] =
                        mode_lib->vba.DETBufferSizeInKByteAllStates[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
                mode_lib->vba.DETBufferSizeY[k] =
-                               mode_lib->vba.DETBufferSizeYAllStates[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
+                               (unsigned int)mode_lib->vba.DETBufferSizeYAllStates[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
                mode_lib->vba.DETBufferSizeC[k] =
-                               mode_lib->vba.DETBufferSizeCAllStates[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
+                               (unsigned int)mode_lib->vba.DETBufferSizeCAllStates[mode_lib->vba.VoltageLevel][MaximumMPCCombine][k];
                mode_lib->vba.OutputType[k] = mode_lib->vba.OutputTypePerState[mode_lib->vba.VoltageLevel][k];
                mode_lib->vba.OutputRate[k] = mode_lib->vba.OutputRatePerState[mode_lib->vba.VoltageLevel][k];
        }
index 5e72966a8daf8171f0c68d3b8f3d26aea077d055..b995d7d2f2efbbcc2ed8903ac0ed3c3f3623bcf4 100644 (file)
@@ -62,7 +62,7 @@ unsigned int dml32_dscceComputeDelay(
                pixelsPerClock = 1;
 
        //initial transmit delay as per PPS
-       initalXmitDelay = dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
+       initalXmitDelay = (unsigned int)dml_round(rcModelSize / 2.0 / BPP / pixelsPerClock);
 
        //compute ssm delay
        if (bpc == 8)
@@ -514,8 +514,8 @@ void dml32_CalculateSwathAndDETConfiguration(
                        swath_width_chroma_ub);
 
        for (k = 0; k < NumberOfActiveSurfaces; ++k) {
-               RoundedUpMaxSwathSizeBytesY[k] = swath_width_luma_ub[k] * BytePerPixDETY[k] * MaximumSwathHeightY[k];
-               RoundedUpMaxSwathSizeBytesC[k] = swath_width_chroma_ub[k] * BytePerPixDETC[k] * MaximumSwathHeightC[k];
+               RoundedUpMaxSwathSizeBytesY[k] = (unsigned int)(swath_width_luma_ub[k] * BytePerPixDETY[k] * MaximumSwathHeightY[k]);
+               RoundedUpMaxSwathSizeBytesC[k] = (unsigned int)(swath_width_chroma_ub[k] * BytePerPixDETC[k] * MaximumSwathHeightC[k]);
 #ifdef __DML_VBA_DEBUG__
                dml_print("DML::%s: k=%0d DPPPerSurface = %d\n", __func__, k, DPPPerSurface[k]);
                dml_print("DML::%s: k=%0d swath_width_luma_ub = %d\n", __func__, k, swath_width_luma_ub[k]);
@@ -531,8 +531,8 @@ void dml32_CalculateSwathAndDETConfiguration(
 #endif
 
                if (SourcePixelFormat[k] == dm_420_10) {
-                       RoundedUpMaxSwathSizeBytesY[k] = dml_ceil((unsigned int) RoundedUpMaxSwathSizeBytesY[k], 256);
-                       RoundedUpMaxSwathSizeBytesC[k] = dml_ceil((unsigned int) RoundedUpMaxSwathSizeBytesC[k], 256);
+                       RoundedUpMaxSwathSizeBytesY[k] = (unsigned int)dml_ceil((unsigned int) RoundedUpMaxSwathSizeBytesY[k], 256);
+                       RoundedUpMaxSwathSizeBytesC[k] = (unsigned int)dml_ceil((unsigned int) RoundedUpMaxSwathSizeBytesC[k], 256);
                }
        }
 
@@ -656,7 +656,7 @@ void dml32_CalculateSwathAndDETConfiguration(
 #ifdef __DML_VBA_DEBUG__
                        dml_print("DML::%s: k=%0d 2/3 DET for plane0, 1/3 for plane1\n", __func__, k);
 #endif
-                       DETBufferSizeY[k] = dml_floor(DETBufferSizeInKByte[k] * 1024 * 2 / 3, 1024);
+                       DETBufferSizeY[k] = (unsigned int)dml_floor(DETBufferSizeInKByte[k] * 1024 * 2 / 3, 1024);
                        DETBufferSizeC[k] = DETBufferSizeInKByte[k] * 1024 - DETBufferSizeY[k];
                }
 
@@ -786,14 +786,14 @@ void dml32_CalculateSwathWidth(
                        SwathWidthC[k] = SwathWidthdoubleDPPC[k];
                }
 
-               surface_width_ub_l  = dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
-               surface_height_ub_l = dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
+               surface_width_ub_l  = (unsigned int)dml_ceil(SurfaceWidthY[k], Read256BytesBlockWidthY[k]);
+               surface_height_ub_l = (unsigned int)dml_ceil(SurfaceHeightY[k], Read256BytesBlockHeightY[k]);
 
                if (!IsVertical(SourceRotation[k])) {
                        MaximumSwathHeightY[k] = Read256BytesBlockHeightY[k];
                        MaximumSwathHeightC[k] = Read256BytesBlockHeightC[k];
                        if (ViewportStationary[k] && DPPPerSurface[k] == 1) {
-                               swath_width_luma_ub[k] = dml_min(surface_width_ub_l,
+                               swath_width_luma_ub[k] = (unsigned int)dml_min(surface_width_ub_l,
                                                dml_floor(ViewportXStart[k] +
                                                                SwathWidthY[k] +
                                                                Read256BytesBlockWidthY[k] - 1,
@@ -801,22 +801,22 @@ void dml32_CalculateSwathWidth(
                                                                dml_floor(ViewportXStart[k],
                                                                Read256BytesBlockWidthY[k]));
                        } else {
-                               swath_width_luma_ub[k] = dml_min(surface_width_ub_l,
+                               swath_width_luma_ub[k] = (unsigned int)dml_min(surface_width_ub_l,
                                                dml_ceil(SwathWidthY[k] - 1,
                                                                Read256BytesBlockWidthY[k]) +
                                                                Read256BytesBlockWidthY[k]);
                        }
                        if (BytePerPixC[k] > 0) {
-                               surface_width_ub_c  = dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
+                               surface_width_ub_c  = (unsigned int)dml_ceil(SurfaceWidthC[k], Read256BytesBlockWidthC[k]);
                                if (ViewportStationary[k] && DPPPerSurface[k] == 1) {
-                                       swath_width_chroma_ub[k] = dml_min(surface_width_ub_c,
+                                       swath_width_chroma_ub[k] = (unsigned int)dml_min(surface_width_ub_c,
                                                        dml_floor(ViewportXStartC[k] + SwathWidthC[k] +
                                                                        Read256BytesBlockWidthC[k] - 1,
                                                                        Read256BytesBlockWidthC[k]) -
                                                                        dml_floor(ViewportXStartC[k],
                                                                        Read256BytesBlockWidthC[k]));
                                } else {
-                                       swath_width_chroma_ub[k] = dml_min(surface_width_ub_c,
+                                       swath_width_chroma_ub[k] = (unsigned int)dml_min(surface_width_ub_c,
                                                        dml_ceil(SwathWidthC[k] - 1,
                                                                Read256BytesBlockWidthC[k]) +
                                                                Read256BytesBlockWidthC[k]);
@@ -829,25 +829,25 @@ void dml32_CalculateSwathWidth(
                        MaximumSwathHeightC[k] = Read256BytesBlockWidthC[k];
 
                        if (ViewportStationary[k] && DPPPerSurface[k] == 1) {
-                               swath_width_luma_ub[k] = dml_min(surface_height_ub_l, dml_floor(ViewportYStart[k] +
+                               swath_width_luma_ub[k] = (unsigned int)dml_min(surface_height_ub_l, dml_floor(ViewportYStart[k] +
                                                SwathWidthY[k] + Read256BytesBlockHeightY[k] - 1,
                                                Read256BytesBlockHeightY[k]) -
                                                dml_floor(ViewportYStart[k], Read256BytesBlockHeightY[k]));
                        } else {
-                               swath_width_luma_ub[k] = dml_min(surface_height_ub_l, dml_ceil(SwathWidthY[k] - 1,
+                               swath_width_luma_ub[k] = (unsigned int)dml_min(surface_height_ub_l, dml_ceil(SwathWidthY[k] - 1,
                                                Read256BytesBlockHeightY[k]) + Read256BytesBlockHeightY[k]);
                        }
                        if (BytePerPixC[k] > 0) {
-                               surface_height_ub_c = dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
+                               surface_height_ub_c = (unsigned int)dml_ceil(SurfaceHeightC[k], Read256BytesBlockHeightC[k]);
                                if (ViewportStationary[k] && DPPPerSurface[k] == 1) {
-                                       swath_width_chroma_ub[k] = dml_min(surface_height_ub_c,
+                                       swath_width_chroma_ub[k] = (unsigned int)dml_min(surface_height_ub_c,
                                                        dml_floor(ViewportYStartC[k] + SwathWidthC[k] +
                                                                        Read256BytesBlockHeightC[k] - 1,
                                                                        Read256BytesBlockHeightC[k]) -
                                                                        dml_floor(ViewportYStartC[k],
                                                                                        Read256BytesBlockHeightC[k]));
                                } else {
-                                       swath_width_chroma_ub[k] = dml_min(surface_height_ub_c,
+                                       swath_width_chroma_ub[k] = (unsigned int)dml_min(surface_height_ub_c,
                                                        dml_ceil(SwathWidthC[k] - 1, Read256BytesBlockHeightC[k]) +
                                                        Read256BytesBlockHeightC[k]);
                                }
@@ -956,7 +956,7 @@ void dml32_CalculateDETBufferSize(
                if (DETSizeOverride[0] > 0) {
                        DETBufferSizeInKByte[0] = DETSizeOverride[0];
                } else {
-                       DETBufferSizeInKByte[0] = dml_max(nomDETInKByte, dml_ceil(2.0 *
+                       DETBufferSizeInKByte[0] = (unsigned int)dml_max((unsigned int)nomDETInKByte, dml_ceil(2.0 *
                                        ((double) RoundedUpMaxSwathSizeBytesY[0] +
                                                        (double) RoundedUpMaxSwathSizeBytesC[0]) / 1024.0, 64.0));
                }
@@ -993,7 +993,7 @@ void dml32_CalculateDETBufferSize(
 #endif
 
                        if (minDET_pipe == 0) {
-                               minDET_pipe = dml_max(128, dml_ceil(((double)RoundedUpMaxSwathSizeBytesY[k] +
+                               minDET_pipe = (unsigned int)dml_max(128, dml_ceil(((double)RoundedUpMaxSwathSizeBytesY[k] +
                                                (double)RoundedUpMaxSwathSizeBytesC[k]) / 1024.0, 64));
 #ifdef __DML_VBA_DEBUG__
                                dml_print("DML::%s: k=%0d minDET_pipe = %d (assume each plane take half DET)\n",
@@ -1106,7 +1106,7 @@ void dml32_CalculateDETBufferSize(
                                //dml_print("DML::%s: j=%d, tmp1 = %f\n", __func__, j, tmp1);
                                //dml_print("DML::%s: j=%d, tmp2 = %f\n", __func__, j, tmp2);
 
-                               NextDETBufferPieceInKByte = dml_min(
+                               NextDETBufferPieceInKByte = (unsigned int)dml_min(
                                        dml_round((double) DETBufferSizePoolInKByte *
                                                (ReadBandwidthLuma[NextSurfaceToAssignDETPiece] +
                                                ReadBandwidthChroma[NextSurfaceToAssignDETPiece]) /
@@ -1379,7 +1379,7 @@ void dml32_CalculateOutputLink(
                        *RequiresFEC = false;
                        *OutBpp = dml32_TruncToValidBPP(dml_min(600, PHYCLKPerState) * 10, 3, HTotal, HActive,
                                        PixelClockBackEnd, ForcedOutputLinkBPP, false, Output, OutputFormat,
-                                       DSCInputBitPerComponent, NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                       DSCInputBitPerComponent, NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                        ODMModeNoDSC, ODMModeDSC, &dummy);
                        //OutputTypeAndRate = "HDMI";
                        *OutputType = dm_output_type_hdmi;
@@ -1407,7 +1407,7 @@ void dml32_CalculateOutputLink(
                                        *OutBpp = dml32_TruncToValidBPP((1 - Downspreading / 100) * 10000,
                                                        OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                        ForcedOutputLinkBPP, LinkDSCEnable, Output, OutputFormat,
-                                                       DSCInputBitPerComponent, NumberOfDSCSlices, AudioSampleRate,
+                                                       DSCInputBitPerComponent, NumberOfDSCSlices, (unsigned int)AudioSampleRate,
                                                        AudioSampleLayout, ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        if (*OutBpp == 0 && PHYCLKD32PerState < 13500.0 / 32 && DSCEnable == true &&
                                                        ForcedOutputLinkBPP == 0) {
@@ -1417,7 +1417,7 @@ void dml32_CalculateOutputLink(
                                                                OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                                ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                                OutputFormat, DSCInputBitPerComponent,
-                                                               NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                                               NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                                                ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        }
                                        //OutputTypeAndRate = Output & " UHBR10";
@@ -1429,7 +1429,7 @@ void dml32_CalculateOutputLink(
                                        *OutBpp = dml32_TruncToValidBPP((1 - Downspreading / 100) * 13500,
                                                        OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                        ForcedOutputLinkBPP, LinkDSCEnable, Output, OutputFormat,
-                                                       DSCInputBitPerComponent, NumberOfDSCSlices, AudioSampleRate,
+                                                       DSCInputBitPerComponent, NumberOfDSCSlices, (unsigned int)AudioSampleRate,
                                                        AudioSampleLayout, ODMModeNoDSC, ODMModeDSC, RequiredSlots);
 
                                        if (*OutBpp == 0 && PHYCLKD32PerState < 20000 / 32 && DSCEnable == true &&
@@ -1440,7 +1440,7 @@ void dml32_CalculateOutputLink(
                                                                OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                                ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                                OutputFormat, DSCInputBitPerComponent,
-                                                               NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                                               NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                                                ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        }
                                        //OutputTypeAndRate = Output & " UHBR13p5";
@@ -1452,7 +1452,7 @@ void dml32_CalculateOutputLink(
                                        *OutBpp = dml32_TruncToValidBPP((1 - Downspreading / 100) * 20000,
                                                        OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                        ForcedOutputLinkBPP, LinkDSCEnable, Output, OutputFormat,
-                                                       DSCInputBitPerComponent, NumberOfDSCSlices, AudioSampleRate,
+                                                       DSCInputBitPerComponent, NumberOfDSCSlices, (unsigned int)AudioSampleRate,
                                                        AudioSampleLayout, ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        if (*OutBpp == 0 && DSCEnable == true && ForcedOutputLinkBPP == 0) {
                                                *RequiresDSC = true;
@@ -1461,7 +1461,7 @@ void dml32_CalculateOutputLink(
                                                                OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                                ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                                OutputFormat, DSCInputBitPerComponent,
-                                                               NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                                               NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                                                ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        }
                                        //OutputTypeAndRate = Output & " UHBR20";
@@ -1475,7 +1475,7 @@ void dml32_CalculateOutputLink(
                                        *OutBpp = dml32_TruncToValidBPP((1 - Downspreading / 100) * 2700,
                                                        OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                        ForcedOutputLinkBPP, LinkDSCEnable, Output, OutputFormat,
-                                                       DSCInputBitPerComponent, NumberOfDSCSlices, AudioSampleRate,
+                                                       DSCInputBitPerComponent, NumberOfDSCSlices, (unsigned int)AudioSampleRate,
                                                        AudioSampleLayout, ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        if (*OutBpp == 0 && PHYCLKPerState < 540 && DSCEnable == true &&
                                                        ForcedOutputLinkBPP == 0) {
@@ -1487,7 +1487,7 @@ void dml32_CalculateOutputLink(
                                                                OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                                ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                                OutputFormat, DSCInputBitPerComponent,
-                                                               NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                                               NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                                                ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        }
                                        //OutputTypeAndRate = Output & " HBR";
@@ -1499,7 +1499,7 @@ void dml32_CalculateOutputLink(
                                        *OutBpp = dml32_TruncToValidBPP((1 - Downspreading / 100) * 5400,
                                                        OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                        ForcedOutputLinkBPP, LinkDSCEnable, Output, OutputFormat,
-                                                       DSCInputBitPerComponent, NumberOfDSCSlices, AudioSampleRate,
+                                                       DSCInputBitPerComponent, NumberOfDSCSlices, (unsigned int)AudioSampleRate,
                                                        AudioSampleLayout, ODMModeNoDSC, ODMModeDSC, RequiredSlots);
 
                                        if (*OutBpp == 0 && PHYCLKPerState < 810 && DSCEnable == true &&
@@ -1513,7 +1513,7 @@ void dml32_CalculateOutputLink(
                                                                OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                                ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                                OutputFormat, DSCInputBitPerComponent,
-                                                               NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                                               NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                                                ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        }
                                        //OutputTypeAndRate = Output & " HBR2";
@@ -1525,7 +1525,7 @@ void dml32_CalculateOutputLink(
                                                        OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                        ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                        OutputFormat, DSCInputBitPerComponent, NumberOfDSCSlices,
-                                                       AudioSampleRate, AudioSampleLayout, ODMModeNoDSC, ODMModeDSC,
+                                                       (unsigned int)AudioSampleRate, AudioSampleLayout, ODMModeNoDSC, ODMModeDSC,
                                                        RequiredSlots);
 
                                        if (*OutBpp == 0 && DSCEnable == true && ForcedOutputLinkBPP == 0) {
@@ -1538,7 +1538,7 @@ void dml32_CalculateOutputLink(
                                                                OutputLinkDPLanes, HTotal, HActive, PixelClockBackEnd,
                                                                ForcedOutputLinkBPP, LinkDSCEnable, Output,
                                                                OutputFormat, DSCInputBitPerComponent,
-                                                               NumberOfDSCSlices, AudioSampleRate, AudioSampleLayout,
+                                                               NumberOfDSCSlices, (unsigned int)AudioSampleRate, AudioSampleLayout,
                                                                ODMModeNoDSC, ODMModeDSC, RequiredSlots);
                                        }
                                        //OutputTypeAndRate = Output & " HBR3";
@@ -1654,7 +1654,7 @@ double dml32_TruncToValidBPP(
                        MaxLinkBPP = 2 * MaxLinkBPP;
        }
 
-       *RequiredSlots = dml_ceil(DesiredBPP / MaxLinkBPP * 64, 1);
+       *RequiredSlots = (unsigned int)dml_ceil(DesiredBPP / MaxLinkBPP * 64, 1);
 
        if (DesiredBPP == 0) {
                if (DSCEnable) {
@@ -1734,22 +1734,22 @@ unsigned int dml32_DSCDelayRequirement(bool DSCEnabled,
        if (DSCEnabled == true && OutputBpp != 0) {
                if (ODMMode == dm_odm_combine_mode_4to1) {
                        DSCDelayRequirement_val = 4 * (dml32_dscceComputeDelay(DSCInputBitPerComponent, OutputBpp,
-                                       dml_ceil(HActive / NumberOfDSCSlices, 1), NumberOfDSCSlices / 4,
+                                       (unsigned int)dml_ceil(HActive / NumberOfDSCSlices, 1), (unsigned int)(NumberOfDSCSlices / 4),
                                        OutputFormat, Output) + dml32_dscComputeDelay(OutputFormat, Output));
                } else if (ODMMode == dm_odm_combine_mode_2to1) {
                        DSCDelayRequirement_val = 2 * (dml32_dscceComputeDelay(DSCInputBitPerComponent, OutputBpp,
-                                       dml_ceil(HActive / NumberOfDSCSlices, 1), NumberOfDSCSlices / 2,
+                                       (unsigned int)dml_ceil(HActive / NumberOfDSCSlices, 1), (unsigned int)(NumberOfDSCSlices / 2),
                                        OutputFormat, Output) + dml32_dscComputeDelay(OutputFormat, Output));
                } else {
                        DSCDelayRequirement_val = dml32_dscceComputeDelay(DSCInputBitPerComponent, OutputBpp,
-                                       dml_ceil(HActive / NumberOfDSCSlices, 1), NumberOfDSCSlices,
+                                       (unsigned int)dml_ceil(HActive / NumberOfDSCSlices, 1), (unsigned int)NumberOfDSCSlices,
                                        OutputFormat, Output) + dml32_dscComputeDelay(OutputFormat, Output);
                }
 
-               DSCDelayRequirement_val = DSCDelayRequirement_val + (HTotal - HActive) *
-                               dml_ceil((double)DSCDelayRequirement_val / HActive, 1);
+               DSCDelayRequirement_val = (unsigned int)(DSCDelayRequirement_val + (HTotal - HActive) *
+                               dml_ceil((double)DSCDelayRequirement_val / HActive, 1));
 
-               DSCDelayRequirement_val = DSCDelayRequirement_val * PixelClock / PixelClockBackEnd;
+               DSCDelayRequirement_val = (unsigned int)(DSCDelayRequirement_val * PixelClock / PixelClockBackEnd);
 
        } else {
                DSCDelayRequirement_val = 0;
@@ -1765,7 +1765,7 @@ unsigned int dml32_DSCDelayRequirement(bool DSCEnabled,
        dml_print("DML::%s: DSCDelayRequirement_val = %d\n", __func__, DSCDelayRequirement_val);
 #endif
 
-       return dml_ceil(DSCDelayRequirement_val * dsc_delay_factor_wa, 1);
+       return (unsigned int)dml_ceil(DSCDelayRequirement_val * dsc_delay_factor_wa, 1);
 }
 
 void dml32_CalculateSurfaceSizeInMall(
@@ -1811,16 +1811,16 @@ void dml32_CalculateSurfaceSizeInMall(
 
        for (k = 0; k < NumberOfActiveSurfaces; ++k) {
                if (ViewportStationary[k]) {
-                       SurfaceSizeInMALL[k] = dml_min(dml_ceil(SurfaceWidthY[k], ReadBlockWidthY[k]),
+                       SurfaceSizeInMALL[k] = (unsigned int)(dml_min(dml_ceil(SurfaceWidthY[k], ReadBlockWidthY[k]),
                                        dml_floor(ViewportXStartY[k] + ViewportWidthY[k] + ReadBlockWidthY[k] - 1,
                                                ReadBlockWidthY[k]) - dml_floor(ViewportXStartY[k],
                                                ReadBlockWidthY[k])) * dml_min(dml_ceil(SurfaceHeightY[k],
                                                ReadBlockHeightY[k]), dml_floor(ViewportYStartY[k] +
                                                ViewportHeightY[k] + ReadBlockHeightY[k] - 1, ReadBlockHeightY[k]) -
-                                               dml_floor(ViewportYStartY[k], ReadBlockHeightY[k])) * BytesPerPixelY[k];
+                                               dml_floor(ViewportYStartY[k], ReadBlockHeightY[k])) * BytesPerPixelY[k]);
 
                        if (ReadBlockWidthC[k] > 0) {
-                               SurfaceSizeInMALL[k] = SurfaceSizeInMALL[k] +
+                               SurfaceSizeInMALL[k] = (unsigned int)(SurfaceSizeInMALL[k] +
                                                dml_min(dml_ceil(SurfaceWidthC[k], ReadBlockWidthC[k]),
                                                        dml_floor(ViewportXStartC[k] + ViewportWidthC[k] +
                                                        ReadBlockWidthC[k] - 1, ReadBlockWidthC[k]) -
@@ -1829,10 +1829,10 @@ void dml32_CalculateSurfaceSizeInMall(
                                                        dml_floor(ViewportYStartC[k] + ViewportHeightC[k] +
                                                        ReadBlockHeightC[k] - 1, ReadBlockHeightC[k]) -
                                                        dml_floor(ViewportYStartC[k], ReadBlockHeightC[k])) *
-                                                       BytesPerPixelC[k];
+                                                       BytesPerPixelC[k]);
                        }
                        if (DCCEnable[k] == true) {
-                               SurfaceSizeInMALL[k] = SurfaceSizeInMALL[k] +
+                               SurfaceSizeInMALL[k] = (unsigned int)(SurfaceSizeInMALL[k] +
                                                (dml_min(dml_ceil(DCCMetaPitchY[k], 8 * Read256BytesBlockWidthY[k]),
                                                        dml_floor(ViewportXStartY[k] + ViewportWidthY[k] + 8 *
                                                        Read256BytesBlockWidthY[k] - 1, 8 * Read256BytesBlockWidthY[k])
@@ -1841,9 +1841,9 @@ void dml32_CalculateSurfaceSizeInMall(
                                                        Read256BytesBlockHeightY[k]), dml_floor(ViewportYStartY[k] +
                                                        ViewportHeightY[k] + 8 * Read256BytesBlockHeightY[k] - 1, 8 *
                                                        Read256BytesBlockHeightY[k]) - dml_floor(ViewportYStartY[k], 8 *
-                                                       Read256BytesBlockHeightY[k])) * BytesPerPixelY[k] / 256) + (64 * 1024);
+                                                       Read256BytesBlockHeightY[k])) *BytesPerPixelY[k] / 256) + (64 * 1024));
                                if (Read256BytesBlockWidthC[k] > 0) {
-                                       SurfaceSizeInMALL[k] = SurfaceSizeInMALL[k] +
+                                       SurfaceSizeInMALL[k] = (unsigned int)(SurfaceSizeInMALL[k] +
                                                        dml_min(dml_ceil(DCCMetaPitchC[k], 8 *
                                                                Read256BytesBlockWidthC[k]),
                                                                dml_floor(ViewportXStartC[k] + ViewportWidthC[k] + 8
@@ -1858,41 +1858,41 @@ void dml32_CalculateSurfaceSizeInMall(
                                                                Read256BytesBlockHeightC[k]) -
                                                                dml_floor(ViewportYStartC[k], 8 *
                                                                Read256BytesBlockHeightC[k])) *
-                                                               BytesPerPixelC[k] / 256;
+                                                               BytesPerPixelC[k] / 256);
                                }
                        }
                } else {
-                       SurfaceSizeInMALL[k] = dml_ceil(dml_min(SurfaceWidthY[k], ViewportWidthY[k] +
+                       SurfaceSizeInMALL[k] = (unsigned int)(dml_ceil(dml_min(SurfaceWidthY[k], ViewportWidthY[k] +
                                        ReadBlockWidthY[k] - 1), ReadBlockWidthY[k]) *
                                        dml_ceil(dml_min(SurfaceHeightY[k], ViewportHeightY[k] +
                                                        ReadBlockHeightY[k] - 1), ReadBlockHeightY[k]) *
-                                                       BytesPerPixelY[k];
+                                                       BytesPerPixelY[k]);
                        if (ReadBlockWidthC[k] > 0) {
-                               SurfaceSizeInMALL[k] = SurfaceSizeInMALL[k] +
+                               SurfaceSizeInMALL[k] = (unsigned int)(SurfaceSizeInMALL[k] +
                                                dml_ceil(dml_min(SurfaceWidthC[k], ViewportWidthC[k] +
                                                                ReadBlockWidthC[k] - 1), ReadBlockWidthC[k]) *
                                                dml_ceil(dml_min(SurfaceHeightC[k], ViewportHeightC[k] +
                                                                ReadBlockHeightC[k] - 1), ReadBlockHeightC[k]) *
-                                                               BytesPerPixelC[k];
+                                                               BytesPerPixelC[k]);
                        }
                        if (DCCEnable[k] == true) {
-                               SurfaceSizeInMALL[k] = SurfaceSizeInMALL[k] +
+                               SurfaceSizeInMALL[k] = (unsigned int)(SurfaceSizeInMALL[k] +
                                                (dml_ceil(dml_min(DCCMetaPitchY[k], ViewportWidthY[k] + 8 *
                                                                Read256BytesBlockWidthY[k] - 1), 8 *
                                                                Read256BytesBlockWidthY[k]) *
                                                dml_ceil(dml_min(SurfaceHeightY[k], ViewportHeightY[k] + 8 *
                                                                Read256BytesBlockHeightY[k] - 1), 8 *
-                                                               Read256BytesBlockHeightY[k]) * BytesPerPixelY[k] / 256) + (64 * 1024);
+                                                               Read256BytesBlockHeightY[k]) * BytesPerPixelY[k] / 256) + (64 * 1024));
 
                                if (Read256BytesBlockWidthC[k] > 0) {
-                                       SurfaceSizeInMALL[k] = SurfaceSizeInMALL[k] +
+                                       SurfaceSizeInMALL[k] = (unsigned int)(SurfaceSizeInMALL[k] +
                                                        dml_ceil(dml_min(DCCMetaPitchC[k], ViewportWidthC[k] + 8 *
                                                                        Read256BytesBlockWidthC[k] - 1), 8 *
                                                                        Read256BytesBlockWidthC[k]) *
                                                        dml_ceil(dml_min(SurfaceHeightC[k], ViewportHeightC[k] + 8 *
                                                                        Read256BytesBlockHeightC[k] - 1), 8 *
                                                                        Read256BytesBlockHeightC[k]) *
-                                                                       BytesPerPixelC[k] / 256;
+                                                                       BytesPerPixelC[k] / 256);
                                }
                        }
                }
@@ -2321,51 +2321,51 @@ unsigned int dml32_CalculateVMAndRowBytes(
                if (HostVMMinPageSize < 2048)
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576)
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                else
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
        }
 
        *MetaRequestHeight = 8 * BlockHeight256Bytes;
        *MetaRequestWidth = 8 * BlockWidth256Bytes;
        if (SurfaceTiling == dm_sw_linear) {
                *meta_row_height = 32;
-               *meta_row_width = dml_floor(ViewportXStart + SwathWidth + *MetaRequestWidth - 1, *MetaRequestWidth)
-                               - dml_floor(ViewportXStart, *MetaRequestWidth);
+               *meta_row_width = (unsigned int)(dml_floor(ViewportXStart + SwathWidth + *MetaRequestWidth - 1, *MetaRequestWidth)
+                               - dml_floor(ViewportXStart, *MetaRequestWidth));
        } else if (!IsVertical(SourceRotation)) {
                *meta_row_height = *MetaRequestHeight;
                if (ViewportStationary && NumberOfDPPs == 1) {
-                       *meta_row_width = dml_floor(ViewportXStart + SwathWidth + *MetaRequestWidth - 1,
-                                       *MetaRequestWidth) - dml_floor(ViewportXStart, *MetaRequestWidth);
+                       *meta_row_width = (unsigned int)(dml_floor(ViewportXStart + SwathWidth + *MetaRequestWidth - 1,
+                                       *MetaRequestWidth) - dml_floor(ViewportXStart, *MetaRequestWidth));
                } else {
-                       *meta_row_width = dml_ceil(SwathWidth - 1, *MetaRequestWidth) + *MetaRequestWidth;
+                       *meta_row_width = (unsigned int)(dml_ceil(SwathWidth - 1, *MetaRequestWidth) + *MetaRequestWidth);
                }
-               *MetaRowByte = *meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0;
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestHeight * BytePerPixel / 256.0);
        } else {
                *meta_row_height = *MetaRequestWidth;
                if (ViewportStationary && NumberOfDPPs == 1) {
-                       *meta_row_width = dml_floor(ViewportYStart + ViewportHeight + *MetaRequestHeight - 1,
-                                       *MetaRequestHeight) - dml_floor(ViewportYStart, *MetaRequestHeight);
+                       *meta_row_width = (unsigned int)(dml_floor(ViewportYStart + ViewportHeight + *MetaRequestHeight - 1,
+                                       *MetaRequestHeight) - dml_floor(ViewportYStart, *MetaRequestHeight));
                } else {
-                       *meta_row_width = dml_ceil(SwathWidth - 1, *MetaRequestHeight) + *MetaRequestHeight;
+                       *meta_row_width = (unsigned int)(dml_ceil(SwathWidth - 1, *MetaRequestHeight) + *MetaRequestHeight);
                }
-               *MetaRowByte = *meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0;
+               *MetaRowByte = (unsigned int)(*meta_row_width * *MetaRequestWidth * BytePerPixel / 256.0);
        }
 
        if (ViewportStationary && (NumberOfDPPs == 1 || !IsVertical(SourceRotation))) {
-               vp_height_meta_ub = dml_floor(ViewportYStart + ViewportHeight + 64 * BlockHeight256Bytes - 1,
-                               64 * BlockHeight256Bytes) - dml_floor(ViewportYStart, 64 * BlockHeight256Bytes);
+               vp_height_meta_ub = (unsigned int)(dml_floor(ViewportYStart + ViewportHeight + 64 * BlockHeight256Bytes - 1,
+                               64 * BlockHeight256Bytes) - dml_floor(ViewportYStart, 64 * BlockHeight256Bytes));
        } else if (!IsVertical(SourceRotation)) {
-               vp_height_meta_ub = dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes;
+               vp_height_meta_ub = (unsigned int)(dml_ceil(ViewportHeight - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes);
        } else {
-               vp_height_meta_ub = dml_ceil(SwathWidth - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes;
+               vp_height_meta_ub = (unsigned int)(dml_ceil(SwathWidth - 1, 64 * BlockHeight256Bytes) + 64 * BlockHeight256Bytes);
        }
 
-       DCCMetaSurfaceBytes = DCCMetaPitch * vp_height_meta_ub * BytePerPixel / 256.0;
+       DCCMetaSurfaceBytes = (unsigned int)(DCCMetaPitch * vp_height_meta_ub * BytePerPixel / 256.0);
 
        if (GPUVMEnable == true) {
-               *MetaPTEBytesFrame = (dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) /
-                               (8 * 4.0 * 1024), 1) + 1) * 64;
+               *MetaPTEBytesFrame = (unsigned int)((dml_ceil((double) (DCCMetaSurfaceBytes - 4.0 * 1024.0) /
+                               (8 * 4.0 * 1024), 1) + 1) * 64);
                MPDEBytesFrame = 128 * (GPUVMMaxPageTableLevels - 1);
        } else {
                *MetaPTEBytesFrame = 0;
@@ -2382,16 +2382,16 @@ unsigned int dml32_CalculateVMAndRowBytes(
 
        if (GPUVMEnable == true && GPUVMMaxPageTableLevels > 1) {
                if (ViewportStationary && (NumberOfDPPs == 1 || !IsVertical(SourceRotation))) {
-                       vp_height_dpte_ub = dml_floor(ViewportYStart + ViewportHeight +
+                       vp_height_dpte_ub = (unsigned int)(dml_floor(ViewportYStart + ViewportHeight +
                                        MacroTileHeight - 1, MacroTileHeight) -
-                                       dml_floor(ViewportYStart, MacroTileHeight);
+                                       dml_floor(ViewportYStart, MacroTileHeight));
                } else if (!IsVertical(SourceRotation)) {
-                       vp_height_dpte_ub = dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight;
+                       vp_height_dpte_ub = (unsigned int)dml_ceil(ViewportHeight - 1, MacroTileHeight) + MacroTileHeight;
                } else {
-                       vp_height_dpte_ub = dml_ceil(SwathWidth - 1, MacroTileHeight) + MacroTileHeight;
+                       vp_height_dpte_ub = (unsigned int)dml_ceil(SwathWidth - 1, MacroTileHeight) + MacroTileHeight;
                }
-               *DPDE0BytesFrame = 64 * (dml_ceil((Pitch * vp_height_dpte_ub * BytePerPixel - MacroTileSizeBytes) /
-                               (8 * 2097152), 1) + 1);
+               *DPDE0BytesFrame = (unsigned int)(64 * (dml_ceil((Pitch * vp_height_dpte_ub * BytePerPixel - MacroTileSizeBytes) /
+                               (8 * 2097152), 1) + 1));
                ExtraDPDEBytesFrame = 128 * (GPUVMMaxPageTableLevels - 2);
        } else {
                *DPDE0BytesFrame = 0;
@@ -2449,14 +2449,14 @@ unsigned int dml32_CalculateVMAndRowBytes(
 #endif
 
        *dpte_row_height_one_row_per_frame = vp_height_dpte_ub;
-       *dpte_row_width_ub_one_row_per_frame = (dml_ceil(((double)Pitch * (double)*dpte_row_height_one_row_per_frame /
+       *dpte_row_width_ub_one_row_per_frame = (unsigned int)((dml_ceil(((double)Pitch * (double)*dpte_row_height_one_row_per_frame /
                        (double) *PixelPTEReqHeight - 1) / (double) *PixelPTEReqWidth, 1) + 1) *
-                                       (double) *PixelPTEReqWidth;
+                                       (double) *PixelPTEReqWidth);
        *PixelPTEBytesPerRow_one_row_per_frame = *dpte_row_width_ub_one_row_per_frame / *PixelPTEReqWidth *
                        *PTERequestSize;
 
        if (SurfaceTiling == dm_sw_linear) {
-               *dpte_row_height = dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests *
+               *dpte_row_height = (unsigned int)dml_min(128, 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests *
                                *PixelPTEReqWidth / Pitch), 1));
 #ifdef __DML_VBA_DEBUG__
                dml_print("DML::%s: dpte_row_height = %d (1)\n", __func__,
@@ -2470,9 +2470,9 @@ unsigned int dml32_CalculateVMAndRowBytes(
                                                *PixelPTEReqWidth / Pitch), 1));
                dml_print("DML::%s: dpte_row_height = %d\n", __func__, *dpte_row_height);
 #endif
-               *dpte_row_width_ub = dml_ceil(((double) Pitch * (double) *dpte_row_height - 1),
+               *dpte_row_width_ub = (unsigned int)dml_ceil(((double) Pitch * (double) *dpte_row_height - 1),
                                (double) *PixelPTEReqWidth) + *PixelPTEReqWidth;
-               *PixelPTEBytesPerRow = *dpte_row_width_ub / (double)*PixelPTEReqWidth * (double)*PTERequestSize;
+               *PixelPTEBytesPerRow = (unsigned int)(*dpte_row_width_ub / (double)*PixelPTEReqWidth * (double)*PTERequestSize);
 
                // VBA_DELTA, VBA doesn't have programming value for pte row height linear.
                *dpte_row_height_linear = 1 << (unsigned int) dml_floor(dml_log2(PTEBufferSizeInRequests *
@@ -2484,27 +2484,27 @@ unsigned int dml32_CalculateVMAndRowBytes(
                *dpte_row_height = *PixelPTEReqHeight;
 
                if (GPUVMMinPageSizeKBytes > 64) {
-                       *dpte_row_width_ub = (dml_ceil((Pitch * *dpte_row_height / *PixelPTEReqHeight - 1) /
-                                       *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth;
+                       *dpte_row_width_ub = (unsigned int)((dml_ceil((Pitch * *dpte_row_height / *PixelPTEReqHeight - 1) /
+                                       *PixelPTEReqWidth, 1) + 1) * *PixelPTEReqWidth);
                } else if (ViewportStationary && (NumberOfDPPs == 1)) {
-                       *dpte_row_width_ub = dml_floor(ViewportXStart + SwathWidth +
+                       *dpte_row_width_ub = (unsigned int)(dml_floor(ViewportXStart + SwathWidth +
                                        *PixelPTEReqWidth - 1, *PixelPTEReqWidth) -
-                                       dml_floor(ViewportXStart, *PixelPTEReqWidth);
+                                       dml_floor(ViewportXStart, *PixelPTEReqWidth));
                } else {
-                       *dpte_row_width_ub = (dml_ceil((SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) *
-                                       *PixelPTEReqWidth;
+                       *dpte_row_width_ub = (unsigned int)((dml_ceil((SwathWidth - 1) / *PixelPTEReqWidth, 1) + 1) *
+                                       *PixelPTEReqWidth);
                }
 
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqWidth * *PTERequestSize;
        } else {
-               *dpte_row_height = dml_min(*PixelPTEReqWidth, MacroTileWidth);
+               *dpte_row_height = (unsigned int)dml_min(*PixelPTEReqWidth, MacroTileWidth);
 
                if (ViewportStationary && (NumberOfDPPs == 1)) {
-                       *dpte_row_width_ub = dml_floor(ViewportYStart + ViewportHeight + *PixelPTEReqHeight - 1,
-                                       *PixelPTEReqHeight) - dml_floor(ViewportYStart, *PixelPTEReqHeight);
+                       *dpte_row_width_ub = (unsigned int)(dml_floor(ViewportYStart + ViewportHeight + *PixelPTEReqHeight - 1,
+                                       *PixelPTEReqHeight) - dml_floor(ViewportYStart, *PixelPTEReqHeight));
                } else {
-                       *dpte_row_width_ub = (dml_ceil((SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1)
-                                       * *PixelPTEReqHeight;
+                       *dpte_row_width_ub = (unsigned int)((dml_ceil((SwathWidth - 1) / *PixelPTEReqHeight, 1) + 1)
+                                       * *PixelPTEReqHeight);
                }
 
                *PixelPTEBytesPerRow = *dpte_row_width_ub / *PixelPTEReqHeight * *PTERequestSize;
@@ -2584,16 +2584,16 @@ double dml32_CalculatePrefetchSourceLines(
                }
                sw0_tmp = SwathHeight - (vp_start_rot % SwathHeight);
                if (sw0_tmp < *VInitPreFill)
-                       *MaxNumSwath = dml_ceil((*VInitPreFill - sw0_tmp) / SwathHeight, 1) + 1;
+                       *MaxNumSwath = (unsigned int)dml_ceil((*VInitPreFill - sw0_tmp) / SwathHeight, 1) + 1;
                else
                        *MaxNumSwath = 1;
-               MaxPartialSwath = dml_max(1, (unsigned int) (vp_start_rot + *VInitPreFill - 1) % SwathHeight);
+               MaxPartialSwath = (unsigned int)dml_max(1, (unsigned int) (vp_start_rot + *VInitPreFill - 1) % SwathHeight);
        } else {
-               *MaxNumSwath = dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1;
+               *MaxNumSwath = (unsigned int)dml_ceil((*VInitPreFill - 1.0) / SwathHeight, 1) + 1;
                if (*VInitPreFill > 1)
-                       MaxPartialSwath = dml_max(1, (unsigned int) (*VInitPreFill - 2) % SwathHeight);
+                       MaxPartialSwath = (unsigned int)dml_max(1, (unsigned int) (*VInitPreFill - 2) % SwathHeight);
                else
-                       MaxPartialSwath = dml_max(1, (unsigned int) (*VInitPreFill + SwathHeight - 2) % SwathHeight);
+                       MaxPartialSwath = (unsigned int)dml_max(1, (unsigned int) (*VInitPreFill + SwathHeight - 2) % SwathHeight);
        }
        numLines = *MaxNumSwath * SwathHeight + MaxPartialSwath;
 
@@ -3180,9 +3180,9 @@ unsigned int dml32_CalculateExtraLatencyBytes(unsigned int ReorderingBytes,
                if (HostVMMinPageSize < 2048)
                        HostVMDynamicLevels = HostVMMaxNonCachedPageTableLevels;
                else if (HostVMMinPageSize >= 2048 && HostVMMinPageSize < 1048576)
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 1);
                else
-                       HostVMDynamicLevels = dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
+                       HostVMDynamicLevels = (unsigned int)dml_max(0, (int) HostVMMaxNonCachedPageTableLevels - 2);
        } else {
                HostVMDynamicLevels = 0;
        }
@@ -3196,7 +3196,7 @@ unsigned int dml32_CalculateExtraLatencyBytes(unsigned int ReorderingBytes,
                                        (1 + 8 * HostVMDynamicLevels) * HostVMInefficiencyFactor;
                }
        }
-       return ret;
+       return (unsigned int)ret;
 }
 
 void dml32_CalculateVUpdateAndDynamicMetadataParameters(
@@ -3228,7 +3228,7 @@ void dml32_CalculateVUpdateAndDynamicMetadataParameters(
                        dml_ceil((14.0 / DCFClkDeepSleep + 12.0 / Dppclk + TotalRepeaterDelayTime) * PixelClock, 1.0);
        *VReadyOffsetPix  = dml_ceil(dml_max(150.0 / Dppclk,
                        TotalRepeaterDelayTime + 20.0 / DCFClkDeepSleep + 10.0 / Dppclk) * PixelClock, 1.0);
-       *VUpdateOffsetPix = dml_ceil(HTotal / 4.0, 1.0);
+       *VUpdateOffsetPix = (unsigned int)dml_ceil(HTotal / 4.0, 1.0);
        *TSetup = (*VUpdateOffsetPix + *VUpdateWidthPix + *VReadyOffsetPix) / PixelClock;
        *Tdmbf = DynamicMetadataTransmittedBytes / 4.0 / Dispclk;
        *Tdmec = HTotal / PixelClock;
@@ -3491,7 +3491,7 @@ bool dml32_CalculatePrefetchSchedule(
        double  prefetch_sw_bytes;
        double  bytes_pp;
        double  dep_bytes;
-       unsigned int max_vratio_pre = v->MaxVRatioPre;
+       unsigned int max_vratio_pre = (unsigned int)v->MaxVRatioPre;
        double  min_Lsw;
        double  Tsw_est1 = 0;
        double  Tsw_est3 = 0;
@@ -3567,13 +3567,13 @@ bool dml32_CalculatePrefetchSchedule(
                        v->GPUVMEnable == true ? TWait + Tvm_trips : 0);
 
        if (myPipe->ScalerEnabled)
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCL;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCL);
        else
-               DPPCycles = DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCLLBOnly;
+               DPPCycles = (unsigned int)(DPPCLKDelaySubtotalPlusCNVCFormater + v->DPPCLKDelaySCLLBOnly);
 
-       DPPCycles = DPPCycles + myPipe->NumberOfCursors * v->DPPCLKDelayCNVCCursor;
+       DPPCycles = (unsigned int)(DPPCycles + myPipe->NumberOfCursors * v->DPPCLKDelayCNVCCursor);
 
-       DISPCLKCycles = v->DISPCLKDelaySubtotal;
+       DISPCLKCycles = (unsigned int)v->DISPCLKDelaySubtotal;
 
        if (myPipe->Dppclk == 0.0 || myPipe->Dispclk == 0.0)
                return true;
@@ -4416,8 +4416,8 @@ void dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport(
 
        for (k = 0; k < v->NumberOfActiveSurfaces; ++k) {
 
-               LBLatencyHidingSourceLinesY[k] = dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSizeFinal / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1);
-               LBLatencyHidingSourceLinesC[k] = dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSizeFinal / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1);
+               LBLatencyHidingSourceLinesY[k] = (unsigned int)(dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSizeFinal / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1));
+               LBLatencyHidingSourceLinesC[k] = (unsigned int)(dml_min((double) v->MaxLineBufferLines, dml_floor(v->LineBufferSizeFinal / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1));
 
 
 #ifdef __DML_VBA_DEBUG__
@@ -4440,7 +4440,7 @@ void dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport(
                }
 
                LinesInDETY[k] = (double) EffectiveDETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k];
-               LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]);
+               LinesInDETYRoundedDownToSwath[k] = (unsigned int)dml_floor(LinesInDETY[k], SwathHeightY[k]);
                FullDETBufferingTimeY = LinesInDETYRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k];
 
                ActiveClockChangeLatencyHidingY = EffectiveLBLatencyHidingY + FullDETBufferingTimeY
@@ -4454,7 +4454,7 @@ void dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport(
 
                if (BytePerPixelDETC[k] > 0) {
                        LinesInDETC[k] = DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k];
-                       LinesInDETCRoundedDownToSwath[k] = dml_floor(LinesInDETC[k], SwathHeightC[k]);
+                       LinesInDETCRoundedDownToSwath[k] = (unsigned int)dml_floor(LinesInDETC[k], SwathHeightC[k]);
                        FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k])
                                        / v->VRatioChroma[k];
                        ActiveClockChangeLatencyHidingC = EffectiveLBLatencyHidingC + FullDETBufferingTimeC
@@ -4614,9 +4614,9 @@ void dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport(
                unsigned int src_y_pstate_c;
                unsigned int src_y_ahead_l, src_y_ahead_c, sub_vp_lines_l, sub_vp_lines_c;
 
-               dst_y_pstate = dml_ceil((mmSOCParameters.DRAMClockChangeLatency + mmSOCParameters.UrgentLatency) / (v->HTotal[k] / v->PixelClock[k]), 1);
-               src_y_pstate_l = dml_ceil(dst_y_pstate * v->VRatio[k], SwathHeightY[k]);
-               src_y_ahead_l = dml_floor(DETBufferSizeY[k] / BytePerPixelDETY[k] / SwathWidthY[k], SwathHeightY[k]) + LBLatencyHidingSourceLinesY[k];
+               dst_y_pstate = (unsigned int)dml_ceil((mmSOCParameters.DRAMClockChangeLatency + mmSOCParameters.UrgentLatency) / (v->HTotal[k] / v->PixelClock[k]), 1);
+               src_y_pstate_l = (unsigned int)dml_ceil(dst_y_pstate * v->VRatio[k], SwathHeightY[k]);
+               src_y_ahead_l = (unsigned int)(dml_floor(DETBufferSizeY[k] / BytePerPixelDETY[k] / SwathWidthY[k], SwathHeightY[k]) + LBLatencyHidingSourceLinesY[k]);
                sub_vp_lines_l = src_y_pstate_l + src_y_ahead_l + v->meta_row_height[k];
 
 #ifdef __DML_VBA_DEBUG__
@@ -4634,10 +4634,10 @@ dml_print("DML::%s: k=%d, sub_vp_lines_l    = %d\n", __func__, k, sub_vp_lines_l
                SubViewportLinesNeededInMALL[k] = sub_vp_lines_l;
 
                if (BytePerPixelDETC[k] > 0) {
-                       src_y_pstate_c = dml_ceil(dst_y_pstate * v->VRatioChroma[k], SwathHeightC[k]);
-                       src_y_ahead_c = dml_floor(DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k], SwathHeightC[k]) + LBLatencyHidingSourceLinesC[k];
+                       src_y_pstate_c = (unsigned int)dml_ceil(dst_y_pstate * v->VRatioChroma[k], SwathHeightC[k]);
+                       src_y_ahead_c = (unsigned int)(dml_floor(DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k], SwathHeightC[k]) + LBLatencyHidingSourceLinesC[k]);
                        sub_vp_lines_c = src_y_pstate_c + src_y_ahead_c + v->meta_row_height_chroma[k];
-                       SubViewportLinesNeededInMALL[k] = dml_max(sub_vp_lines_l, sub_vp_lines_c);
+                       SubViewportLinesNeededInMALL[k] = (unsigned int)dml_max(sub_vp_lines_l, sub_vp_lines_c);
 
 #ifdef __DML_VBA_DEBUG__
 dml_print("DML::%s: k=%d, src_y_pstate_c            = %d\n", __func__, k, src_y_pstate_c);
@@ -4852,7 +4852,7 @@ void dml32_CalculatePixelDeliveryTimes(
        for (k = 0; k < NumberOfActiveSurfaces; ++k) {
                unsigned int cursor_req_per_width;
 
-               cursor_req_per_width = dml_ceil((double) CursorWidth[k][0] * (double) CursorBPP[k][0] /
+               cursor_req_per_width = (unsigned int)dml_ceil((double) CursorWidth[k][0] * (double) CursorBPP[k][0] /
                                256.0 / 8.0, 1.0);
                if (NumberOfCursors[k] > 0) {
                        if (VRatio[k] <= 1) {
@@ -5000,8 +5000,8 @@ void dml32_CalculateMetaAndPTETimes(
                                                meta_row_height_chroma[k];
                                min_meta_chunk_width_chroma = MinMetaChunkSizeBytes * 256 / BytePerPixelC[k] /
                                                meta_row_height_chroma[k];
-                               meta_chunk_per_row_int_chroma = (double) meta_row_width_chroma[k] /
-                                               meta_chunk_width_chroma;
+                               meta_chunk_per_row_int_chroma = (unsigned int)((double) meta_row_width_chroma[k] /
+                                               meta_chunk_width_chroma);
                                meta_row_remainder_chroma = meta_row_width_chroma[k] % meta_chunk_width_chroma;
                                if (!IsVertical(SourceRotation[k])) {
                                        meta_chunk_threshold_chroma = 2 * min_meta_chunk_width_chroma -
@@ -5035,18 +5035,18 @@ void dml32_CalculateMetaAndPTETimes(
        for (k = 0; k < NumberOfActiveSurfaces; ++k) {
                if (GPUVMEnable == true) {
                        if (!IsVertical(SourceRotation[k])) {
-                               dpte_group_width_luma = (double) dpte_group_bytes[k] /
-                                               (double) PTERequestSizeY[k] * PixelPTEReqWidthY[k];
+                               dpte_group_width_luma = (unsigned int)((double) dpte_group_bytes[k] /
+                                               (double) PTERequestSizeY[k] * PixelPTEReqWidthY[k]);
                        } else {
-                               dpte_group_width_luma = (double) dpte_group_bytes[k] /
-                                               (double) PTERequestSizeY[k] * PixelPTEReqHeightY[k];
+                               dpte_group_width_luma = (unsigned int)((double) dpte_group_bytes[k] /
+                                               (double) PTERequestSizeY[k] * PixelPTEReqHeightY[k]);
                        }
 
                        if (use_one_row_for_frame[k]) {
-                               dpte_groups_per_row_luma_ub = dml_ceil((double) dpte_row_width_luma_ub[k] /
+                               dpte_groups_per_row_luma_ub = (unsigned int)dml_ceil((double) dpte_row_width_luma_ub[k] /
                                                (double) dpte_group_width_luma / 2.0, 1.0);
                        } else {
-                               dpte_groups_per_row_luma_ub = dml_ceil((double) dpte_row_width_luma_ub[k] /
+                               dpte_groups_per_row_luma_ub = (unsigned int)dml_ceil((double) dpte_row_width_luma_ub[k] /
                                                (double) dpte_group_width_luma, 1.0);
                        }
 #ifdef __DML_VBA_DEBUG__
@@ -5080,18 +5080,18 @@ void dml32_CalculateMetaAndPTETimes(
                                time_per_pte_group_flip_chroma[k] = 0;
                        } else {
                                if (!IsVertical(SourceRotation[k])) {
-                                       dpte_group_width_chroma = (double) dpte_group_bytes[k] /
-                                                       (double) PTERequestSizeC[k] * PixelPTEReqWidthC[k];
+                                       dpte_group_width_chroma = (unsigned int)((double) dpte_group_bytes[k] /
+                                                       (double) PTERequestSizeC[k] * PixelPTEReqWidthC[k]);
                                } else {
-                                       dpte_group_width_chroma = (double) dpte_group_bytes[k] /
-                                                       (double) PTERequestSizeC[k] * PixelPTEReqHeightC[k];
+                                       dpte_group_width_chroma = (unsigned int)((double) dpte_group_bytes[k] /
+                                                       (double) PTERequestSizeC[k] * PixelPTEReqHeightC[k]);
                                }
 
                                if (use_one_row_for_frame[k]) {
-                                       dpte_groups_per_row_chroma_ub = dml_ceil((double) dpte_row_width_chroma_ub[k] /
+                                       dpte_groups_per_row_chroma_ub = (unsigned int)dml_ceil((double) dpte_row_width_chroma_ub[k] /
                                                        (double) dpte_group_width_chroma / 2.0, 1.0);
                                } else {
-                                       dpte_groups_per_row_chroma_ub = dml_ceil((double) dpte_row_width_chroma_ub[k] /
+                                       dpte_groups_per_row_chroma_ub = (unsigned int)dml_ceil((double) dpte_row_width_chroma_ub[k] /
                                                        (double) dpte_group_width_chroma, 1.0);
                                }
 #ifdef __DML_VBA_DEBUG__
@@ -5210,32 +5210,32 @@ void dml32_CalculateVMGroupAndRequestTimes(
                if (GPUVMEnable == true && (DCCEnable[k] == true || GPUVMMaxPageTableLevels > 1)) {
                        if (DCCEnable[k] == false) {
                                if (BytePerPixelC[k] > 0) {
-                                       num_group_per_lower_vm_stage = dml_ceil(
+                                       num_group_per_lower_vm_stage = (unsigned int)(dml_ceil(
                                                        (double) (dpde0_bytes_per_frame_ub_l[k]) /
                                                        (double) (vm_group_bytes[k]), 1.0) +
                                                        dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) /
-                                                       (double) (vm_group_bytes[k]), 1.0);
+                                                       (double) (vm_group_bytes[k]), 1.0));
                                } else {
-                                       num_group_per_lower_vm_stage = dml_ceil(
+                                       num_group_per_lower_vm_stage = (unsigned int)dml_ceil(
                                                        (double) (dpde0_bytes_per_frame_ub_l[k]) /
                                                        (double) (vm_group_bytes[k]), 1.0);
                                }
                        } else {
                                if (GPUVMMaxPageTableLevels == 1) {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = dml_ceil(
+                                               num_group_per_lower_vm_stage = (unsigned int)(dml_ceil(
                                                        (double) (meta_pte_bytes_per_frame_ub_l[k]) /
                                                        (double) (vm_group_bytes[k]), 1.0) +
                                                        dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) /
-                                                       (double) (vm_group_bytes[k]), 1.0);
+                                                       (double) (vm_group_bytes[k]), 1.0));
                                        } else {
-                                               num_group_per_lower_vm_stage = dml_ceil(
+                                               num_group_per_lower_vm_stage = (unsigned int)dml_ceil(
                                                                (double) (meta_pte_bytes_per_frame_ub_l[k]) /
                                                                (double) (vm_group_bytes[k]), 1.0);
                                        }
                                } else {
                                        if (BytePerPixelC[k] > 0) {
-                                               num_group_per_lower_vm_stage = 2 + dml_ceil(
+                                               num_group_per_lower_vm_stage = (unsigned int)(2 + dml_ceil(
                                                        (double) (dpde0_bytes_per_frame_ub_l[k]) /
                                                        (double) (vm_group_bytes[k]), 1) +
                                                        dml_ceil((double) (dpde0_bytes_per_frame_ub_c[k]) /
@@ -5243,13 +5243,13 @@ void dml32_CalculateVMGroupAndRequestTimes(
                                                        dml_ceil((double) (meta_pte_bytes_per_frame_ub_l[k]) /
                                                        (double) (vm_group_bytes[k]), 1) +
                                                        dml_ceil((double) (meta_pte_bytes_per_frame_ub_c[k]) /
-                                                       (double) (vm_group_bytes[k]), 1);
+                                                       (double) (vm_group_bytes[k]), 1));
                                        } else {
-                                               num_group_per_lower_vm_stage = 1 + dml_ceil(
+                                               num_group_per_lower_vm_stage = (unsigned int)(1 + dml_ceil(
                                                        (double) (dpde0_bytes_per_frame_ub_l[k]) /
                                                        (double) (vm_group_bytes[k]), 1) + dml_ceil(
                                                        (double) (meta_pte_bytes_per_frame_ub_l[k]) /
-                                                       (double) (vm_group_bytes[k]), 1);
+                                                       (double) (vm_group_bytes[k]), 1));
                                        }
                                }
                        }
@@ -5424,8 +5424,8 @@ void dml32_CalculateDCCConfiguration(
 
        MAS_vp_horz_limit = SourcePixelFormat == dm_rgbe_alpha ? 3840 : 6144;
        MAS_vp_vert_limit = SourcePixelFormat == dm_rgbe_alpha ? 3840 : (BytePerPixelY == 8 ? 3072 : 6144);
-       max_vp_horz_width = dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
-       max_vp_vert_height = dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
+       max_vp_horz_width = (unsigned int)dml_min((double) MAS_vp_horz_limit, detile_buf_vp_horz_limit);
+       max_vp_vert_height = (unsigned int)dml_min((double) MAS_vp_vert_limit, detile_buf_vp_vert_limit);
        eff_surf_width_l =  (SurfaceWidthLuma > max_vp_horz_width ? max_vp_horz_width : SurfaceWidthLuma);
        eff_surf_width_c =  eff_surf_width_l / (1 + yuv420);
        eff_surf_height_l =  (SurfaceHeightLuma > max_vp_vert_height ? max_vp_vert_height : SurfaceHeightLuma);
@@ -5442,10 +5442,10 @@ void dml32_CalculateDCCConfiguration(
        }
 
        if (SourcePixelFormat == dm_420_10) {
-               full_swath_bytes_horz_wc_l = dml_ceil((double) full_swath_bytes_horz_wc_l * 2.0 / 3.0, 256.0);
-               full_swath_bytes_horz_wc_c = dml_ceil((double) full_swath_bytes_horz_wc_c * 2.0 / 3.0, 256.0);
-               full_swath_bytes_vert_wc_l = dml_ceil((double) full_swath_bytes_vert_wc_l * 2.0 / 3.0, 256.0);
-               full_swath_bytes_vert_wc_c = dml_ceil((double) full_swath_bytes_vert_wc_c * 2.0 / 3.0, 256.0);
+               full_swath_bytes_horz_wc_l = (unsigned int)dml_ceil((double) full_swath_bytes_horz_wc_l * 2.0 / 3.0, 256.0);
+               full_swath_bytes_horz_wc_c = (unsigned int)dml_ceil((double) full_swath_bytes_horz_wc_c * 2.0 / 3.0, 256.0);
+               full_swath_bytes_vert_wc_l = (unsigned int)dml_ceil((double) full_swath_bytes_vert_wc_l * 2.0 / 3.0, 256.0);
+               full_swath_bytes_vert_wc_c = (unsigned int)dml_ceil((double) full_swath_bytes_vert_wc_c * 2.0 / 3.0, 256.0);
        }
 
        if (2 * full_swath_bytes_horz_wc_l + 2 * full_swath_bytes_horz_wc_c <= DETBufferSizeForDCC) {
@@ -5994,10 +5994,10 @@ void dml32_CalculateStutterEfficiency(
                                1 - (SRExitTime + StutterBurstTime) / *StutterPeriod) * 100;
                *Z8StutterEfficiencyNotIncludingVBlank = dml_max(0.,
                                1 - (SRExitZ8Time + StutterBurstTime) / *StutterPeriod) * 100;
-               *NumberOfStutterBurstsPerFrame = (
+               *NumberOfStutterBurstsPerFrame = (unsigned int)(
                                *StutterEfficiencyNotIncludingVBlank > 0 ?
                                                dml_ceil(VActiveTimeCriticalSurface / *StutterPeriod, 1) : 0);
-               *Z8NumberOfStutterBurstsPerFrame = (
+               *Z8NumberOfStutterBurstsPerFrame = (unsigned int)(
                                *Z8StutterEfficiencyNotIncludingVBlank > 0 ?
                                                dml_ceil(VActiveTimeCriticalSurface / *StutterPeriod, 1) : 0);
        } else {
@@ -6073,11 +6073,11 @@ void dml32_CalculateStutterEfficiency(
        dml_print("DML::%s: Z8NumberOfStutterBurstsPerFrame = %d\n", __func__, *Z8NumberOfStutterBurstsPerFrame);
 #endif
 
-       SwathSizeCriticalSurface = BytePerPixelYCriticalSurface * SwathHeightYCriticalSurface
-                       * dml_ceil(SwathWidthYCriticalSurface, BlockWidth256BytesYCriticalSurface);
+       SwathSizeCriticalSurface = (unsigned int)(BytePerPixelYCriticalSurface * SwathHeightYCriticalSurface
+                       * dml_ceil(SwathWidthYCriticalSurface, BlockWidth256BytesYCriticalSurface));
        LastChunkOfSwathSize = SwathSizeCriticalSurface % (PixelChunkSizeInKByte * 1024);
-       MissingPartOfLastSwathOfDETSize = dml_ceil(DETBufferSizeYCriticalSurface, SwathSizeCriticalSurface)
-                       - DETBufferSizeYCriticalSurface;
+       MissingPartOfLastSwathOfDETSize = (unsigned int)(dml_ceil(DETBufferSizeYCriticalSurface, SwathSizeCriticalSurface)
+                       - DETBufferSizeYCriticalSurface);
 
        *DCHUBBUB_ARB_CSTATE_MAX_CAP_MODE = !(!UnboundedRequestEnabled && (NumberOfActiveSurfaces == 1)
                        && doublePlaneCriticalSurface && doublePipeCriticalSurface && (LastChunkOfSwathSize > 0)
@@ -6107,9 +6107,9 @@ void dml32_CalculateMaxDETAndMinCompressedBufferSize(
        bool     det_buff_size_override_en  = nomDETInKByteOverrideEnable;
        unsigned int        det_buff_size_override_val = nomDETInKByteOverrideValue;
 
-       *MaxTotalDETInKByte = dml_ceil(((double)ConfigReturnBufferSizeInKByte +
+       *MaxTotalDETInKByte = (unsigned int)dml_ceil(((double)ConfigReturnBufferSizeInKByte +
                        (double) ROBBufferSizeInKByte) * 4.0 / 5.0, 64);
-       *nomDETInKByte = dml_floor((double) *MaxTotalDETInKByte / (double) MaxNumDPP, 64);
+       *nomDETInKByte = (unsigned int)dml_floor((double) *MaxTotalDETInKByte / (double) MaxNumDPP, 64);
        *MinCompressedBufferSizeInKByte = ConfigReturnBufferSizeInKByte - *MaxTotalDETInKByte;
 
 #ifdef __DML_VBA_DEBUG__
index 6c75aa82327ac158d2a1fca08d1a4e0a7c2a87d0..bde043373d5d7dfde50a87f150eca96e3321e468 100644 (file)
@@ -73,17 +73,17 @@ void dml32_rq_dlg_get_rq_reg(display_rq_regs_st *rq_regs,
 
        dml_print("DML_DLG::%s: Calculation for pipe[%d] start, num_pipes=%d\n", __func__, pipe_idx, num_pipes);
 
-       pixel_chunk_bytes = get_pixel_chunk_size_in_kbyte(mode_lib, e2e_pipe_param, num_pipes) * 1024; // From VBA
-       min_pixel_chunk_bytes = get_min_pixel_chunk_size_in_byte(mode_lib, e2e_pipe_param, num_pipes); // From VBA
+       pixel_chunk_bytes = (uint32_t)(get_pixel_chunk_size_in_kbyte(mode_lib, e2e_pipe_param, num_pipes) * 1024); // From VBA
+       min_pixel_chunk_bytes = (uint32_t)get_min_pixel_chunk_size_in_byte(mode_lib, e2e_pipe_param, num_pipes); // From VBA
 
        if (pixel_chunk_bytes == 64 * 1024)
                min_pixel_chunk_bytes = 0;
 
-       meta_chunk_bytes = get_meta_chunk_size_in_kbyte(mode_lib, e2e_pipe_param, num_pipes) * 1024; // From VBA
-       min_meta_chunk_bytes = get_min_meta_chunk_size_in_byte(mode_lib, e2e_pipe_param, num_pipes); // From VBA
+       meta_chunk_bytes = (uint32_t)(get_meta_chunk_size_in_kbyte(mode_lib, e2e_pipe_param, num_pipes) * 1024); // From VBA
+       min_meta_chunk_bytes = (uint32_t)get_min_meta_chunk_size_in_byte(mode_lib, e2e_pipe_param, num_pipes); // From VBA
 
-       dpte_group_bytes = get_dpte_group_size_in_bytes(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
-       mpte_group_bytes = get_vm_group_size_in_bytes(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
+       dpte_group_bytes = (uint32_t)get_dpte_group_size_in_bytes(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
+       mpte_group_bytes = (uint32_t)get_vm_group_size_in_bytes(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
 
        p1_pixel_chunk_bytes = pixel_chunk_bytes;
        p1_min_pixel_chunk_bytes = min_pixel_chunk_bytes;
@@ -93,10 +93,10 @@ void dml32_rq_dlg_get_rq_reg(display_rq_regs_st *rq_regs,
        p1_mpte_group_bytes = mpte_group_bytes;
 
        if ((enum source_format_class) src->source_format == dm_rgbe_alpha)
-               p1_pixel_chunk_bytes = get_alpha_pixel_chunk_size_in_kbyte(mode_lib, e2e_pipe_param, num_pipes) * 1024;
+               p1_pixel_chunk_bytes = (uint32_t)(get_alpha_pixel_chunk_size_in_kbyte(mode_lib, e2e_pipe_param, num_pipes) * 1024);
 
-       rq_regs->rq_regs_l.chunk_size = dml_log2(pixel_chunk_bytes) - 10;
-       rq_regs->rq_regs_c.chunk_size = dml_log2(p1_pixel_chunk_bytes) - 10;
+       rq_regs->rq_regs_l.chunk_size = (uint32_t)(dml_log2(pixel_chunk_bytes) - 10);
+       rq_regs->rq_regs_c.chunk_size = (uint32_t)(dml_log2(p1_pixel_chunk_bytes) - 10);
 
        if (min_pixel_chunk_bytes == 0)
                rq_regs->rq_regs_l.min_chunk_size = 0;
@@ -108,8 +108,8 @@ void dml32_rq_dlg_get_rq_reg(display_rq_regs_st *rq_regs,
        else
                rq_regs->rq_regs_c.min_chunk_size = dml_log2(p1_min_pixel_chunk_bytes) - 8 + 1;
 
-       rq_regs->rq_regs_l.meta_chunk_size = dml_log2(meta_chunk_bytes) - 10;
-       rq_regs->rq_regs_c.meta_chunk_size = dml_log2(p1_meta_chunk_bytes) - 10;
+       rq_regs->rq_regs_l.meta_chunk_size = (uint32_t)(dml_log2(meta_chunk_bytes) - 10);
+       rq_regs->rq_regs_c.meta_chunk_size = (uint32_t)(dml_log2(p1_meta_chunk_bytes) - 10);
 
        if (min_meta_chunk_bytes == 0)
                rq_regs->rq_regs_l.min_meta_chunk_size = 0;
@@ -121,32 +121,32 @@ void dml32_rq_dlg_get_rq_reg(display_rq_regs_st *rq_regs,
        else
                rq_regs->rq_regs_c.min_meta_chunk_size = dml_log2(p1_min_meta_chunk_bytes) - 6 + 1;
 
-       rq_regs->rq_regs_l.dpte_group_size = dml_log2(dpte_group_bytes) - 6;
+       rq_regs->rq_regs_l.dpte_group_size = (uint32_t)(dml_log2(dpte_group_bytes) - 6);
        rq_regs->rq_regs_l.mpte_group_size = dml_log2(mpte_group_bytes) - 6;
        rq_regs->rq_regs_c.dpte_group_size = dml_log2(p1_dpte_group_bytes) - 6;
        rq_regs->rq_regs_c.mpte_group_size = dml_log2(p1_mpte_group_bytes) - 6;
 
-       detile_buf_size_in_bytes = get_det_buffer_size_kbytes(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * 1024;
+       detile_buf_size_in_bytes = (unsigned int)(get_det_buffer_size_kbytes(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * 1024);
        detile_buf_plane1_addr = 0;
-       pte_row_height_linear = get_dpte_row_height_linear_l(mode_lib, e2e_pipe_param, num_pipes,
+       pte_row_height_linear = (unsigned int)get_dpte_row_height_linear_l(mode_lib, e2e_pipe_param, num_pipes,
                        pipe_idx);
 
        if (src->sw_mode == dm_sw_linear)
                ASSERT(pte_row_height_linear >= 8);
 
-       rq_regs->rq_regs_l.pte_row_height_linear = dml_floor(dml_log2(pte_row_height_linear), 1) - 3;
+       rq_regs->rq_regs_l.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(pte_row_height_linear), 1) - 3);
 
        if (dual_plane) {
-               unsigned int p1_pte_row_height_linear = get_dpte_row_height_linear_c(mode_lib, e2e_pipe_param,
+               unsigned int p1_pte_row_height_linear = (unsigned int)get_dpte_row_height_linear_c(mode_lib, e2e_pipe_param,
                                num_pipes, pipe_idx);
                if (src->sw_mode == dm_sw_linear)
                        ASSERT(p1_pte_row_height_linear >= 8);
 
-               rq_regs->rq_regs_c.pte_row_height_linear = dml_floor(dml_log2(p1_pte_row_height_linear), 1) - 3;
+               rq_regs->rq_regs_c.pte_row_height_linear = (unsigned int)(dml_floor(dml_log2(p1_pte_row_height_linear), 1) - 3);
        }
 
-       rq_regs->rq_regs_l.swath_height = dml_log2(get_swath_height_l(mode_lib, e2e_pipe_param, num_pipes, pipe_idx));
-       rq_regs->rq_regs_c.swath_height = dml_log2(get_swath_height_c(mode_lib, e2e_pipe_param, num_pipes, pipe_idx));
+       rq_regs->rq_regs_l.swath_height = (unsigned int)dml_log2(get_swath_height_l(mode_lib, e2e_pipe_param, num_pipes, pipe_idx));
+       rq_regs->rq_regs_c.swath_height = (unsigned int)dml_log2(get_swath_height_c(mode_lib, e2e_pipe_param, num_pipes, pipe_idx));
 
        // FIXME: take the max between luma, chroma chunk size?
        // okay for now, as we are setting pixel_chunk_bytes to 8kb anyways
@@ -168,19 +168,19 @@ void dml32_rq_dlg_get_rq_reg(display_rq_regs_st *rq_regs,
        // Note: detile_buf_plane1_addr is in unit of 1KB
        if (dual_plane) {
                if (is_phantom_pipe) {
-                       detile_buf_plane1_addr = ((1024.0 * 1024.0) / 2.0 / 1024.0); // half to chroma
+                       detile_buf_plane1_addr = (unsigned int)((1024.0 * 1024.0) / 2.0 / 1024.0); // half to chroma
                } else {
                        if (stored_swath_l_bytes / stored_swath_c_bytes <= 1.5) {
-                               detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 1024.0); // half to chroma
+                               detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 1024.0); // half to chroma
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                                dml_print("DML_DLG: %s: detile_buf_plane1_addr = %d (1/2 to chroma)\n",
                                                __func__, detile_buf_plane1_addr);
 #endif
                        } else {
-                               detile_buf_plane1_addr =
+                               detile_buf_plane1_addr = (unsigned int)(
                                                dml_round_to_multiple(
                                                                (unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0),
-                                                               1024, 0) / 1024.0; // 2/3 to luma
+                                                               1024, 0) / 1024.0); // 2/3 to luma
 #ifdef __DML_RQ_DLG_CALC_DEBUG__
                                dml_print("DML_DLG: %s: detile_buf_plane1_addr = %d (1/3 chroma)\n",
                                                __func__, detile_buf_plane1_addr);
@@ -276,7 +276,7 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        dlg_regs->dlg_vblank_end = interlaced ? (vblank_end / 2) : vblank_end; // 15 bits
 
        min_ttu_vblank = get_min_ttu_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx); // From VBA
-       min_dst_y_next_start = get_min_dst_y_next_start(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
+       min_dst_y_next_start = (unsigned int)get_min_dst_y_next_start(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
 
        dml_print("DML_DLG: %s: min_ttu_vblank (us)    = %3.2f\n", __func__, min_ttu_vblank);
        dml_print("DML_DLG: %s: min_dst_y_next_start = %d\n", __func__, min_dst_y_next_start);
@@ -284,14 +284,14 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
 
        dual_plane = is_dual_plane((enum source_format_class) (src->source_format));
 
-       vready_after_vcount0 = get_vready_at_or_after_vsync(mode_lib, e2e_pipe_param, num_pipes,
+       vready_after_vcount0 = (unsigned int)get_vready_at_or_after_vsync(mode_lib, e2e_pipe_param, num_pipes,
                        pipe_idx); // From VBA
        dlg_regs->vready_after_vcount0 = vready_after_vcount0;
 
        dml_print("DML_DLG: %s: vready_after_vcount0 = %d\n", __func__, dlg_regs->vready_after_vcount0);
 
-       dst_x_after_scaler = dml_ceil(get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx), 1);
-       dst_y_after_scaler = dml_ceil(get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx), 1);
+       dst_x_after_scaler = (unsigned int)dml_ceil(get_dst_x_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx), 1);
+       dst_y_after_scaler = (unsigned int)dml_ceil(get_dst_y_after_scaler(mode_lib, e2e_pipe_param, num_pipes, pipe_idx), 1);
 
        // do some adjustment on the dst_after scaler to account for odm combine mode
        dml_print("DML_DLG: %s: input dst_x_after_scaler   = %d\n", __func__, dst_x_after_scaler);
@@ -398,15 +398,15 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        }
 
        if (src->dynamic_metadata_enable && src->gpuvm)
-               dlg_regs->refcyc_per_vm_dmdata = get_refcyc_per_vm_dmdata_in_us(mode_lib, e2e_pipe_param, num_pipes,
-                               pipe_idx) * refclk_freq_in_mhz; // From VBA
+               dlg_regs->refcyc_per_vm_dmdata = (unsigned int)(get_refcyc_per_vm_dmdata_in_us(mode_lib, e2e_pipe_param, num_pipes,
+                               pipe_idx) * refclk_freq_in_mhz); // From VBA
 
-       dlg_regs->dmdata_dl_delta = get_dmdata_dl_delta_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx)
-               * refclk_freq_in_mhz; // From VBA
+       dlg_regs->dmdata_dl_delta = (unsigned int)(get_dmdata_dl_delta_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx)
+               * refclk_freq_in_mhz); // From VBA
 
-       refcyc_per_req_delivery_pre_l = get_refcyc_per_req_delivery_pre_l_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz; // From VBA
-       refcyc_per_req_delivery_l = get_refcyc_per_req_delivery_l_in_us(mode_lib, e2e_pipe_param, num_pipes,
-                       pipe_idx) * refclk_freq_in_mhz;     // From VBA
+       refcyc_per_req_delivery_pre_l = (unsigned int)(get_refcyc_per_req_delivery_pre_l_in_us(mode_lib, e2e_pipe_param, num_pipes, pipe_idx) * refclk_freq_in_mhz); // From VBA
+       refcyc_per_req_delivery_l = (unsigned int)(get_refcyc_per_req_delivery_l_in_us(mode_lib, e2e_pipe_param, num_pipes,
+                       pipe_idx) * refclk_freq_in_mhz);     // From VBA
 
        dml_print("DML_DLG: %s: refcyc_per_req_delivery_pre_l = %3.2f\n", __func__, refcyc_per_req_delivery_pre_l);
        dml_print("DML_DLG: %s: refcyc_per_req_delivery_l     = %3.2f\n", __func__, refcyc_per_req_delivery_l);
@@ -437,11 +437,11 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        }
 
        // Assign to register structures
-       dlg_regs->min_dst_y_next_start = min_dst_y_next_start * dml_pow(2, 2);
+       dlg_regs->min_dst_y_next_start = (unsigned int)(min_dst_y_next_start * dml_pow(2, 2));
        ASSERT(dlg_regs->min_dst_y_next_start < (unsigned int)dml_pow(2, 18));
 
        dlg_regs->dst_y_after_scaler = dst_y_after_scaler; // in terms of line
-       dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq; // in terms of refclk
+       dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq); // in terms of refclk
        dlg_regs->dst_y_prefetch = (unsigned int) (dst_y_prefetch * dml_pow(2, 2));
        dlg_regs->dst_y_per_vm_vblank = (unsigned int) (dst_y_per_vm_vblank * dml_pow(2, 2));
        dlg_regs->dst_y_per_row_vblank = (unsigned int) (dst_y_per_row_vblank * dml_pow(2, 2));
@@ -456,14 +456,14 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        dml_print("DML_DLG: %s: dlg_regs->dst_y_per_vm_flip    = 0x%x\n", __func__, dlg_regs->dst_y_per_vm_flip);
        dml_print("DML_DLG: %s: dlg_regs->dst_y_per_row_flip   = 0x%x\n", __func__, dlg_regs->dst_y_per_row_flip);
 
-       dlg_regs->refcyc_per_vm_group_vblank = get_refcyc_per_vm_group_vblank_in_us(mode_lib, e2e_pipe_param,
-                       num_pipes, pipe_idx) * refclk_freq_in_mhz;               // From VBA
-       dlg_regs->refcyc_per_vm_group_flip = get_refcyc_per_vm_group_flip_in_us(mode_lib, e2e_pipe_param, num_pipes,
-                       pipe_idx) * refclk_freq_in_mhz;                 // From VBA
-       dlg_regs->refcyc_per_vm_req_vblank = get_refcyc_per_vm_req_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes,
-                       pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);                 // From VBA
-       dlg_regs->refcyc_per_vm_req_flip = get_refcyc_per_vm_req_flip_in_us(mode_lib, e2e_pipe_param, num_pipes,
-                       pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10);  // From VBA
+       dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(get_refcyc_per_vm_group_vblank_in_us(mode_lib, e2e_pipe_param,
+                       num_pipes, pipe_idx) * refclk_freq_in_mhz);               // From VBA
+       dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(get_refcyc_per_vm_group_flip_in_us(mode_lib, e2e_pipe_param, num_pipes,
+                       pipe_idx) * refclk_freq_in_mhz);                 // From VBA
+       dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(get_refcyc_per_vm_req_vblank_in_us(mode_lib, e2e_pipe_param, num_pipes,
+                       pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));                 // From VBA
+       dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(get_refcyc_per_vm_req_flip_in_us(mode_lib, e2e_pipe_param, num_pipes,
+                       pipe_idx) * refclk_freq_in_mhz * dml_pow(2, 10));  // From VBA
 
        // From VBA
        dst_y_per_pte_row_nom_l = get_dst_y_per_pte_row_nom_l(mode_lib, e2e_pipe_param, num_pipes, pipe_idx);
@@ -500,22 +500,22 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        refcyc_per_meta_chunk_flip_c = get_refcyc_per_meta_chunk_flip_c_in_us(mode_lib, e2e_pipe_param,
                        num_pipes, pipe_idx) * refclk_freq_in_mhz;       // From VBA
 
-       dlg_regs->dst_y_per_pte_row_nom_l = dst_y_per_pte_row_nom_l * dml_pow(2, 2);
-       dlg_regs->dst_y_per_pte_row_nom_c = dst_y_per_pte_row_nom_c * dml_pow(2, 2);
-       dlg_regs->dst_y_per_meta_row_nom_l = dst_y_per_meta_row_nom_l * dml_pow(2, 2);
-       dlg_regs->dst_y_per_meta_row_nom_c = dst_y_per_meta_row_nom_c * dml_pow(2, 2);
-       dlg_regs->refcyc_per_pte_group_nom_l = refcyc_per_pte_group_nom_l;
-       dlg_regs->refcyc_per_pte_group_nom_c = refcyc_per_pte_group_nom_c;
-       dlg_regs->refcyc_per_pte_group_vblank_l = refcyc_per_pte_group_vblank_l;
-       dlg_regs->refcyc_per_pte_group_vblank_c = refcyc_per_pte_group_vblank_c;
-       dlg_regs->refcyc_per_pte_group_flip_l = refcyc_per_pte_group_flip_l;
-       dlg_regs->refcyc_per_pte_group_flip_c = refcyc_per_pte_group_flip_c;
-       dlg_regs->refcyc_per_meta_chunk_nom_l = refcyc_per_meta_chunk_nom_l;
-       dlg_regs->refcyc_per_meta_chunk_nom_c = refcyc_per_meta_chunk_nom_c;
-       dlg_regs->refcyc_per_meta_chunk_vblank_l = refcyc_per_meta_chunk_vblank_l;
-       dlg_regs->refcyc_per_meta_chunk_vblank_c = refcyc_per_meta_chunk_vblank_c;
-       dlg_regs->refcyc_per_meta_chunk_flip_l = refcyc_per_meta_chunk_flip_l;
-       dlg_regs->refcyc_per_meta_chunk_flip_c = refcyc_per_meta_chunk_flip_c;
+       dlg_regs->dst_y_per_pte_row_nom_l = (unsigned int)(dst_y_per_pte_row_nom_l * dml_pow(2, 2));
+       dlg_regs->dst_y_per_pte_row_nom_c = (unsigned int)(dst_y_per_pte_row_nom_c * dml_pow(2, 2));
+       dlg_regs->dst_y_per_meta_row_nom_l = (unsigned int)(dst_y_per_meta_row_nom_l * dml_pow(2, 2));
+       dlg_regs->dst_y_per_meta_row_nom_c = (unsigned int)(dst_y_per_meta_row_nom_c * dml_pow(2, 2));
+       dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)refcyc_per_pte_group_nom_l;
+       dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)refcyc_per_pte_group_nom_c;
+       dlg_regs->refcyc_per_pte_group_vblank_l = (unsigned int)refcyc_per_pte_group_vblank_l;
+       dlg_regs->refcyc_per_pte_group_vblank_c = (unsigned int)refcyc_per_pte_group_vblank_c;
+       dlg_regs->refcyc_per_pte_group_flip_l = (unsigned int)refcyc_per_pte_group_flip_l;
+       dlg_regs->refcyc_per_pte_group_flip_c = (unsigned int)refcyc_per_pte_group_flip_c;
+       dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)refcyc_per_meta_chunk_nom_l;
+       dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)refcyc_per_meta_chunk_nom_c;
+       dlg_regs->refcyc_per_meta_chunk_vblank_l = (unsigned int)refcyc_per_meta_chunk_vblank_l;
+       dlg_regs->refcyc_per_meta_chunk_vblank_c = (unsigned int)refcyc_per_meta_chunk_vblank_c;
+       dlg_regs->refcyc_per_meta_chunk_flip_l = (unsigned int)refcyc_per_meta_chunk_flip_l;
+       dlg_regs->refcyc_per_meta_chunk_flip_c = (unsigned int)refcyc_per_meta_chunk_flip_c;
        dlg_regs->refcyc_per_line_delivery_pre_l = (unsigned int) dml_floor(refcyc_per_line_delivery_pre_l, 1);
        dlg_regs->refcyc_per_line_delivery_l = (unsigned int) dml_floor(refcyc_per_line_delivery_l, 1);
        dlg_regs->refcyc_per_line_delivery_pre_c = (unsigned int) dml_floor(refcyc_per_line_delivery_pre_c, 1);
@@ -548,7 +548,7 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        ttu_regs->qos_ramp_disable_l = 0;
        ttu_regs->qos_ramp_disable_c = 0;
        ttu_regs->qos_ramp_disable_cur0 = 0;
-       ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
 
        // CHECK for HW registers' range, assert or clamp
        ASSERT(refcyc_per_req_delivery_pre_l < dml_pow(2, 13));
@@ -556,16 +556,16 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        ASSERT(refcyc_per_req_delivery_pre_c < dml_pow(2, 13));
        ASSERT(refcyc_per_req_delivery_c < dml_pow(2, 13));
        if (dlg_regs->refcyc_per_vm_group_vblank >= (unsigned int) dml_pow(2, 23))
-               dlg_regs->refcyc_per_vm_group_vblank = dml_pow(2, 23) - 1;
+               dlg_regs->refcyc_per_vm_group_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dlg_regs->refcyc_per_vm_group_flip >= (unsigned int) dml_pow(2, 23))
-               dlg_regs->refcyc_per_vm_group_flip = dml_pow(2, 23) - 1;
+               dlg_regs->refcyc_per_vm_group_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dlg_regs->refcyc_per_vm_req_vblank >= (unsigned int) dml_pow(2, 23))
-               dlg_regs->refcyc_per_vm_req_vblank = dml_pow(2, 23) - 1;
+               dlg_regs->refcyc_per_vm_req_vblank = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (dlg_regs->refcyc_per_vm_req_flip >= (unsigned int) dml_pow(2, 23))
-               dlg_regs->refcyc_per_vm_req_flip = dml_pow(2, 23) - 1;
+               dlg_regs->refcyc_per_vm_req_flip = (unsigned int)(dml_pow(2, 23) - 1);
 
        ASSERT(dlg_regs->dst_y_after_scaler < (unsigned int) 8);
        ASSERT(dlg_regs->refcyc_x_after_scaler < (unsigned int)dml_pow(2, 13));
@@ -581,10 +581,10 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        ASSERT(dlg_regs->dst_y_per_meta_row_nom_c < (unsigned int)dml_pow(2, 17));
 
        if (dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
+               dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
        if (dual_plane) {
                if (dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-                       dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+                       dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
        ASSERT(dlg_regs->refcyc_per_pte_group_vblank_l < (unsigned int)dml_pow(2, 13));
        if (dual_plane) {
@@ -592,10 +592,10 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,
        }
 
        if (dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
        if (dual_plane) {
                if (dlg_regs->refcyc_per_meta_chunk_nom_c >= (unsigned int) dml_pow(2, 23))
-                       dlg_regs->refcyc_per_meta_chunk_nom_c = dml_pow(2, 23) - 1;
+                       dlg_regs->refcyc_per_meta_chunk_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
        }
        ASSERT(dlg_regs->refcyc_per_meta_chunk_vblank_l < (unsigned int)dml_pow(2, 13));
        ASSERT(dlg_regs->refcyc_per_meta_chunk_vblank_c < (unsigned int)dml_pow(2, 13));
index e0a1dc89ce43f3e73232737811dd37e78c7542aa..982cc0c0eb3b709a2b68e9c8ee6d49cf14f739f4 100644 (file)
@@ -162,20 +162,20 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_21_soc = {
 static void get_optimal_ntuple(struct _vcs_dpi_voltage_scaling_st *entry)
 {
        if (entry->dcfclk_mhz > 0) {
-               float bw_on_sdp = entry->dcfclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_sdp_bw_after_urgent / 100);
+               float bw_on_sdp = (float)(entry->dcfclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_sdp_bw_after_urgent / 100));
 
                entry->fabricclk_mhz = bw_on_sdp / (dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_fabric_bw_after_urgent / 100));
                entry->dram_speed_mts = bw_on_sdp / (dcn3_21_soc.num_chans *
                                dcn3_21_soc.dram_channel_width_bytes * ((float)dcn3_21_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
        } else if (entry->fabricclk_mhz > 0) {
-               float bw_on_fabric = entry->fabricclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_fabric_bw_after_urgent / 100);
+               float bw_on_fabric = (float)(entry->fabricclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_fabric_bw_after_urgent / 100));
 
                entry->dcfclk_mhz = bw_on_fabric / (dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_sdp_bw_after_urgent / 100));
                entry->dram_speed_mts = bw_on_fabric / (dcn3_21_soc.num_chans *
                                dcn3_21_soc.dram_channel_width_bytes * ((float)dcn3_21_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
        } else if (entry->dram_speed_mts > 0) {
-               float bw_on_dram = entry->dram_speed_mts * dcn3_21_soc.num_chans *
-                               dcn3_21_soc.dram_channel_width_bytes * ((float)dcn3_21_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100);
+               float bw_on_dram = (float)(entry->dram_speed_mts * dcn3_21_soc.num_chans *
+                               dcn3_21_soc.dram_channel_width_bytes * ((float)dcn3_21_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
 
                entry->fabricclk_mhz = bw_on_dram / (dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_fabric_bw_after_urgent / 100));
                entry->dcfclk_mhz = bw_on_dram / (dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_sdp_bw_after_urgent / 100));
@@ -189,12 +189,12 @@ static float calculate_net_bw_in_kbytes_sec(struct _vcs_dpi_voltage_scaling_st *
        float sdp_bw_kbytes_sec;
        float limiting_bw_kbytes_sec;
 
-       memory_bw_kbytes_sec = entry->dram_speed_mts * dcn3_21_soc.num_chans *
-                       dcn3_21_soc.dram_channel_width_bytes * ((float)dcn3_21_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100);
+       memory_bw_kbytes_sec = (float)(entry->dram_speed_mts * dcn3_21_soc.num_chans *
+                       dcn3_21_soc.dram_channel_width_bytes * ((float)dcn3_21_soc.pct_ideal_dram_sdp_bw_after_urgent_pixel_only / 100));
 
-       fabric_bw_kbytes_sec = entry->fabricclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_fabric_bw_after_urgent / 100);
+       fabric_bw_kbytes_sec = (float)(entry->fabricclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_fabric_bw_after_urgent / 100));
 
-       sdp_bw_kbytes_sec = entry->dcfclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_sdp_bw_after_urgent / 100);
+       sdp_bw_kbytes_sec = (float)(entry->dcfclk_mhz * dcn3_21_soc.return_bus_width_bytes * ((float)dcn3_21_soc.pct_ideal_sdp_bw_after_urgent / 100));
 
        limiting_bw_kbytes_sec = memory_bw_kbytes_sec;
 
@@ -267,7 +267,7 @@ static void sort_entries_with_same_bw(struct _vcs_dpi_voltage_scaling_st *table,
 
        for (int i = 0; i < (*num_entries - 1); i++) {
                if (table[i].net_bw_in_kbytes_sec == table[i+1].net_bw_in_kbytes_sec) {
-                       current_bw = table[i].net_bw_in_kbytes_sec;
+                       current_bw = (unsigned int)table[i].net_bw_in_kbytes_sec;
                        start_index = i;
                        end_index = ++i;
 
@@ -414,12 +414,12 @@ static int build_synthetic_soc_states(bool disable_dc_mode_overwrite, struct clk
                max_clk_data.dppclk_mhz = max_clk_data.dispclk_mhz;
 
        if (max_clk_data.fclk_mhz == 0)
-               max_clk_data.fclk_mhz = max_clk_data.dcfclk_mhz *
+               max_clk_data.fclk_mhz = (unsigned int)(max_clk_data.dcfclk_mhz *
                                dcn3_21_soc.pct_ideal_sdp_bw_after_urgent /
-                               dcn3_21_soc.pct_ideal_fabric_bw_after_urgent;
+                               dcn3_21_soc.pct_ideal_fabric_bw_after_urgent);
 
        if (max_clk_data.phyclk_mhz == 0)
-               max_clk_data.phyclk_mhz = dcn3_21_soc.clock_limits[0].phyclk_mhz;
+               max_clk_data.phyclk_mhz = (unsigned int)dcn3_21_soc.clock_limits[0].phyclk_mhz;
 
        *num_entries = 0;
        entry.dispclk_mhz = max_clk_data.dispclk_mhz;
@@ -588,12 +588,12 @@ static void dcn321_get_optimal_dcfclk_fclk_for_uclk(unsigned int uclk_mts,
        bw_from_dram = (bw_from_dram1 < bw_from_dram2) ? bw_from_dram1 : bw_from_dram2;
 
        if (optimal_fclk)
-               *optimal_fclk = bw_from_dram /
-               (dcn3_21_soc.fabric_datapath_to_dcn_data_return_bytes * (dcn3_21_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_fclk = (unsigned int)(bw_from_dram /
+               (dcn3_21_soc.fabric_datapath_to_dcn_data_return_bytes * (dcn3_21_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 
        if (optimal_dcfclk)
-               *optimal_dcfclk =  bw_from_dram /
-               (dcn3_21_soc.return_bus_width_bytes * (dcn3_21_soc.max_avg_sdp_bw_use_normal_percent / 100));
+               *optimal_dcfclk =  (unsigned int)(bw_from_dram /
+               (dcn3_21_soc.return_bus_width_bytes * (dcn3_21_soc.max_avg_sdp_bw_use_normal_percent / 100)));
 }
 
 /** dcn321_update_bw_bounding_box
@@ -688,9 +688,12 @@ void dcn321_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_p
                        dc->ctx->dc_bios->vram_info.num_chans) * dc->caps.mall_size_per_mem_channel);
        }
 
-       if (dc->ctx->dc_bios->vram_info.dram_channel_width_bytes)
-               dc->dml2_options.bbox_overrides.dram_chanel_width_bytes =
-               dcn3_21_soc.dram_channel_width_bytes = dc->ctx->dc_bios->vram_info.dram_channel_width_bytes;
+       if (dc->ctx->dc_bios->vram_info.dram_channel_width_bytes) {
+               unsigned int dram_channel_width_bytes = (unsigned int)dc->ctx->dc_bios->vram_info.dram_channel_width_bytes;
+
+               dc->dml2_options.bbox_overrides.dram_chanel_width_bytes = dram_channel_width_bytes;
+               dcn3_21_soc.dram_channel_width_bytes = dram_channel_width_bytes;
+       }
 
        /* DML DSC delay factor workaround */
        dcn3_21_ip.dsc_delay_factor_wa = dc->debug.dsc_delay_factor_wa_x1000 / 1000.0;
@@ -729,13 +732,13 @@ void dcn321_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_p
                                max_phyclk_mhz = bw_params->clk_table.entries[i].phyclk_mhz;
                }
                if (!max_dcfclk_mhz)
-                       max_dcfclk_mhz = dcn3_21_soc.clock_limits[0].dcfclk_mhz;
+                       max_dcfclk_mhz = (unsigned int)dcn3_21_soc.clock_limits[0].dcfclk_mhz;
                if (!max_dispclk_mhz)
-                       max_dispclk_mhz = dcn3_21_soc.clock_limits[0].dispclk_mhz;
+                       max_dispclk_mhz = (unsigned int)dcn3_21_soc.clock_limits[0].dispclk_mhz;
                if (!max_dppclk_mhz)
-                       max_dppclk_mhz = dcn3_21_soc.clock_limits[0].dppclk_mhz;
+                       max_dppclk_mhz = (unsigned int)dcn3_21_soc.clock_limits[0].dppclk_mhz;
                if (!max_phyclk_mhz)
-                       max_phyclk_mhz = dcn3_21_soc.clock_limits[0].phyclk_mhz;
+                       max_phyclk_mhz = (unsigned int)dcn3_21_soc.clock_limits[0].phyclk_mhz;
 
                if (max_dcfclk_mhz > dcfclk_sta_targets[num_dcfclk_sta_targets-1]) {
                        // If max DCFCLK is greater than the max DCFCLK STA target, insert into the DCFCLK STA target array
index 7f40048dd67d5821a18ef369de0dd989d5dba8ec..d0de4958b8bd6c68b154932381d17e8ceb09826e 100644 (file)
@@ -357,21 +357,21 @@ void dcn35_update_bw_bounding_box_fpu(struct dc *dc,
                        dc->dml2_options.bbox_overrides.clks_table.num_states =
                                clk_table->num_entries;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dcfclk_mhz =
-                               clock_limits[i].dcfclk_mhz;
+                               (unsigned int)clock_limits[i].dcfclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].fclk_mhz =
-                               clock_limits[i].fabricclk_mhz;
+                               (unsigned int)clock_limits[i].fabricclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dispclk_mhz =
-                               clock_limits[i].dispclk_mhz;
+                               (unsigned int)clock_limits[i].dispclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dppclk_mhz =
-                               clock_limits[i].dppclk_mhz;
+                               (unsigned int)clock_limits[i].dppclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].socclk_mhz =
-                               clock_limits[i].socclk_mhz;
+                               (unsigned int)clock_limits[i].socclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].memclk_mhz =
                                clk_table->entries[i].memclk_mhz * clk_table->entries[i].wck_ratio;
 
-                       dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dram_speed_mts = clock_limits[i].dram_speed_mts;
+                       dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dram_speed_mts = (unsigned int)clock_limits[i].dram_speed_mts;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dtbclk_mhz =
-                               clock_limits[i].dtbclk_mhz;
+                               (unsigned int)clock_limits[i].dtbclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_dcfclk_levels =
                                clk_table->num_entries;
                        dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_fclk_levels =
@@ -415,11 +415,11 @@ static bool is_dual_plane(enum surface_pixel_format format)
 static unsigned int micro_sec_to_vert_lines(unsigned int num_us, struct dc_crtc_timing *timing)
 {
        unsigned int num_lines = 0;
-       unsigned int lines_time_in_ns = 1000.0 *
-                       (((float)timing->h_total * 1000.0) /
-                        ((float)timing->pix_clk_100hz / 10.0));
+       double lines_time_in_ns = 1000.0 *
+                       (((double)timing->h_total * 1000.0) /
+                        ((double)timing->pix_clk_100hz / 10.0));
 
-       num_lines = dml_ceil(1000.0 * num_us / lines_time_in_ns, 1.0);
+       num_lines = (unsigned int)dml_ceil(1000.0 * num_us / lines_time_in_ns, 1.0);
 
        return num_lines;
 }
index 73c2aee57f288898ffba7005d30a907115dfb821..abb03b958599a2118a8c57cda4f57e4a736d888b 100644 (file)
@@ -390,20 +390,20 @@ void dcn351_update_bw_bounding_box_fpu(struct dc *dc,
                        dc->dml2_options.bbox_overrides.clks_table.num_states =
                                clk_table->num_entries;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dcfclk_mhz =
-                               clock_limits[i].dcfclk_mhz;
+                               (unsigned int)clock_limits[i].dcfclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].fclk_mhz =
-                               clock_limits[i].fabricclk_mhz;
+                               (unsigned int)clock_limits[i].fabricclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dispclk_mhz =
-                               clock_limits[i].dispclk_mhz;
+                               (unsigned int)clock_limits[i].dispclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dppclk_mhz =
-                               clock_limits[i].dppclk_mhz;
+                               (unsigned int)clock_limits[i].dppclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].socclk_mhz =
-                               clock_limits[i].socclk_mhz;
+                               (unsigned int)clock_limits[i].socclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].memclk_mhz =
                                clk_table->entries[i].memclk_mhz * clk_table->entries[i].wck_ratio;
-                       dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dram_speed_mts = clock_limits[i].dram_speed_mts;
+                       dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dram_speed_mts = (unsigned int)clock_limits[i].dram_speed_mts;
                        dc->dml2_options.bbox_overrides.clks_table.clk_entries[i].dtbclk_mhz =
-                               clock_limits[i].dtbclk_mhz;
+                               (unsigned int)clock_limits[i].dtbclk_mhz;
                        dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_dcfclk_levels =
                                clk_table->num_entries;
                        dc->dml2_options.bbox_overrides.clks_table.num_entries_per_clk.num_fclk_levels =
@@ -447,11 +447,11 @@ static bool is_dual_plane(enum surface_pixel_format format)
 static unsigned int micro_sec_to_vert_lines(unsigned int num_us, struct dc_crtc_timing *timing)
 {
        unsigned int num_lines = 0;
-       unsigned int lines_time_in_ns = 1000.0 *
-                       (((float)timing->h_total * 1000.0) /
-                        ((float)timing->pix_clk_100hz / 10.0));
+       double lines_time_in_ns = 1000.0 *
+                       (((double)timing->h_total * 1000.0) /
+                        ((double)timing->pix_clk_100hz / 10.0));
 
-       num_lines = dml_ceil(1000.0 * num_us / lines_time_in_ns, 1.0);
+       num_lines = (unsigned int)dml_ceil(1000.0 * num_us / lines_time_in_ns, 1.0);
 
        return num_lines;
 }
index 85453bbb4f9b1347836904a5604ee002d40592d0..6b62d0a95e0ffa7a03b7c97303e430096a157b79 100644 (file)
@@ -246,7 +246,7 @@ unsigned int get_total_surface_size_in_mall_bytes(
                unsigned int num_pipes)
 {
        unsigned int k;
-       unsigned int size = 0.0;
+       unsigned int size = 0;
        recalculate_params(mode_lib, pipes, num_pipes);
        for (k = 0; k < mode_lib->vba.NumberOfActiveSurfaces; ++k)
                size += mode_lib->vba.SurfaceSizeInMALL[k];
@@ -343,7 +343,7 @@ static void fetch_socbb_params(struct display_mode_lib *mode_lib)
        mode_lib->vba.FCLKChangeLatency = soc->fclk_change_latency_us;
        mode_lib->vba.USRRetrainingLatency = soc->usr_retraining_latency_us;
        mode_lib->vba.SMNLatency = soc->smn_latency_us;
-       mode_lib->vba.MALLAllocatedForDCNFinal = soc->mall_allocated_for_dcn_mbytes;
+       mode_lib->vba.MALLAllocatedForDCNFinal = (unsigned int)soc->mall_allocated_for_dcn_mbytes;
 
        mode_lib->vba.PercentOfIdealDRAMBWReceivedAfterUrgLatencySTROBE = soc->pct_ideal_dram_bw_after_urgent_strobe;
        mode_lib->vba.MaxAveragePercentOfIdealFabricBWDisplayCanUseInNormalSystemOperation =
index cf194bcba45513ee960561ef80ac7a63c24b5ae3..ff5cb04db9dd3691feac1f462821635f553db4a2 100644 (file)
@@ -261,12 +261,12 @@ void dml1_extract_rq_regs(
        if (rq_param->yuv420) {
                if ((double) rq_param->misc.rq_l.stored_swath_bytes
                                / (double) rq_param->misc.rq_c.stored_swath_bytes <= 1.5) {
-                       detile_buf_plane1_addr = (detile_buf_size_in_bytes / 2.0 / 64.0); /* half to chroma */
+                       detile_buf_plane1_addr = (unsigned int)(detile_buf_size_in_bytes / 2.0 / 64.0); /* half to chroma */
                } else {
-                       detile_buf_plane1_addr = dml_round_to_multiple(
+                       detile_buf_plane1_addr = (unsigned int)(dml_round_to_multiple(
                                        (unsigned int) ((2.0 * detile_buf_size_in_bytes) / 3.0),
                                        256,
-                                       0) / 64.0; /* 2/3 to chroma */
+                                       0) / 64.0); /* 2/3 to chroma */
                }
        }
        rq_regs->plane1_base_address = detile_buf_plane1_addr;
@@ -447,7 +447,7 @@ static void dml1_rq_dlg_get_row_heights(
         */
        if (tiling != dm_sw_linear)
                log2_blk_height = log2_blk256_height
-                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+                               + (unsigned int)dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
        else
                log2_blk_height = 0; /* blk height of 1 */
 
@@ -522,7 +522,7 @@ static void dml1_rq_dlg_get_row_heights(
         * round the result down to a power of two.
         */
        if (surf_linear) {
-               log2_dpte_row_height_linear = dml_floor(
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(
                                dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch),
                                1);
 
@@ -686,7 +686,7 @@ static void get_surf_rq_param(
         */
        if (pipe_src_param->sw_mode != dm_sw_linear)
                log2_blk_height = log2_blk256_height
-                               + dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
+                               + (unsigned int)dml_ceil((double) (log2_blk_bytes - 8) / 2.0, 1);
        else
                log2_blk_height = 0; /* blk height of 1 */
 
@@ -848,7 +848,7 @@ static void get_surf_rq_param(
         * round the result down to a power of two.
         */
        if (surf_linear) {
-               log2_dpte_row_height_linear = dml_floor(
+               log2_dpte_row_height_linear = (unsigned int)dml_floor(
                                dml_log2(dpte_buf_in_pte_reqs * dpte_req_width / data_pitch),
                                1);
 
@@ -922,7 +922,7 @@ static void get_surf_rq_param(
        /* since dpte groups are only aligned to dpte_req_width and not dpte_group_width,
         * the upper bound for the dpte groups per row is as follows.
         */
-       rq_dlg_param->dpte_groups_per_row_ub = dml_ceil(
+       rq_dlg_param->dpte_groups_per_row_ub = (unsigned int)dml_ceil(
                        (double) dpte_row_width_ub / dpte_group_width,
                        1);
 
@@ -1248,8 +1248,8 @@ void dml1_rq_dlg_get_dlg_params(
 
        dppclk_delay_subtotal = mode_lib->ip.dppclk_delay_subtotal;
        dispclk_delay_subtotal = mode_lib->ip.dispclk_delay_subtotal;
-       pixel_rate_delay_subtotal = dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
-                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz;
+       pixel_rate_delay_subtotal = (unsigned int)(dppclk_delay_subtotal * pclk_freq_in_mhz / dppclk_freq_in_mhz
+                       + dispclk_delay_subtotal * pclk_freq_in_mhz / dispclk_freq_in_mhz);
 
        vstartup_start = e2e_pipe_param->pipe.dest.vstartup_start;
 
@@ -1439,7 +1439,7 @@ void dml1_rq_dlg_get_dlg_params(
        }
 
        disp_dlg_regs->dst_y_after_scaler = dst_y_after_scaler; /* in terms of line */
-       disp_dlg_regs->refcyc_x_after_scaler = dst_x_after_scaler * ref_freq_to_pix_freq; /* in terms of refclk */
+       disp_dlg_regs->refcyc_x_after_scaler = (unsigned int)(dst_x_after_scaler * ref_freq_to_pix_freq); /* in terms of refclk */
        ASSERT(disp_dlg_regs->refcyc_x_after_scaler < (unsigned int) dml_pow(2, 13));
        DTRACE(
                        "DLG: %s: disp_dlg_regs->dst_y_after_scaler      = 0x%0x",
@@ -1576,19 +1576,19 @@ void dml1_rq_dlg_get_dlg_params(
                        / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) dpte_groups_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_pte_group_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_pte_group_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int) ((double) dpte_row_height_c
                        / (double) vratio_c * (double) htotal * ref_freq_to_pix_freq
                        / (double) dpte_groups_per_row_ub_c);
        if (disp_dlg_regs->refcyc_per_pte_group_nom_c >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_pte_group_nom_c = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_pte_group_nom_c = (unsigned int)(dml_pow(2, 23) - 1);
 
        disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int) ((double) meta_row_height_l
                        / (double) vratio_l * (double) htotal * ref_freq_to_pix_freq
                        / (double) meta_chunks_per_row_ub_l);
        if (disp_dlg_regs->refcyc_per_meta_chunk_nom_l >= (unsigned int) dml_pow(2, 23))
-               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = dml_pow(2, 23) - 1;
+               disp_dlg_regs->refcyc_per_meta_chunk_nom_l = (unsigned int)(dml_pow(2, 23) - 1);
 
        if (mode_422) {
                swath_width_pixels_ub_l = swath_width_ub_l * 2; /* *2 for 2 pixel per element */
@@ -1844,7 +1844,7 @@ void dml1_rq_dlg_get_dlg_params(
                                cur0_req_size = 256;
                }
 
-               cur0_req_width = (double) cur0_req_size / ((double) cur0_bit_per_pixel / 8.0);
+               cur0_req_width = (unsigned int)((double) cur0_req_size / ((double) cur0_bit_per_pixel / 8.0));
                cur0_width_ub = dml_ceil((double) cur0_src_width / (double) cur0_req_width, 1)
                                * (double) cur0_req_width;
                cur0_req_per_width = cur0_width_ub / (double) cur0_req_width;
@@ -1917,7 +1917,7 @@ void dml1_rq_dlg_get_dlg_params(
        disp_ttu_regs->qos_ramp_disable_c = 0;
        disp_ttu_regs->qos_ramp_disable_cur0 = 0;
 
-       disp_ttu_regs->min_ttu_vblank = min_ttu_vblank * refclk_freq_in_mhz;
+       disp_ttu_regs->min_ttu_vblank = (unsigned int)(min_ttu_vblank * refclk_freq_in_mhz);
        ASSERT(disp_ttu_regs->min_ttu_vblank < dml_pow(2, 24));
 
        print__ttu_regs_st(mode_lib, disp_ttu_regs);
index ef75eb7d5adc3eb02f4f00a12860c2098e1a534a..b8fc27a5361e8581bd902f5c19c86c13b826a57e 100644 (file)
@@ -96,7 +96,7 @@ static void get_qp_set(qp_set qps, enum colour_mode cm, enum bits_per_comp bpc,
        if (!table)
                return;
 
-       index = (bpp - table[0].bpp) * 2;
+       index = (int)((bpp - table[0].bpp) * 2);
 
        /* requested size is bigger than the table */
        if (index >= table_size) {
@@ -112,50 +112,50 @@ static void get_ofs_set(qp_set ofs, enum colour_mode mode, float bpp)
        int   *p = ofs;
 
        if (mode == CM_444 || mode == CM_RGB) {
-               *p++ = (bpp <=  6) ? (0) : ((((bpp >=  8) && (bpp <= 12))) ? (2) : ((bpp >= 15) ? (10) : ((((bpp > 6) && (bpp < 8))) ? (0 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (2 + dsc_roundf((bpp - 12) * (8 / 3.0))))));
-               *p++ = (bpp <=  6) ? (-2) : ((((bpp >=  8) && (bpp <= 12))) ? (0) : ((bpp >= 15) ? (8) : ((((bpp > 6) && (bpp < 8))) ? (-2 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (0 + dsc_roundf((bpp - 12) * (8 / 3.0))))));
-               *p++ = (bpp <=  6) ? (-2) : ((((bpp >=  8) && (bpp <= 12))) ? (0) : ((bpp >= 15) ? (6) : ((((bpp > 6) && (bpp < 8))) ? (-2 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (0 + dsc_roundf((bpp - 12) * (6 / 3.0))))));
-               *p++ = (bpp <=  6) ? (-4) : ((((bpp >=  8) && (bpp <= 12))) ? (-2) : ((bpp >= 15) ? (4) : ((((bpp > 6) && (bpp < 8))) ? (-4 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (-2 + dsc_roundf((bpp - 12) * (6 / 3.0))))));
-               *p++ = (bpp <=  6) ? (-6) : ((((bpp >=  8) && (bpp <= 12))) ? (-4) : ((bpp >= 15) ? (2) : ((((bpp > 6) && (bpp < 8))) ? (-6 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (-4 + dsc_roundf((bpp - 12) * (6 / 3.0))))));
-               *p++ = (bpp <= 12) ? (-6) : ((bpp >= 15) ? (0) : (-6 + dsc_roundf((bpp - 12) * (6 / 3.0))));
-               *p++ = (bpp <= 12) ? (-8) : ((bpp >= 15) ? (-2) : (-8 + dsc_roundf((bpp - 12) * (6 / 3.0))));
-               *p++ = (bpp <= 12) ? (-8) : ((bpp >= 15) ? (-4) : (-8 + dsc_roundf((bpp - 12) * (4 / 3.0))));
-               *p++ = (bpp <= 12) ? (-8) : ((bpp >= 15) ? (-6) : (-8 + dsc_roundf((bpp - 12) * (2 / 3.0))));
-               *p++ = (bpp <= 12) ? (-10) : ((bpp >= 15) ? (-8) : (-10 + dsc_roundf((bpp - 12) * (2 / 3.0))));
+               *p++ = (int)((bpp <=  6) ? (0) : ((((bpp >=  8) && (bpp <= 12))) ? (2) : ((bpp >= 15) ? (10) : ((((bpp > 6) && (bpp < 8))) ? (0 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (2 + dsc_roundf((bpp - 12) * (8 / 3.0)))))));
+               *p++ = (int)((bpp <=  6) ? (-2) : ((((bpp >=  8) && (bpp <= 12))) ? (0) : ((bpp >= 15) ? (8) : ((((bpp > 6) && (bpp < 8))) ? (-2 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (0 + dsc_roundf((bpp - 12) * (8 / 3.0)))))));
+               *p++ = (int)((bpp <=  6) ? (-2) : ((((bpp >=  8) && (bpp <= 12))) ? (0) : ((bpp >= 15) ? (6) : ((((bpp > 6) && (bpp < 8))) ? (-2 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (0 + dsc_roundf((bpp - 12) * (6 / 3.0)))))));
+               *p++ = (int)((bpp <=  6) ? (-4) : ((((bpp >=  8) && (bpp <= 12))) ? (-2) : ((bpp >= 15) ? (4) : ((((bpp > 6) && (bpp < 8))) ? (-4 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (-2 + dsc_roundf((bpp - 12) * (6 / 3.0)))))));
+               *p++ = (int)((bpp <=  6) ? (-6) : ((((bpp >=  8) && (bpp <= 12))) ? (-4) : ((bpp >= 15) ? (2) : ((((bpp > 6) && (bpp < 8))) ? (-6 + dsc_roundf((bpp -  6) * (2 / 2.0))) : (-4 + dsc_roundf((bpp - 12) * (6 / 3.0)))))));
+               *p++ = (int)((bpp <= 12) ? (-6) : ((bpp >= 15) ? (0) : (-6 + dsc_roundf((bpp - 12) * (6 / 3.0)))));
+               *p++ = (int)((bpp <= 12) ? (-8) : ((bpp >= 15) ? (-2) : (-8 + dsc_roundf((bpp - 12) * (6 / 3.0)))));
+               *p++ = (int)((bpp <= 12) ? (-8) : ((bpp >= 15) ? (-4) : (-8 + dsc_roundf((bpp - 12) * (4 / 3.0)))));
+               *p++ = (int)((bpp <= 12) ? (-8) : ((bpp >= 15) ? (-6) : (-8 + dsc_roundf((bpp - 12) * (2 / 3.0)))));
+               *p++ = (int)((bpp <= 12) ? (-10) : ((bpp >= 15) ? (-8) : (-10 + dsc_roundf((bpp - 12) * (2 / 3.0)))));
                *p++ = -10;
-               *p++ = (bpp <=  6) ? (-12) : ((bpp >=  8) ? (-10) : (-12 + dsc_roundf((bpp -  6) * (2 / 2.0))));
+               *p++ = (int)((bpp <=  6) ? (-12) : ((bpp >=  8) ? (-10) : (-12 + dsc_roundf((bpp -  6) * (2 / 2.0)))));
                *p++ = -12;
                *p++ = -12;
                *p++ = -12;
        } else if (mode == CM_422) {
-               *p++ = (bpp <=  8) ? (2) : ((bpp >= 10) ? (10) : (2 + dsc_roundf((bpp -  8) * (8 / 2.0))));
-               *p++ = (bpp <=  8) ? (0) : ((bpp >= 10) ? (8) : (0 + dsc_roundf((bpp -  8) * (8 / 2.0))));
-               *p++ = (bpp <=  8) ? (0) : ((bpp >= 10) ? (6) : (0 + dsc_roundf((bpp -  8) * (6 / 2.0))));
-               *p++ = (bpp <=  8) ? (-2) : ((bpp >= 10) ? (4) : (-2 + dsc_roundf((bpp -  8) * (6 / 2.0))));
-               *p++ = (bpp <=  8) ? (-4) : ((bpp >= 10) ? (2) : (-4 + dsc_roundf((bpp -  8) * (6 / 2.0))));
-               *p++ = (bpp <=  8) ? (-6) : ((bpp >= 10) ? (0) : (-6 + dsc_roundf((bpp -  8) * (6 / 2.0))));
-               *p++ = (bpp <=  8) ? (-8) : ((bpp >= 10) ? (-2) : (-8 + dsc_roundf((bpp -  8) * (6 / 2.0))));
-               *p++ = (bpp <=  8) ? (-8) : ((bpp >= 10) ? (-4) : (-8 + dsc_roundf((bpp -  8) * (4 / 2.0))));
-               *p++ = (bpp <=  8) ? (-8) : ((bpp >= 10) ? (-6) : (-8 + dsc_roundf((bpp -  8) * (2 / 2.0))));
-               *p++ = (bpp <=  8) ? (-10) : ((bpp >= 10) ? (-8) : (-10 + dsc_roundf((bpp -  8) * (2 / 2.0))));
+               *p++ = (int)((bpp <=  8) ? (2) : ((bpp >= 10) ? (10) : (2 + dsc_roundf((bpp -  8) * (8 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (0) : ((bpp >= 10) ? (8) : (0 + dsc_roundf((bpp -  8) * (8 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (0) : ((bpp >= 10) ? (6) : (0 + dsc_roundf((bpp -  8) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-2) : ((bpp >= 10) ? (4) : (-2 + dsc_roundf((bpp -  8) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-4) : ((bpp >= 10) ? (2) : (-4 + dsc_roundf((bpp -  8) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-6) : ((bpp >= 10) ? (0) : (-6 + dsc_roundf((bpp -  8) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-8) : ((bpp >= 10) ? (-2) : (-8 + dsc_roundf((bpp -  8) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-8) : ((bpp >= 10) ? (-4) : (-8 + dsc_roundf((bpp -  8) * (4 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-8) : ((bpp >= 10) ? (-6) : (-8 + dsc_roundf((bpp -  8) * (2 / 2.0)))));
+               *p++ = (int)((bpp <=  8) ? (-10) : ((bpp >= 10) ? (-8) : (-10 + dsc_roundf((bpp -  8) * (2 / 2.0)))));
                *p++ = -10;
-               *p++ = (bpp <=  6) ? (-12) : ((bpp >= 7) ? (-10) : (-12 + dsc_roundf((bpp -  6) * (2.0 / 1))));
+               *p++ = (int)((bpp <=  6) ? (-12) : ((bpp >= 7) ? (-10) : (-12 + dsc_roundf((bpp -  6) * (2.0 / 1)))));
                *p++ = -12;
                *p++ = -12;
                *p++ = -12;
        } else {
-               *p++ = (bpp <=  6) ? (2) : ((bpp >=  8) ? (10) : (2 + dsc_roundf((bpp -  6) * (8 / 2.0))));
-               *p++ = (bpp <=  6) ? (0) : ((bpp >=  8) ? (8) : (0 + dsc_roundf((bpp -  6) * (8 / 2.0))));
-               *p++ = (bpp <=  6) ? (0) : ((bpp >=  8) ? (6) : (0 + dsc_roundf((bpp -  6) * (6 / 2.0))));
-               *p++ = (bpp <=  6) ? (-2) : ((bpp >=  8) ? (4) : (-2 + dsc_roundf((bpp -  6) * (6 / 2.0))));
-               *p++ = (bpp <=  6) ? (-4) : ((bpp >=  8) ? (2) : (-4 + dsc_roundf((bpp -  6) * (6 / 2.0))));
-               *p++ = (bpp <=  6) ? (-6) : ((bpp >=  8) ? (0) : (-6 + dsc_roundf((bpp -  6) * (6 / 2.0))));
-               *p++ = (bpp <=  6) ? (-8) : ((bpp >=  8) ? (-2) : (-8 + dsc_roundf((bpp -  6) * (6 / 2.0))));
-               *p++ = (bpp <=  6) ? (-8) : ((bpp >=  8) ? (-4) : (-8 + dsc_roundf((bpp -  6) * (4 / 2.0))));
-               *p++ = (bpp <=  6) ? (-8) : ((bpp >=  8) ? (-6) : (-8 + dsc_roundf((bpp -  6) * (2 / 2.0))));
-               *p++ = (bpp <=  6) ? (-10) : ((bpp >=  8) ? (-8) : (-10 + dsc_roundf((bpp -  6) * (2 / 2.0))));
+               *p++ = (int)((bpp <=  6) ? (2) : ((bpp >=  8) ? (10) : (2 + dsc_roundf((bpp -  6) * (8 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (0) : ((bpp >=  8) ? (8) : (0 + dsc_roundf((bpp -  6) * (8 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (0) : ((bpp >=  8) ? (6) : (0 + dsc_roundf((bpp -  6) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-2) : ((bpp >=  8) ? (4) : (-2 + dsc_roundf((bpp -  6) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-4) : ((bpp >=  8) ? (2) : (-4 + dsc_roundf((bpp -  6) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-6) : ((bpp >=  8) ? (0) : (-6 + dsc_roundf((bpp -  6) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-8) : ((bpp >=  8) ? (-2) : (-8 + dsc_roundf((bpp -  6) * (6 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-8) : ((bpp >=  8) ? (-4) : (-8 + dsc_roundf((bpp -  6) * (4 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-8) : ((bpp >=  8) ? (-6) : (-8 + dsc_roundf((bpp -  6) * (2 / 2.0)))));
+               *p++ = (int)((bpp <=  6) ? (-10) : ((bpp >=  8) ? (-8) : (-10 + dsc_roundf((bpp -  6) * (2 / 2.0)))));
                *p++ = -10;
-               *p++ = (bpp <=  4) ? (-12) : ((bpp >=  5) ? (-10) : (-12 + dsc_roundf((bpp -  4) * (2 / 1.0))));
+               *p++ = (int)((bpp <=  4) ? (-12) : ((bpp >=  5) ? (-10) : (-12 + dsc_roundf((bpp -  4) * (2 / 1.0)))));
                *p++ = -12;
                *p++ = -12;
                *p++ = -12;
@@ -179,7 +179,7 @@ void _do_calc_rc_params(struct rc_params *rc,
 
        dc_assert_fp_enabled();
 
-       bpp = ((float)drm_bpp / 16.0);
+       bpp = (float)((float)drm_bpp / 16.0);
        /* in native_422 or native_420 modes, the bits_per_pixel is double the
         * target bpp (the latter is what calc_rc_params expects)
         */
@@ -189,29 +189,29 @@ void _do_calc_rc_params(struct rc_params *rc,
        rc->rc_quant_incr_limit0 = ((bpc == BPC_8) ? 11 : (bpc == BPC_10 ? 15 : 19)) - ((minor_version == 1 && cm == CM_444) ? 1 : 0);
        rc->rc_quant_incr_limit1 = ((bpc == BPC_8) ? 11 : (bpc == BPC_10 ? 15 : 19)) - ((minor_version == 1 && cm == CM_444) ? 1 : 0);
 
-       bpp_group = MODE_SELECT(bpp, bpp * 2.0, bpp * 2.0);
+       bpp_group = MODE_SELECT(bpp, bpp * 2.0f, bpp * 2.0f);
 
        switch (cm) {
        case CM_420:
-               rc->initial_fullness_offset = (bpp >=  6) ? (2048) : ((bpp <=  4) ? (6144) : ((((bpp >  4) && (bpp <=  5))) ? (6144 - dsc_roundf((bpp - 4) * (512))) : (5632 - dsc_roundf((bpp -  5) * (3584)))));
+               rc->initial_fullness_offset = (int)((bpp >=  6) ? (2048) : ((bpp <=  4) ? (6144) : ((((bpp >  4) && (bpp <=  5))) ? (6144 - dsc_roundf((bpp - 4) * (512))) : (5632 - dsc_roundf((bpp -  5) * (3584))))));
                rc->first_line_bpg_offset   = median3(0, (12 + (int) (0.09 *  min(34, slice_height - 8))), (int)((3 * bpc * 3) - (3 * bpp_group)));
                rc->second_line_bpg_offset  = median3(0, 12, (int)((3 * bpc * 3) - (3 * bpp_group)));
                break;
        case CM_422:
-               rc->initial_fullness_offset = (bpp >=  8) ? (2048) : ((bpp <=  7) ? (5632) : (5632 - dsc_roundf((bpp - 7) * (3584))));
+               rc->initial_fullness_offset = (int)((bpp >=  8) ? (2048) : ((bpp <=  7) ? (5632) : (5632 - dsc_roundf((bpp - 7) * (3584)))));
                rc->first_line_bpg_offset   = median3(0, (12 + (int) (0.09 *  min(34, slice_height - 8))), (int)((3 * bpc * 4) - (3 * bpp_group)));
                rc->second_line_bpg_offset  = 0;
                break;
        case CM_444:
        case CM_RGB:
-               rc->initial_fullness_offset = (bpp >= 12) ? (2048) : ((bpp <=  8) ? (6144) : ((((bpp >  8) && (bpp <= 10))) ? (6144 - dsc_roundf((bpp - 8) * (512 / 2))) : (5632 - dsc_roundf((bpp - 10) * (3584 / 2)))));
+               rc->initial_fullness_offset = (int)((bpp >= 12) ? (2048) : ((bpp <=  8) ? (6144) : ((((bpp >  8) && (bpp <= 10))) ? (6144 - dsc_roundf((bpp - 8) * (512 / 2))) : (5632 - dsc_roundf((bpp - 10) * (3584 / 2))))));
                rc->first_line_bpg_offset   = median3(0, (12 + (int) (0.09 *  min(34, slice_height - 8))), (int)(((3 * bpc + (cm == CM_444 ? 0 : 2)) * 3) - (3 * bpp_group)));
                rc->second_line_bpg_offset  = 0;
                break;
        }
 
-       initial_xmit_delay_factor = (cm == CM_444 || cm == CM_RGB) ? 1.0 : 2.0;
-       rc->initial_xmit_delay = dsc_roundf(8192.0/2.0/bpp/initial_xmit_delay_factor);
+       initial_xmit_delay_factor = (float)((cm == CM_444 || cm == CM_RGB) ? 1.0 : 2.0);
+       rc->initial_xmit_delay = (int)dsc_roundf(8192.0/2.0/bpp/initial_xmit_delay_factor);
 
        if (cm == CM_422 || cm == CM_420)
                slice_width /= 2;