Lines Matching full:dsc

28 #include "dsc.h"
35 /* default DSC policy target bitrate limit is 16bpp */
38 /* default DSC policy enables DSC only when needed */
63 if (!timing->flags.DSC) { in apply_128b_132b_stream_overhead()
94 if (timing->flags.DSC) in dc_bandwidth_in_kbps_from_timing()
166 const struct display_stream_compressor *dsc,
202 dm_error("%s: DPCD DSC buffer size not recognized.\n", __func__); in dsc_buff_block_size_from_dpcd()
218 dm_error("%s: DPCD DSC buffer depth not recognized.\n", __func__); in dsc_line_buff_depth_from_dpcd()
278 dm_error("%s: DPCD DSC throughput mode not recognized.\n", __func__); in dsc_throughput_from_dpcd()
309 dm_error("%s: DPCD DSC bits-per-pixel increment not recognized.\n", __func__); in dsc_bpp_increment_div_from_dpcd()
405 …if (dpcd_dsc_branch_decoder_caps == NULL) { // branch decoder DPCD DSC data can be null for non br… in dc_dsc_parse_dsc_dpcd()
443 /* If DSC is possbile, get DSC bandwidth range based on [min_bpp, max_bpp] target bitrate range and
445 * If DSC is not possible, leave '*range' untouched.
448 const struct display_stream_compressor *dsc, 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()
484 const struct display_stream_compressor *dsc, in get_dsc_enc_caps() argument
488 // This is a static HW query, so we can use any DSC in get_dsc_enc_caps()
491 if (dsc) { in get_dsc_enc_caps()
492 if (!dsc->ctx->dc->debug.disable_dsc) in get_dsc_enc_caps()
493 dsc->funcs->dsc_get_enc_caps(dsc_enc_caps, pixel_clock_100Hz); in get_dsc_enc_caps()
494 if (dsc->ctx->dc->debug.native422_support) in get_dsc_enc_caps()
570 …// TODO DSC: Remove this workaround for N422 and 420 once it's fixed, or move it to get_dsc_encode… in intersect_dsc_caps()
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.
626 /* apply signal, timing, specs and explicitly specified DSC range requirements */ in decide_dsc_bandwidth_range()
651 /* max dsc target bpp */ in decide_dsc_bandwidth_range()
655 /* min dsc target bpp */ in decide_dsc_bandwidth_range()
663 /* Decides if DSC should be used and calculates target bpp if it should, applying DSC policy.
667 * - 'false' if target bpp cannot be decided (e.g. cannot fit even with min DSC bpp),
687 /* enable max bpp even dsc is not needed */ in decide_dsc_target_bpp_x16()
839 /* Attempts to set DSC configuration for the stream, applying DSC policy.
844 * dsc_sink_caps - DSC sink decoder capabilities (from DPCD)
846 * dsc_enc_caps - DSC encoder capabilities
854 * dsc_cfg - DSC configuration to use if it was possible to come up with
856 * The target bitrate after DSC can be calculated by multiplying
896 // Intersect decoder with encoder DSC caps and validate DSC settings in setup_dsc_config()
903 // Validate available DSC settings against the mode timing in setup_dsc_config()
993 min_slices_h = 0; // DSC TODO: Maybe try increasing the number of slices first? in setup_dsc_config()
1022 // When we force ODM, num dsc h slices must be divisible by num odm h slices in setup_dsc_config()
1096 // Final decission: can we do DSC or not? in setup_dsc_config()
1098 // Fill out the rest of DSC settings in setup_dsc_config()
1113 const struct display_stream_compressor *dsc, in dc_dsc_compute_config() argument
1124 get_dsc_enc_caps(dsc, &dsc_enc_caps, timing->pix_clk_100hz); in dc_dsc_compute_config()
1184 /* DSC Policy: Use minimum number of slices that fits the pixel clock */ in dc_dsc_get_policy_for_timing()
1187 /* DSC Policy: Use max available slices in dc_dsc_get_policy_for_timing()
1192 /* DSC Policy: Use slice height recommended in dc_dsc_get_policy_for_timing()
1193 * by VESA DSC Spreadsheet user guide in dc_dsc_get_policy_for_timing()
1197 /* DSC Policy: follow DP specs with an internal upper limit to 16 bpp in dc_dsc_get_policy_for_timing()
1240 /* enable DSC when not needed, default false */ in dc_dsc_get_policy_for_timing()