Lines Matching full:dsc

140  * @hw_dsc:		Handle to the DSC blocks used for the display.
141 * @dsc_mask: Bitmask of used DSC blocks.
171 * @dsc: drm_dsc_config pointer, for DSC-enabled encoders
215 /* DSC configuration */
216 struct drm_dsc_config *dsc; member
294 * dpu_encoder_is_dsc_enabled - indicate whether dsc is enabled
302 return dpu_enc->dsc ? true : false; in dpu_encoder_is_dsc_enabled()
618 * dpu_encoder_use_dsc_merge - returns true if the encoder uses DSC merge topology.
638 * dpu_encoder_get_dsc_config - get DSC config for the DPU encoder
639 * This helper function is used by physical encoder to get DSC config
667 struct drm_dsc_config *dsc; in dpu_encoder_update_topology() local
675 dsc = dpu_encoder_get_dsc_config(drm_enc); in dpu_encoder_update_topology()
677 /* We only support 2 DSC mode (with 2 LM and 1 INTF) */ in dpu_encoder_update_topology()
678 if (dsc) { in dpu_encoder_update_topology()
680 * Use 2 DSC encoders, 2 layer mixers and 1 or 2 interfaces in dpu_encoder_update_topology()
681 * when Display Stream Compression (DSC) is enabled, in dpu_encoder_update_topology()
682 * and when enough DSC blocks are available. in dpu_encoder_update_topology()
687 "DSC topology cannot support more than 2 interfaces\n"); in dpu_encoder_update_topology()
1338 dpu_enc->dsc = dpu_encoder_get_dsc_config(drm_enc); in dpu_encoder_virt_atomic_enable()
1960 dpu_encoder_dsc_initial_line_calc(struct drm_dsc_config *dsc, in dpu_encoder_dsc_initial_line_calc() argument
1965 soft_slice_per_enc = enc_ip_width / dsc->slice_width; in dpu_encoder_dsc_initial_line_calc()
1977 ssm_delay = ((dsc->bits_per_component < 10) ? 84 : 92); in dpu_encoder_dsc_initial_line_calc()
1978 total_pixels = ssm_delay * 3 + dsc->initial_xmit_delay + 47; in dpu_encoder_dsc_initial_line_calc()
1981 return DIV_ROUND_UP(total_pixels, dsc->slice_width); in dpu_encoder_dsc_initial_line_calc()
1987 struct drm_dsc_config *dsc, in dpu_encoder_dsc_pipe_cfg() argument
1992 hw_dsc->ops.dsc_config(hw_dsc, dsc, common_mode, initial_lines); in dpu_encoder_dsc_pipe_cfg()
1995 hw_dsc->ops.dsc_config_thresh(hw_dsc, dsc); in dpu_encoder_dsc_pipe_cfg()
2011 struct drm_dsc_config *dsc) in dpu_encoder_prep_dsc() argument
2035 pic_width = dsc->pic_width; in dpu_encoder_prep_dsc()
2045 this_frame_slices = pic_width / dsc->slice_width; in dpu_encoder_prep_dsc()
2046 intf_ip_w = this_frame_slices * dsc->slice_width; in dpu_encoder_prep_dsc()
2049 initial_lines = dpu_encoder_dsc_initial_line_calc(dsc, enc_ip_w); in dpu_encoder_prep_dsc()
2053 dsc, dsc_common_mode, initial_lines); in dpu_encoder_prep_dsc()
2095 if (dpu_enc->dsc) in dpu_encoder_prepare_for_kickoff()
2096 dpu_encoder_prep_dsc(dpu_enc, dpu_enc->dsc); in dpu_encoder_prepare_for_kickoff()
2234 /* coding only for 2LM, 2enc, 1 dsc config */ in dpu_encoder_unprep_dsc()
2318 if (dpu_enc->dsc) { in dpu_encoder_helper_phys_cleanup()
2320 dpu_enc->dsc = NULL; in dpu_encoder_helper_phys_cleanup()
2325 intf_cfg.dsc = dpu_encoder_helper_get_dsc(phys_enc); in dpu_encoder_helper_phys_cleanup()
2911 * dpu_encoder_helper_get_dsc - get DSC blocks mask for the DPU encoder
2912 * This helper function is used by physical encoder to get DSC blocks mask