Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2019 Intel Corporation
0004  */
0005 
0006 #ifndef __INTEL_HDMI_H__
0007 #define __INTEL_HDMI_H__
0008 
0009 #include <linux/hdmi.h>
0010 #include <linux/types.h>
0011 
0012 struct drm_connector;
0013 struct drm_encoder;
0014 struct drm_i915_private;
0015 struct intel_connector;
0016 struct intel_digital_port;
0017 struct intel_encoder;
0018 struct intel_crtc_state;
0019 struct intel_hdmi;
0020 struct drm_connector_state;
0021 union hdmi_infoframe;
0022 enum port;
0023 
0024 void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
0025                    struct intel_connector *intel_connector);
0026 int intel_hdmi_compute_config(struct intel_encoder *encoder,
0027                   struct intel_crtc_state *pipe_config,
0028                   struct drm_connector_state *conn_state);
0029 void intel_hdmi_encoder_shutdown(struct intel_encoder *encoder);
0030 bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
0031                        struct drm_connector *connector,
0032                        bool high_tmds_clock_ratio,
0033                        bool scrambling);
0034 void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable);
0035 void intel_infoframe_init(struct intel_digital_port *dig_port);
0036 u32 intel_hdmi_infoframes_enabled(struct intel_encoder *encoder,
0037                   const struct intel_crtc_state *crtc_state);
0038 u32 intel_hdmi_infoframe_enable(unsigned int type);
0039 void intel_hdmi_read_gcp_infoframe(struct intel_encoder *encoder,
0040                    struct intel_crtc_state *crtc_state);
0041 void intel_read_infoframe(struct intel_encoder *encoder,
0042               const struct intel_crtc_state *crtc_state,
0043               enum hdmi_infoframe_type type,
0044               union hdmi_infoframe *frame);
0045 bool intel_hdmi_limited_color_range(const struct intel_crtc_state *crtc_state,
0046                     const struct drm_connector_state *conn_state);
0047 bool intel_hdmi_bpc_possible(const struct intel_crtc_state *crtc_state,
0048                  int bpc, bool has_hdmi_sink, bool ycbcr420_output);
0049 int intel_hdmi_tmds_clock(int clock, int bpc, bool ycbcr420_output);
0050 int intel_hdmi_dsc_get_bpp(int src_fractional_bpp, int slice_width,
0051                int num_slices, int output_format, bool hdmi_all_bpp,
0052                int hdmi_max_chunk_bytes);
0053 int intel_hdmi_dsc_get_num_slices(const struct intel_crtc_state *crtc_state,
0054                   int src_max_slices, int src_max_slice_width,
0055                   int hdmi_max_slices, int hdmi_throughput);
0056 int intel_hdmi_dsc_get_slice_height(int vactive);
0057 
0058 #endif /* __INTEL_HDMI_H__ */