Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.4.
  1/* SPDX-License-Identifier: MIT */
  2/*
  3 * Copyright © 2020 Intel Corporation
  4 */
  5
  6#ifndef _INTEL_DDI_BUF_TRANS_H_
  7#define _INTEL_DDI_BUF_TRANS_H_
  8
  9#include <linux/types.h>
 10
 11struct drm_i915_private;
 12struct intel_encoder;
 13struct intel_crtc_state;
 14
 15struct ddi_buf_trans {
 16	u32 trans1;	/* balance leg enable, de-emph level */
 17	u32 trans2;	/* vref sel, vswing */
 18	u8 i_boost;	/* SKL: I_boost; valid: 0x0, 0x1, 0x3, 0x7 */
 19};
 20
 21struct bxt_ddi_buf_trans {
 22	u8 margin;	/* swing value */
 23	u8 scale;	/* scale value */
 24	u8 enable;	/* scale enable */
 25	u8 deemphasis;
 26};
 27
 28struct cnl_ddi_buf_trans {
 29	u8 dw2_swing_sel;
 30	u8 dw7_n_scalar;
 31	u8 dw4_cursor_coeff;
 32	u8 dw4_post_cursor_2;
 33	u8 dw4_post_cursor_1;
 34};
 35
 36struct icl_mg_phy_ddi_buf_trans {
 37	u32 cri_txdeemph_override_11_6;
 38	u32 cri_txdeemph_override_5_0;
 39	u32 cri_txdeemph_override_17_12;
 40};
 41
 42struct tgl_dkl_phy_ddi_buf_trans {
 43	u32 dkl_vswing_control;
 44	u32 dkl_preshoot_control;
 45	u32 dkl_de_emphasis_control;
 46};
 47
 48bool is_hobl_buf_trans(const struct cnl_ddi_buf_trans *table);
 49
 50int intel_ddi_hdmi_num_entries(struct intel_encoder *encoder,
 51			       const struct intel_crtc_state *crtc_state,
 52			       int *default_entry);
 53
 54const struct ddi_buf_trans *
 55intel_ddi_get_buf_trans_edp(struct intel_encoder *encoder, int *n_entries);
 56const struct ddi_buf_trans *
 57intel_ddi_get_buf_trans_fdi(struct drm_i915_private *dev_priv,
 58			    int *n_entries);
 59const struct ddi_buf_trans *
 60intel_ddi_get_buf_trans_hdmi(struct intel_encoder *encoder,
 61			     int *n_entries);
 62const struct ddi_buf_trans *
 63intel_ddi_get_buf_trans_dp(struct intel_encoder *encoder, int *n_entries);
 64
 65const struct bxt_ddi_buf_trans *
 66bxt_get_buf_trans(struct intel_encoder *encoder,
 67		  const struct intel_crtc_state *crtc_state,
 68		  int *n_entries);
 69
 70const struct tgl_dkl_phy_ddi_buf_trans *
 71adlp_get_dkl_buf_trans(struct intel_encoder *encoder,
 72		       const struct intel_crtc_state *crtc_state,
 73		       int *n_entries);
 74const struct cnl_ddi_buf_trans *
 75tgl_get_combo_buf_trans(struct intel_encoder *encoder,
 76			const struct intel_crtc_state *crtc_state,
 77			int *n_entries);
 78const struct tgl_dkl_phy_ddi_buf_trans *
 79tgl_get_dkl_buf_trans(struct intel_encoder *encoder,
 80		      const struct intel_crtc_state *crtc_state,
 81		      int *n_entries);
 82const struct cnl_ddi_buf_trans *
 83jsl_get_combo_buf_trans(struct intel_encoder *encoder,
 84			const struct intel_crtc_state *crtc_state,
 85			int *n_entries);
 86const struct cnl_ddi_buf_trans *
 87ehl_get_combo_buf_trans(struct intel_encoder *encoder,
 88			const struct intel_crtc_state *crtc_state,
 89			int *n_entries);
 90const struct cnl_ddi_buf_trans *
 91icl_get_combo_buf_trans(struct intel_encoder *encoder,
 92			const struct intel_crtc_state *crtc_state,
 93			int *n_entries);
 94const struct icl_mg_phy_ddi_buf_trans *
 95icl_get_mg_buf_trans(struct intel_encoder *encoder,
 96		     const struct intel_crtc_state *crtc_state,
 97		     int *n_entries);
 98
 99const struct cnl_ddi_buf_trans *
100cnl_get_buf_trans(struct intel_encoder *encoder,
101		  const struct intel_crtc_state *crtc_state,
102		  int *n_entries);
103
104#endif