Get rid of the inflexible bigjoiner_linked_crtc pointer thing and just track things as a bitmask of pipes instead. We can also nuke the bigjoiner_slave boolean as the role of the pipe can be determined from its position in the bitmask. It might be possible to nuke the bigjoiner boolean as well if we make encoder.compute_config() do the bitmask assignment directly for the master pipe. But for now I left that alone so that encoer.compute_config() will just flag the state as needing bigjoiner, and the intel_atomic_check_bigjoiner() is still responsible for determining the bitmask. But that may have to change as the encoder may be in the best position to determine how exactly we should populate the bitmask. Most places that just looked at the single bigjoiner_linked_crtc now iterate over the whole bitmask, eliminating the singular slave pipe assumption. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220203183823.22890-11-ville.syrjala@linux.intel.com Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
31 lines
1.1 KiB
C
31 lines
1.1 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2019 Intel Corporation
|
|
*/
|
|
|
|
#ifndef __INTEL_VDSC_H__
|
|
#define __INTEL_VDSC_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
enum transcoder;
|
|
struct intel_crtc;
|
|
struct intel_crtc_state;
|
|
struct intel_encoder;
|
|
|
|
bool intel_dsc_source_support(const struct intel_crtc_state *crtc_state);
|
|
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_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);
|
|
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);
|
|
|
|
#endif /* __INTEL_VDSC_H__ */
|