linux/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c

// SPDX-License-Identifier: MIT
/*
 * Copyright © 2020 Intel Corporation
 */

#include "i915_drv.h"
#include "intel_ddi.h"
#include "intel_ddi_buf_trans.h"
#include "intel_de.h"
#include "intel_display_types.h"
#include "intel_dp.h"
#include "intel_cx0_phy.h"

/* HDMI/DVI modes ignore everything but the last 2 items. So we share
 * them for both DP and FDI transports, allowing those ports to
 * automatically adapt to HDMI connections as well
 */
static const union intel_ddi_buf_trans_entry _hsw_trans_dp[] =;

static const struct intel_ddi_buf_trans hsw_trans_dp =;

static const union intel_ddi_buf_trans_entry _hsw_trans_fdi[] =;

static const struct intel_ddi_buf_trans hsw_trans_fdi =;

static const union intel_ddi_buf_trans_entry _hsw_trans_hdmi[] =;

static const struct intel_ddi_buf_trans hsw_trans_hdmi =;

static const union intel_ddi_buf_trans_entry _bdw_trans_edp[] =;

static const struct intel_ddi_buf_trans bdw_trans_edp =;

static const union intel_ddi_buf_trans_entry _bdw_trans_dp[] =;

static const struct intel_ddi_buf_trans bdw_trans_dp =;

static const union intel_ddi_buf_trans_entry _bdw_trans_fdi[] =;

static const struct intel_ddi_buf_trans bdw_trans_fdi =;

static const union intel_ddi_buf_trans_entry _bdw_trans_hdmi[] =;

static const struct intel_ddi_buf_trans bdw_trans_hdmi =;

/* Skylake H and S */
static const union intel_ddi_buf_trans_entry _skl_trans_dp[] =;

static const struct intel_ddi_buf_trans skl_trans_dp =;

/* Skylake U */
static const union intel_ddi_buf_trans_entry _skl_u_trans_dp[] =;

static const struct intel_ddi_buf_trans skl_u_trans_dp =;

/* Skylake Y */
static const union intel_ddi_buf_trans_entry _skl_y_trans_dp[] =;

static const struct intel_ddi_buf_trans skl_y_trans_dp =;

/* Kabylake H and S */
static const union intel_ddi_buf_trans_entry _kbl_trans_dp[] =;

static const struct intel_ddi_buf_trans kbl_trans_dp =;

/* Kabylake U */
static const union intel_ddi_buf_trans_entry _kbl_u_trans_dp[] =;

static const struct intel_ddi_buf_trans kbl_u_trans_dp =;

/* Kabylake Y */
static const union intel_ddi_buf_trans_entry _kbl_y_trans_dp[] =;

static const struct intel_ddi_buf_trans kbl_y_trans_dp =;

/*
 * Skylake/Kabylake H and S
 * eDP 1.4 low vswing translation parameters
 */
static const union intel_ddi_buf_trans_entry _skl_trans_edp[] =;

static const struct intel_ddi_buf_trans skl_trans_edp =;

/*
 * Skylake/Kabylake U
 * eDP 1.4 low vswing translation parameters
 */
static const union intel_ddi_buf_trans_entry _skl_u_trans_edp[] =;

static const struct intel_ddi_buf_trans skl_u_trans_edp =;

/*
 * Skylake/Kabylake Y
 * eDP 1.4 low vswing translation parameters
 */
static const union intel_ddi_buf_trans_entry _skl_y_trans_edp[] =;

static const struct intel_ddi_buf_trans skl_y_trans_edp =;

/* Skylake/Kabylake U, H and S */
static const union intel_ddi_buf_trans_entry _skl_trans_hdmi[] =;

static const struct intel_ddi_buf_trans skl_trans_hdmi =;

/* Skylake/Kabylake Y */
static const union intel_ddi_buf_trans_entry _skl_y_trans_hdmi[] =;

static const struct intel_ddi_buf_trans skl_y_trans_hdmi =;

static const union intel_ddi_buf_trans_entry _bxt_trans_dp[] =;

static const struct intel_ddi_buf_trans bxt_trans_dp =;

static const union intel_ddi_buf_trans_entry _bxt_trans_edp[] =;

static const struct intel_ddi_buf_trans bxt_trans_edp =;

/* BSpec has 2 recommended values - entries 0 and 8.
 * Using the entry with higher vswing.
 */
static const union intel_ddi_buf_trans_entry _bxt_trans_hdmi[] =;

static const struct intel_ddi_buf_trans bxt_trans_hdmi =;

/* icl_combo_phy_trans */
static const union intel_ddi_buf_trans_entry _icl_combo_phy_trans_dp_hbr2_edp_hbr3[] =;

static const struct intel_ddi_buf_trans icl_combo_phy_trans_dp_hbr2_edp_hbr3 =;

static const union intel_ddi_buf_trans_entry _icl_combo_phy_trans_edp_hbr2[] =;

static const struct intel_ddi_buf_trans icl_combo_phy_trans_edp_hbr2 =;

static const union intel_ddi_buf_trans_entry _icl_combo_phy_trans_hdmi[] =;

static const struct intel_ddi_buf_trans icl_combo_phy_trans_hdmi =;

static const union intel_ddi_buf_trans_entry _ehl_combo_phy_trans_dp[] =;

static const struct intel_ddi_buf_trans ehl_combo_phy_trans_dp =;

static const union intel_ddi_buf_trans_entry _ehl_combo_phy_trans_edp_hbr2[] =;

static const struct intel_ddi_buf_trans ehl_combo_phy_trans_edp_hbr2 =;

static const union intel_ddi_buf_trans_entry _jsl_combo_phy_trans_edp_hbr[] =;

static const struct intel_ddi_buf_trans jsl_combo_phy_trans_edp_hbr =;

static const union intel_ddi_buf_trans_entry _jsl_combo_phy_trans_edp_hbr2[] =;

static const struct intel_ddi_buf_trans jsl_combo_phy_trans_edp_hbr2 =;

static const union intel_ddi_buf_trans_entry _dg1_combo_phy_trans_dp_rbr_hbr[] =;

static const struct intel_ddi_buf_trans dg1_combo_phy_trans_dp_rbr_hbr =;

static const union intel_ddi_buf_trans_entry _dg1_combo_phy_trans_dp_hbr2_hbr3[] =;

static const struct intel_ddi_buf_trans dg1_combo_phy_trans_dp_hbr2_hbr3 =;

static const union intel_ddi_buf_trans_entry _icl_mg_phy_trans_rbr_hbr[] =;

static const struct intel_ddi_buf_trans icl_mg_phy_trans_rbr_hbr =;

static const union intel_ddi_buf_trans_entry _icl_mg_phy_trans_hbr2_hbr3[] =;

static const struct intel_ddi_buf_trans icl_mg_phy_trans_hbr2_hbr3 =;

static const union intel_ddi_buf_trans_entry _icl_mg_phy_trans_hdmi[] =;

static const struct intel_ddi_buf_trans icl_mg_phy_trans_hdmi =;

static const union intel_ddi_buf_trans_entry _tgl_dkl_phy_trans_dp_hbr[] =;

static const struct intel_ddi_buf_trans tgl_dkl_phy_trans_dp_hbr =;

static const union intel_ddi_buf_trans_entry _tgl_dkl_phy_trans_dp_hbr2[] =;

static const struct intel_ddi_buf_trans tgl_dkl_phy_trans_dp_hbr2 =;

static const union intel_ddi_buf_trans_entry _tgl_dkl_phy_trans_hdmi[] =;

static const struct intel_ddi_buf_trans tgl_dkl_phy_trans_hdmi =;

static const union intel_ddi_buf_trans_entry _tgl_combo_phy_trans_dp_hbr[] =;

static const struct intel_ddi_buf_trans tgl_combo_phy_trans_dp_hbr =;

static const union intel_ddi_buf_trans_entry _tgl_combo_phy_trans_dp_hbr2[] =;

static const struct intel_ddi_buf_trans tgl_combo_phy_trans_dp_hbr2 =;

static const union intel_ddi_buf_trans_entry _tgl_uy_combo_phy_trans_dp_hbr2[] =;

static const struct intel_ddi_buf_trans tgl_uy_combo_phy_trans_dp_hbr2 =;

/*
 * Cloned the HOBL entry to comply with the voltage and pre-emphasis entries
 * that DisplayPort specification requires
 */
static const union intel_ddi_buf_trans_entry _tgl_combo_phy_trans_edp_hbr2_hobl[] =;

static const struct intel_ddi_buf_trans tgl_combo_phy_trans_edp_hbr2_hobl =;

static const union intel_ddi_buf_trans_entry _rkl_combo_phy_trans_dp_hbr[] =;

static const struct intel_ddi_buf_trans rkl_combo_phy_trans_dp_hbr =;

static const union intel_ddi_buf_trans_entry _rkl_combo_phy_trans_dp_hbr2_hbr3[] =;

static const struct intel_ddi_buf_trans rkl_combo_phy_trans_dp_hbr2_hbr3 =;

static const union intel_ddi_buf_trans_entry _adls_combo_phy_trans_dp_hbr2_hbr3[] =;

static const struct intel_ddi_buf_trans adls_combo_phy_trans_dp_hbr2_hbr3 =;

static const union intel_ddi_buf_trans_entry _adls_combo_phy_trans_edp_hbr2[] =;

static const struct intel_ddi_buf_trans adls_combo_phy_trans_edp_hbr2 =;

static const union intel_ddi_buf_trans_entry _adls_combo_phy_trans_edp_hbr3[] =;

static const struct intel_ddi_buf_trans adls_combo_phy_trans_edp_hbr3 =;

static const union intel_ddi_buf_trans_entry _adlp_combo_phy_trans_dp_hbr[] =;

static const struct intel_ddi_buf_trans adlp_combo_phy_trans_dp_hbr =;

static const union intel_ddi_buf_trans_entry _adlp_combo_phy_trans_dp_hbr2_hbr3[] =;

static const union intel_ddi_buf_trans_entry _adlp_combo_phy_trans_edp_hbr2[] =;

static const union intel_ddi_buf_trans_entry _adlp_combo_phy_trans_dp_hbr2_edp_hbr3[] =;

static const struct intel_ddi_buf_trans adlp_combo_phy_trans_dp_hbr2_hbr3 =;

static const struct intel_ddi_buf_trans adlp_combo_phy_trans_edp_hbr3 =;

static const struct intel_ddi_buf_trans adlp_combo_phy_trans_edp_up_to_hbr2 =;

static const union intel_ddi_buf_trans_entry _adlp_dkl_phy_trans_dp_hbr[] =;

static const struct intel_ddi_buf_trans adlp_dkl_phy_trans_dp_hbr =;

static const union intel_ddi_buf_trans_entry _adlp_dkl_phy_trans_dp_hbr2_hbr3[] =;

static const struct intel_ddi_buf_trans adlp_dkl_phy_trans_dp_hbr2_hbr3 =;

static const union intel_ddi_buf_trans_entry _dg2_snps_trans[] =;

static const struct intel_ddi_buf_trans dg2_snps_trans =;

static const union intel_ddi_buf_trans_entry _dg2_snps_trans_uhbr[] =;

static const struct intel_ddi_buf_trans dg2_snps_trans_uhbr =;

static const union intel_ddi_buf_trans_entry _mtl_c10_trans_dp14[] =;

static const struct intel_ddi_buf_trans mtl_c10_trans_dp14 =;

/* DP1.4 */
static const union intel_ddi_buf_trans_entry _mtl_c20_trans_dp14[] =;

/* DP2.0 */
static const union intel_ddi_buf_trans_entry _mtl_c20_trans_uhbr[] =;

/* HDMI2.0 */
static const union intel_ddi_buf_trans_entry _mtl_c20_trans_hdmi[] =;

static const struct intel_ddi_buf_trans mtl_c20_trans_hdmi =;

static const struct intel_ddi_buf_trans mtl_c20_trans_dp14 =;

static const struct intel_ddi_buf_trans mtl_c20_trans_uhbr =;

bool is_hobl_buf_trans(const struct intel_ddi_buf_trans *table)
{}

static bool use_edp_hobl(struct intel_encoder *encoder)
{}

static bool use_edp_low_vswing(struct intel_encoder *encoder)
{}

static const struct intel_ddi_buf_trans *
intel_get_buf_trans(const struct intel_ddi_buf_trans *trans, int *num_entries)
{}

static const struct intel_ddi_buf_trans *
hsw_get_buf_trans(struct intel_encoder *encoder,
		  const struct intel_crtc_state *crtc_state,
		  int *n_entries)
{}

static const struct intel_ddi_buf_trans *
bdw_get_buf_trans(struct intel_encoder *encoder,
		  const struct intel_crtc_state *crtc_state,
		  int *n_entries)
{}

static int skl_buf_trans_num_entries(enum port port, int n_entries)
{}

static const struct intel_ddi_buf_trans *
_skl_get_buf_trans_dp(struct intel_encoder *encoder,
		      const struct intel_ddi_buf_trans *trans,
		      int *n_entries)
{}

static const struct intel_ddi_buf_trans *
skl_y_get_buf_trans(struct intel_encoder *encoder,
		    const struct intel_crtc_state *crtc_state,
		    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
skl_u_get_buf_trans(struct intel_encoder *encoder,
		    const struct intel_crtc_state *crtc_state,
		    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
skl_get_buf_trans(struct intel_encoder *encoder,
		  const struct intel_crtc_state *crtc_state,
		  int *n_entries)
{}

static const struct intel_ddi_buf_trans *
kbl_y_get_buf_trans(struct intel_encoder *encoder,
		    const struct intel_crtc_state *crtc_state,
		    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
kbl_u_get_buf_trans(struct intel_encoder *encoder,
		    const struct intel_crtc_state *crtc_state,
		    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
kbl_get_buf_trans(struct intel_encoder *encoder,
		  const struct intel_crtc_state *crtc_state,
		  int *n_entries)
{}

static const struct intel_ddi_buf_trans *
bxt_get_buf_trans(struct intel_encoder *encoder,
		  const struct intel_crtc_state *crtc_state,
		  int *n_entries)
{}

static const struct intel_ddi_buf_trans *
icl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
			   const struct intel_crtc_state *crtc_state,
			   int *n_entries)
{}

static const struct intel_ddi_buf_trans *
icl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
icl_get_combo_buf_trans(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
icl_get_mg_buf_trans_dp(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
icl_get_mg_buf_trans(struct intel_encoder *encoder,
		     const struct intel_crtc_state *crtc_state,
		     int *n_entries)
{}

static const struct intel_ddi_buf_trans *
ehl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
ehl_get_combo_buf_trans(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
jsl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
jsl_get_combo_buf_trans(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
tgl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
			   const struct intel_crtc_state *crtc_state,
			   int *n_entries)
{}

static const struct intel_ddi_buf_trans *
tgl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
tgl_get_combo_buf_trans(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
dg1_get_combo_buf_trans_dp(struct intel_encoder *encoder,
			   const struct intel_crtc_state *crtc_state,
			   int *n_entries)
{}

static const struct intel_ddi_buf_trans *
dg1_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
dg1_get_combo_buf_trans(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
rkl_get_combo_buf_trans_dp(struct intel_encoder *encoder,
			   const struct intel_crtc_state *crtc_state,
			   int *n_entries)
{}

static const struct intel_ddi_buf_trans *
rkl_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
rkl_get_combo_buf_trans(struct intel_encoder *encoder,
			const struct intel_crtc_state *crtc_state,
			int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adls_get_combo_buf_trans_dp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adls_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			     const struct intel_crtc_state *crtc_state,
			     int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adls_get_combo_buf_trans(struct intel_encoder *encoder,
			 const struct intel_crtc_state *crtc_state,
			 int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adlp_get_combo_buf_trans_dp(struct intel_encoder *encoder,
			    const struct intel_crtc_state *crtc_state,
			    int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adlp_get_combo_buf_trans_edp(struct intel_encoder *encoder,
			     const struct intel_crtc_state *crtc_state,
			     int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adlp_get_combo_buf_trans(struct intel_encoder *encoder,
			 const struct intel_crtc_state *crtc_state,
			 int *n_entries)
{}

static const struct intel_ddi_buf_trans *
tgl_get_dkl_buf_trans_dp(struct intel_encoder *encoder,
			 const struct intel_crtc_state *crtc_state,
			 int *n_entries)
{}

static const struct intel_ddi_buf_trans *
tgl_get_dkl_buf_trans(struct intel_encoder *encoder,
		      const struct intel_crtc_state *crtc_state,
		      int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adlp_get_dkl_buf_trans_dp(struct intel_encoder *encoder,
			  const struct intel_crtc_state *crtc_state,
			  int *n_entries)
{}

static const struct intel_ddi_buf_trans *
adlp_get_dkl_buf_trans(struct intel_encoder *encoder,
		       const struct intel_crtc_state *crtc_state,
		       int *n_entries)
{}

static const struct intel_ddi_buf_trans *
dg2_get_snps_buf_trans(struct intel_encoder *encoder,
		       const struct intel_crtc_state *crtc_state,
		       int *n_entries)
{}

static const struct intel_ddi_buf_trans *
mtl_get_cx0_buf_trans(struct intel_encoder *encoder,
		      const struct intel_crtc_state *crtc_state,
		      int *n_entries)
{}

void intel_ddi_buf_trans_init(struct intel_encoder *encoder)
{}