mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 15:12:13 +02:00
There are slice row per frame and pic height configuration in DSC Selective Update Parameter Set 1 register. Add helper for configuring these. v2: - Add WARN_ON_ONCE if vdsc instances per pipe > 2 - instead of checking vdsc instances per pipe being > 1 check == 2 Bspec: 71709 Signed-off-by: Jouni Högander <jouni.hogander@intel.com> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Link: https://patch.msgid.link/20260304113011.626542-4-jouni.hogander@intel.com
52 lines
2.2 KiB
C
52 lines
2.2 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2019 Intel Corporation
|
|
*/
|
|
|
|
#ifndef __INTEL_VDSC_H__
|
|
#define __INTEL_VDSC_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct drm_printer;
|
|
|
|
enum transcoder;
|
|
struct intel_crtc;
|
|
struct intel_crtc_state;
|
|
struct intel_display;
|
|
struct intel_dsb;
|
|
struct intel_dsc_slice_config;
|
|
struct intel_encoder;
|
|
|
|
bool intel_dsc_source_support(const struct intel_crtc_state *crtc_state);
|
|
int intel_dsc_line_slice_count(const struct intel_dsc_slice_config *config);
|
|
bool intel_dsc_get_slice_config(struct intel_display *display,
|
|
int num_joined_pipes, int slice_per_pipe,
|
|
struct intel_dsc_slice_config *config);
|
|
void intel_uncompressed_joiner_enable(const struct intel_crtc_state *crtc_state);
|
|
void intel_dsc_enable(const struct intel_crtc_state *crtc_state);
|
|
void intel_dsc_disable(const struct intel_crtc_state *crtc_state);
|
|
int intel_dsc_compute_params(struct intel_crtc_state *pipe_config);
|
|
void intel_dsc_enable_on_crtc(struct intel_crtc_state *crtc_state);
|
|
bool intel_dsc_enabled_on_link(const struct intel_crtc_state *crtc_state);
|
|
void intel_dsc_get_config(struct intel_crtc_state *crtc_state);
|
|
enum intel_display_power_domain
|
|
intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder cpu_transcoder);
|
|
struct intel_crtc *intel_dsc_get_bigjoiner_secondary(const struct intel_crtc *primary_crtc);
|
|
int intel_dsc_get_num_vdsc_instances(const struct intel_crtc_state *crtc_state);
|
|
void intel_dsc_dsi_pps_write(struct intel_encoder *encoder,
|
|
const struct intel_crtc_state *crtc_state);
|
|
void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
|
|
const struct intel_crtc_state *crtc_state);
|
|
void intel_dsc_su_et_parameters_configure(struct intel_dsb *dsb, struct intel_encoder *encoder,
|
|
const struct intel_crtc_state *crtc_state, int su_lines);
|
|
void intel_vdsc_state_dump(struct drm_printer *p, int indent,
|
|
const struct intel_crtc_state *crtc_state);
|
|
int intel_vdsc_min_cdclk(const struct intel_crtc_state *crtc_state);
|
|
unsigned int intel_vdsc_prefill_lines(const struct intel_crtc_state *crtc_state);
|
|
int intel_dsc_get_pixel_rate_with_dsc_bubbles(struct intel_display *display,
|
|
int pixel_rate, int htotal,
|
|
int dsc_horizontal_slices);
|
|
|
|
#endif /* __INTEL_VDSC_H__ */
|