Lines Matching refs:dsc_cfg
71 static void copy_rc_to_cfg(struct drm_dsc_config *dsc_cfg, const struct rc_params *rc)
75 dsc_cfg->rc_quant_incr_limit0 = rc->rc_quant_incr_limit0;
76 dsc_cfg->rc_quant_incr_limit1 = rc->rc_quant_incr_limit1;
77 dsc_cfg->initial_offset = rc->initial_fullness_offset;
78 dsc_cfg->initial_xmit_delay = rc->initial_xmit_delay;
79 dsc_cfg->first_line_bpg_offset = rc->first_line_bpg_offset;
80 dsc_cfg->second_line_bpg_offset = rc->second_line_bpg_offset;
81 dsc_cfg->flatness_min_qp = rc->flatness_min_qp;
82 dsc_cfg->flatness_max_qp = rc->flatness_max_qp;
84 dsc_cfg->rc_range_params[i].range_min_qp = rc->qp_min[i];
85 dsc_cfg->rc_range_params[i].range_max_qp = rc->qp_max[i];
87 dsc_cfg->rc_range_params[i].range_bpg_offset = 0x3f & rc->ofs[i];
89 dsc_cfg->rc_model_size = rc->rc_model_size;
90 dsc_cfg->rc_edge_factor = rc->rc_edge_factor;
91 dsc_cfg->rc_tgt_offset_high = rc->rc_tgt_offset_hi;
92 dsc_cfg->rc_tgt_offset_low = rc->rc_tgt_offset_lo;
95 dsc_cfg->rc_buf_thresh[i] = rc->rc_buf_thresh[i];
103 struct drm_dsc_config dsc_cfg;
109 copy_pps_fields(&dsc_cfg, &dsc_params->pps);
110 copy_rc_to_cfg(&dsc_cfg, rc);
112 dsc_cfg.mux_word_size = dsc_params->pps.bits_per_component <= 10 ? 48 : 64;
114 ret = drm_dsc_compute_rc_parameters(&dsc_cfg);
115 tmp = (unsigned long long)dsc_cfg.slice_chunk_size * 0x10000000 + (dsc_cfg.slice_width - 1);
116 do_div(tmp, (uint32_t)dsc_cfg.slice_width); //ROUND-UP
119 copy_pps_fields(&dsc_params->pps, &dsc_cfg);
120 dsc_params->rc_buffer_model_size = dsc_cfg.rc_bits;