#include <linux/string_helpers.h>
#include <drm/drm_fixed.h>
#include "i915_reg.h"
#include "intel_atomic.h"
#include "intel_crtc.h"
#include "intel_ddi.h"
#include "intel_de.h"
#include "intel_dp.h"
#include "intel_display_types.h"
#include "intel_fdi.h"
#include "intel_fdi_regs.h"
#include "intel_link_bw.h"
struct intel_fdi_funcs { … };
static void assert_fdi_tx(struct drm_i915_private *dev_priv,
enum pipe pipe, bool state)
{ … }
void assert_fdi_tx_enabled(struct drm_i915_private *i915, enum pipe pipe)
{ … }
void assert_fdi_tx_disabled(struct drm_i915_private *i915, enum pipe pipe)
{ … }
static void assert_fdi_rx(struct drm_i915_private *dev_priv,
enum pipe pipe, bool state)
{ … }
void assert_fdi_rx_enabled(struct drm_i915_private *i915, enum pipe pipe)
{ … }
void assert_fdi_rx_disabled(struct drm_i915_private *i915, enum pipe pipe)
{ … }
void assert_fdi_tx_pll_enabled(struct drm_i915_private *i915,
enum pipe pipe)
{ … }
static void assert_fdi_rx_pll(struct drm_i915_private *i915,
enum pipe pipe, bool state)
{ … }
void assert_fdi_rx_pll_enabled(struct drm_i915_private *i915, enum pipe pipe)
{ … }
void assert_fdi_rx_pll_disabled(struct drm_i915_private *i915, enum pipe pipe)
{ … }
void intel_fdi_link_train(struct intel_crtc *crtc,
const struct intel_crtc_state *crtc_state)
{ … }
int intel_fdi_add_affected_crtcs(struct intel_atomic_state *state)
{ … }
static int pipe_required_fdi_lanes(struct intel_crtc_state *crtc_state)
{ … }
static int ilk_check_fdi_lanes(struct drm_device *dev, enum pipe pipe,
struct intel_crtc_state *pipe_config,
enum pipe *pipe_to_reduce)
{ … }
void intel_fdi_pll_freq_update(struct drm_i915_private *i915)
{ … }
int intel_fdi_link_freq(struct drm_i915_private *i915,
const struct intel_crtc_state *pipe_config)
{ … }
bool intel_fdi_compute_pipe_bpp(struct intel_crtc_state *crtc_state)
{ … }
int ilk_fdi_compute_config(struct intel_crtc *crtc,
struct intel_crtc_state *pipe_config)
{ … }
static int intel_fdi_atomic_check_bw(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_crtc_state *pipe_config,
struct intel_link_bw_limits *limits)
{ … }
int intel_fdi_atomic_check_link(struct intel_atomic_state *state,
struct intel_link_bw_limits *limits)
{ … }
static void cpt_set_fdi_bc_bifurcation(struct drm_i915_private *dev_priv, bool enable)
{ … }
static void ivb_update_fdi_bc_bifurcation(const struct intel_crtc_state *crtc_state)
{ … }
void intel_fdi_normal_train(struct intel_crtc *crtc)
{ … }
static void ilk_fdi_link_train(struct intel_crtc *crtc,
const struct intel_crtc_state *crtc_state)
{ … }
static const int snb_b_fdi_train_param[] = …;
static void gen6_fdi_link_train(struct intel_crtc *crtc,
const struct intel_crtc_state *crtc_state)
{ … }
static void ivb_manual_fdi_link_train(struct intel_crtc *crtc,
const struct intel_crtc_state *crtc_state)
{ … }
void hsw_fdi_link_train(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state)
{ … }
void hsw_fdi_disable(struct intel_encoder *encoder)
{ … }
void ilk_fdi_pll_enable(const struct intel_crtc_state *crtc_state)
{ … }
void ilk_fdi_pll_disable(struct intel_crtc *crtc)
{ … }
void ilk_fdi_disable(struct intel_crtc *crtc)
{ … }
static const struct intel_fdi_funcs ilk_funcs = …;
static const struct intel_fdi_funcs gen6_funcs = …;
static const struct intel_fdi_funcs ivb_funcs = …;
void
intel_fdi_init_hook(struct drm_i915_private *dev_priv)
{ … }