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()
141 timing->vic == 0 && timing->hdmi_vic == 0 && in dc_bandwidth_in_kbps_from_timing()
142 timing->frl_uncompressed_video_bandwidth_in_kbps != 0) in dc_bandwidth_in_kbps_from_timing()
143 kbps = timing->frl_uncompressed_video_bandwidth_in_kbps; in dc_bandwidth_in_kbps_from_timing()
154 const struct dc_crtc_timing *timing,
160 const struct dc_crtc_timing *timing,
180 const struct dc_crtc_timing *timing,
444 * timing's pixel clock and uncompressed bandwidth.
453 const struct dc_crtc_timing *timing, in dc_dsc_compute_bandwidth_range() argument
467 get_dsc_enc_caps(dsc, &dsc_enc_caps, timing->pix_clk_100hz); in dc_dsc_compute_bandwidth_range()
470 timing->pixel_encoding, &dsc_common_caps); in dc_dsc_compute_bandwidth_range()
473 is_dsc_possible = setup_dsc_config(dsc_sink_caps, &dsc_enc_caps, 0, timing, in dc_dsc_compute_bandwidth_range()
478 config.num_slices_h, &dsc_common_caps, timing, link_encoding, range); in dc_dsc_compute_bandwidth_range()
586 const struct dc_crtc_timing *timing, in compute_bpp_x16_from_target_bandwidth() argument
596 timing, num_slices_h, is_dp); in compute_bpp_x16_from_target_bandwidth()
601 bpp_x16 = dc_fixpt_div_int(bpp_x16, timing->pix_clk_100hz); in compute_bpp_x16_from_target_bandwidth()
608 /* Decide DSC bandwidth range based on signal, timing, specs specific and input min and max
611 * and native timing bandwidth requirement when DSC is not used.
618 const struct dc_crtc_timing *timing, in decide_dsc_bandwidth_range() argument
622 uint32_t preferred_bpp_x16 = timing->dsc_fixed_bits_per_pixel_x16; in decide_dsc_bandwidth_range()
626 /* apply signal, timing, specs and explicitly specified DSC range requirements */ in decide_dsc_bandwidth_range()
649 range->stream_kbps = dc_bandwidth_in_kbps_from_timing(timing, link_encoding); in decide_dsc_bandwidth_range()
652 range->max_kbps = dc_dsc_stream_bandwidth_in_kbps(timing, in decide_dsc_bandwidth_range()
656 range->min_kbps = dc_dsc_stream_bandwidth_in_kbps(timing, in decide_dsc_bandwidth_range()
674 const struct dc_crtc_timing *timing, in decide_dsc_target_bpp_x16() argument
684 num_slices_h, dsc_common_caps, timing, link_encoding, &range)) { in decide_dsc_target_bpp_x16()
695 target_bandwidth_kbps, timing, num_slices_h, in decide_dsc_target_bpp_x16()
851 * timing - The stream timing to fit into 'target_bandwidth_kbps' or apply
859 …* dsc_stream_bitrate_kbps = (int)ceil(timing->pix_clk_khz * dsc_cfg.bits_per…
865 const struct dc_crtc_timing *timing, in setup_dsc_config() argument
886 …dc_dsc_get_policy_for_timing(timing, options->max_target_bpp_limit_override_x16, &policy, link_enc… in setup_dsc_config()
887 pic_width = timing->h_addressable + timing->h_border_left + timing->h_border_right; in setup_dsc_config()
888 pic_height = timing->v_addressable + timing->v_border_top + timing->v_border_bottom; in setup_dsc_config()
897 …is_dsc_possible = intersect_dsc_caps(dsc_sink_caps, dsc_enc_caps, timing->pixel_encoding, &dsc_com… in setup_dsc_config()
903 // Validate available DSC settings against the mode timing in setup_dsc_config()
907 switch (timing->pixel_encoding) { in setup_dsc_config()
938 …if (branch_max_throughput_mps && dsc_div_by_10_round_up(timing->pix_clk_100hz) > branch_max_throug… in setup_dsc_config()
945 switch (timing->display_color_depth) { in setup_dsc_config()
983 int pix_clk_per_slice_khz = dsc_div_by_10_round_up(timing->pix_clk_100hz) / min_slices_h; in setup_dsc_config()
1065 (timing->pixel_encoding == PIXEL_ENCODING_YCBCR420 && slice_height % 2 != 0))) in setup_dsc_config()
1068 …if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR420) // For the case when pic_height < dsc_polic… in setup_dsc_config()
1087 timing, in setup_dsc_config()
1117 const struct dc_crtc_timing *timing, in dc_dsc_compute_config() argument
1124 get_dsc_enc_caps(dsc, &dsc_enc_caps, timing->pix_clk_100hz); in dc_dsc_compute_config()
1128 timing, options, link_encoding, dsc_cfg); in dc_dsc_compute_config()
1132 uint32_t dc_dsc_stream_bandwidth_in_kbps(const struct dc_crtc_timing *timing, in dc_dsc_stream_bandwidth_in_kbps() argument
1140 timing, num_slices_h, is_dp); in dc_dsc_stream_bandwidth_in_kbps()
1142 actual_bandwidth_in_kbps = dc_fixpt_from_fraction(timing->pix_clk_100hz, 10); in dc_dsc_stream_bandwidth_in_kbps()
1149 const struct dc_crtc_timing *timing, in dc_dsc_stream_bandwidth_overhead_in_kbps() argument
1160 refresh_rate = dc_fixpt_from_int(timing->pix_clk_100hz); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1161 refresh_rate = dc_fixpt_div_int(refresh_rate, timing->h_total); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1162 refresh_rate = dc_fixpt_div_int(refresh_rate, timing->v_total); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1166 max_dsc_overhead = dc_fixpt_mul_int(max_dsc_overhead, timing->v_total); in dc_dsc_stream_bandwidth_overhead_in_kbps()
1174 void dc_dsc_get_policy_for_timing(const struct dc_crtc_timing *timing, in dc_dsc_get_policy_for_timing() argument
1200 switch (timing->display_color_depth) { in dc_dsc_get_policy_for_timing()
1213 switch (timing->pixel_encoding) { in dc_dsc_get_policy_for_timing()