Lines Matching full:timing
56 const struct dc_crtc_timing *timing, const uint32_t kbps) in apply_128b_132b_stream_overhead() argument
63 if (!timing->flags.DSC) { in apply_128b_132b_stream_overhead()
68 bpp = dc_fixpt_div_int(bpp, timing->pix_clk_100hz / 10); in apply_128b_132b_stream_overhead()
73 overhead_factor = dc_fixpt_from_int(timing->h_addressable); in apply_128b_132b_stream_overhead()
88 const struct dc_crtc_timing *timing, in dc_bandwidth_in_kbps_from_timing() argument
94 if (timing->flags.DSC) in dc_bandwidth_in_kbps_from_timing()
95 return dc_dsc_stream_bandwidth_in_kbps(timing, in dc_bandwidth_in_kbps_from_timing()
96 timing->dsc_cfg.bits_per_pixel, in dc_bandwidth_in_kbps_from_timing()
97 timing->dsc_cfg.num_slices_h, in dc_bandwidth_in_kbps_from_timing()
98 timing->dsc_cfg.is_dp); in dc_bandwidth_in_kbps_from_timing()
100 switch (timing->display_color_depth) { in dc_bandwidth_in_kbps_from_timing()
125 kbps = timing->pix_clk_100hz / 10; in dc_bandwidth_in_kbps_from_timing()
128 if (timing->flags.Y_ONLY != 1) { in dc_bandwidth_in_kbps_from_timing()
131 if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR420) in dc_bandwidth_in_kbps_from_timing()
133 else if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422) in dc_bandwidth_in_kbps_from_timing()
138 kbps = apply_128b_132b_stream_overhead(timing, kbps); in dc_bandwidth_in_kbps_from_timing()
150 const struct dc_crtc_timing *timing,
156 const struct dc_crtc_timing *timing,
176 const struct dc_crtc_timing *timing,
440 * timing's pixel clock and uncompressed bandwidth.
449 const struct dc_crtc_timing *timing, in dc_dsc_compute_bandwidth_range() argument
463 get_dsc_enc_caps(dsc, &dsc_enc_caps, timing->pix_clk_100hz); in dc_dsc_compute_bandwidth_range()
466 timing->pixel_encoding, &dsc_common_caps); in dc_dsc_compute_bandwidth_range()
469 is_dsc_possible = setup_dsc_config(dsc_sink_caps, &dsc_enc_caps, 0, timing, in dc_dsc_compute_bandwidth_range()
474 config.num_slices_h, &dsc_common_caps, timing, link_encoding, range); in dc_dsc_compute_bandwidth_range()
582 const struct dc_crtc_timing *timing, in compute_bpp_x16_from_target_bandwidth() argument
592 timing, num_slices_h, is_dp); in compute_bpp_x16_from_target_bandwidth()
597 bpp_x16 = dc_fixpt_div_int(bpp_x16, timing->pix_clk_100hz); in compute_bpp_x16_from_target_bandwidth()
604 /* Decide DSC bandwidth range based on signal, timing, specs specific and input min and max
607 * and native timing bandwidth requirement when DSC is not used.
614 const struct dc_crtc_timing *timing, in decide_dsc_bandwidth_range() argument
618 uint32_t preferred_bpp_x16 = timing->dsc_fixed_bits_per_pixel_x16; in decide_dsc_bandwidth_range()
622 /* apply signal, timing, specs and explicitly specified DSC range requirements */ in decide_dsc_bandwidth_range()
645 range->stream_kbps = dc_bandwidth_in_kbps_from_timing(timing, link_encoding); in decide_dsc_bandwidth_range()
648 range->max_kbps = dc_dsc_stream_bandwidth_in_kbps(timing, in decide_dsc_bandwidth_range()
652 range->min_kbps = dc_dsc_stream_bandwidth_in_kbps(timing, in decide_dsc_bandwidth_range()
669 const struct dc_crtc_timing *timing, in decide_dsc_target_bpp_x16() argument
679 num_slices_h, dsc_common_caps, timing, link_encoding, &range)) { in decide_dsc_target_bpp_x16()
690 target_bandwidth_kbps, timing, num_slices_h, in decide_dsc_target_bpp_x16()
846 * timing - The stream timing to fit into 'target_bandwidth_kbps' or apply
854 …* dsc_stream_bitrate_kbps = (int)ceil(timing->pix_clk_khz * dsc_cfg.bits_per…
860 const struct dc_crtc_timing *timing, in setup_dsc_config() argument
881 dc_dsc_get_policy_for_timing(timing, options->max_target_bpp_limit_override_x16, &policy); in setup_dsc_config()
882 pic_width = timing->h_addressable + timing->h_border_left + timing->h_border_right; in setup_dsc_config()
883 pic_height = timing->v_addressable + timing->v_border_top + timing->v_border_bottom; in setup_dsc_config()
892 …is_dsc_possible = intersect_dsc_caps(dsc_sink_caps, dsc_enc_caps, timing->pixel_encoding, &dsc_com… in setup_dsc_config()
898 // Validate available DSC settings against the mode timing in setup_dsc_config()
902 switch (timing->pixel_encoding) { in setup_dsc_config()
933 …if (branch_max_throughput_mps && dsc_div_by_10_round_up(timing->pix_clk_100hz) > branch_max_throug… in setup_dsc_config()
940 switch (timing->display_color_depth) { in setup_dsc_config()
978 int pix_clk_per_slice_khz = dsc_div_by_10_round_up(timing->pix_clk_100hz) / min_slices_h; in setup_dsc_config()
1044 (timing->pixel_encoding == PIXEL_ENCODING_YCBCR420 && slice_height % 2 != 0))) in setup_dsc_config()
1047 …if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR420) // For the case when pic_height < dsc_polic… in setup_dsc_config()
1060 timing, in setup_dsc_config()
1090 const struct dc_crtc_timing *timing, in dc_dsc_compute_config() argument
1097 get_dsc_enc_caps(dsc, &dsc_enc_caps, timing->pix_clk_100hz); in dc_dsc_compute_config()
1101 timing, options, link_encoding, dsc_cfg); in dc_dsc_compute_config()
1105 uint32_t dc_dsc_stream_bandwidth_in_kbps(const struct dc_crtc_timing *timing, in dc_dsc_stream_bandwidth_in_kbps() argument
1113 timing, num_slices_h, is_dp); in dc_dsc_stream_bandwidth_in_kbps()
1115 actual_bandwidth_in_kbps = dc_fixpt_from_fraction(timing->pix_clk_100hz, 10); in dc_dsc_stream_bandwidth_in_kbps()
1122 const struct dc_crtc_timing *timing, in dc_dsc_stream_bandwidth_overhead_in_kbps() argument
1133 refresh_rate = dc_fixpt_from_int(timing->pix_clk_100hz); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1134 refresh_rate = dc_fixpt_div_int(refresh_rate, timing->h_total); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1135 refresh_rate = dc_fixpt_div_int(refresh_rate, timing->v_total); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1139 max_dsc_overhead = dc_fixpt_mul_int(max_dsc_overhead, timing->v_total); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1147 void dc_dsc_get_policy_for_timing(const struct dc_crtc_timing *timing, in dc_dsc_get_policy_for_timing() argument
1172 switch (timing->display_color_depth) { in dc_dsc_get_policy_for_timing()
1185 switch (timing->pixel_encoding) { in dc_dsc_get_policy_for_timing()