#include <linux/math.h>
#include <linux/string_helpers.h>
#include "bxt_dpio_phy_regs.h"
#include "i915_reg.h"
#include "intel_de.h"
#include "intel_display_types.h"
#include "intel_dkl_phy.h"
#include "intel_dkl_phy_regs.h"
#include "intel_dpio_phy.h"
#include "intel_dpll.h"
#include "intel_dpll_mgr.h"
#include "intel_hti.h"
#include "intel_mg_phy_regs.h"
#include "intel_pch_refclk.h"
#include "intel_tc.h"
struct intel_shared_dpll_funcs { … };
struct intel_dpll_mgr { … };
static void
intel_atomic_duplicate_dpll_state(struct drm_i915_private *i915,
struct intel_shared_dpll_state *shared_dpll)
{ … }
static struct intel_shared_dpll_state *
intel_atomic_get_shared_dpll_state(struct drm_atomic_state *s)
{ … }
struct intel_shared_dpll *
intel_get_shared_dpll_by_id(struct drm_i915_private *i915,
enum intel_dpll_id id)
{ … }
void assert_shared_dpll(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
bool state)
{ … }
static enum tc_port icl_pll_id_to_tc_port(enum intel_dpll_id id)
{ … }
enum intel_dpll_id icl_tc_port_to_pll_id(enum tc_port tc_port)
{ … }
static i915_reg_t
intel_combo_pll_enable_reg(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static i915_reg_t
intel_tc_pll_enable_reg(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void _intel_enable_shared_dpll(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void _intel_disable_shared_dpll(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
void intel_enable_shared_dpll(const struct intel_crtc_state *crtc_state)
{ … }
void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
{ … }
static unsigned long
intel_dpll_mask_all(struct drm_i915_private *i915)
{ … }
static struct intel_shared_dpll *
intel_find_shared_dpll(struct intel_atomic_state *state,
const struct intel_crtc *crtc,
const struct intel_dpll_hw_state *dpll_hw_state,
unsigned long dpll_mask)
{ … }
static void
intel_reference_shared_dpll_crtc(const struct intel_crtc *crtc,
const struct intel_shared_dpll *pll,
struct intel_shared_dpll_state *shared_dpll_state)
{ … }
static void
intel_reference_shared_dpll(struct intel_atomic_state *state,
const struct intel_crtc *crtc,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
void
intel_unreference_shared_dpll_crtc(const struct intel_crtc *crtc,
const struct intel_shared_dpll *pll,
struct intel_shared_dpll_state *shared_dpll_state)
{ … }
static void intel_unreference_shared_dpll(struct intel_atomic_state *state,
const struct intel_crtc *crtc,
const struct intel_shared_dpll *pll)
{ … }
static void intel_put_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
void intel_shared_dpll_swap_state(struct intel_atomic_state *state)
{ … }
static bool ibx_pch_dpll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void ibx_assert_pch_refclk_enabled(struct drm_i915_private *i915)
{ … }
static void ibx_pch_dpll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void ibx_pch_dpll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static int ibx_compute_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int ibx_get_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static void ibx_dump_hw_state(struct drm_printer *p,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool ibx_compare_hw_state(const struct intel_dpll_hw_state *_a,
const struct intel_dpll_hw_state *_b)
{ … }
static const struct intel_shared_dpll_funcs ibx_pch_dpll_funcs = …;
static const struct dpll_info pch_plls[] = …;
static const struct intel_dpll_mgr pch_pll_mgr = …;
static void hsw_ddi_wrpll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void hsw_ddi_spll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void hsw_ddi_wrpll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void hsw_ddi_spll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static bool hsw_ddi_wrpll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool hsw_ddi_spll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
#define LC_FREQ …
#define LC_FREQ_2K …
#define P_MIN …
#define P_MAX …
#define P_INC …
#define REF_MIN …
#define REF_MAX …
#define VCO_MIN …
#define VCO_MAX …
struct hsw_wrpll_rnp { … };
static unsigned hsw_wrpll_get_budget_for_freq(int clock)
{ … }
static void hsw_wrpll_update_rnp(u64 freq2k, unsigned int budget,
unsigned int r2, unsigned int n2,
unsigned int p,
struct hsw_wrpll_rnp *best)
{ … }
static void
hsw_ddi_calculate_wrpll(int clock ,
unsigned *r2_out, unsigned *n2_out, unsigned *p_out)
{ … }
static int hsw_ddi_wrpll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int
hsw_ddi_wrpll_compute_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static struct intel_shared_dpll *
hsw_ddi_wrpll_get_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static int
hsw_ddi_lcpll_compute_dpll(struct intel_crtc_state *crtc_state)
{ … }
static struct intel_shared_dpll *
hsw_ddi_lcpll_get_dpll(struct intel_crtc_state *crtc_state)
{ … }
static int hsw_ddi_lcpll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int
hsw_ddi_spll_compute_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static struct intel_shared_dpll *
hsw_ddi_spll_get_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static int hsw_ddi_spll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int hsw_compute_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int hsw_get_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static void hsw_update_dpll_ref_clks(struct drm_i915_private *i915)
{ … }
static void hsw_dump_hw_state(struct drm_printer *p,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool hsw_compare_hw_state(const struct intel_dpll_hw_state *_a,
const struct intel_dpll_hw_state *_b)
{ … }
static const struct intel_shared_dpll_funcs hsw_ddi_wrpll_funcs = …;
static const struct intel_shared_dpll_funcs hsw_ddi_spll_funcs = …;
static void hsw_ddi_lcpll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *hw_state)
{ … }
static void hsw_ddi_lcpll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static bool hsw_ddi_lcpll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static const struct intel_shared_dpll_funcs hsw_ddi_lcpll_funcs = …;
static const struct dpll_info hsw_plls[] = …;
static const struct intel_dpll_mgr hsw_pll_mgr = …;
struct skl_dpll_regs { … };
static const struct skl_dpll_regs skl_dpll_regs[4] = …;
static void skl_ddi_pll_write_ctrl1(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct skl_dpll_hw_state *hw_state)
{ … }
static void skl_ddi_pll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void skl_ddi_dpll0_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void skl_ddi_pll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void skl_ddi_dpll0_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static bool skl_ddi_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool skl_ddi_dpll0_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
struct skl_wrpll_context { … };
#define SKL_DCO_MAX_PDEVIATION …
#define SKL_DCO_MAX_NDEVIATION …
static void skl_wrpll_try_divider(struct skl_wrpll_context *ctx,
u64 central_freq,
u64 dco_freq,
unsigned int divider)
{ … }
static void skl_wrpll_get_multipliers(unsigned int p,
unsigned int *p0 ,
unsigned int *p1 ,
unsigned int *p2 )
{ … }
struct skl_wrpll_params { … };
static void skl_wrpll_params_populate(struct skl_wrpll_params *params,
u64 afe_clock,
int ref_clock,
u64 central_freq,
u32 p0, u32 p1, u32 p2)
{ … }
static int
skl_ddi_calculate_wrpll(int clock,
int ref_clock,
struct skl_wrpll_params *wrpll_params)
{ … }
static int skl_ddi_wrpll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int skl_ddi_hdmi_pll_dividers(struct intel_crtc_state *crtc_state)
{ … }
static int
skl_ddi_dp_set_dpll_hw_state(struct intel_crtc_state *crtc_state)
{ … }
static int skl_ddi_lcpll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int skl_compute_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int skl_get_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int skl_ddi_pll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void skl_update_dpll_ref_clks(struct drm_i915_private *i915)
{ … }
static void skl_dump_hw_state(struct drm_printer *p,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool skl_compare_hw_state(const struct intel_dpll_hw_state *_a,
const struct intel_dpll_hw_state *_b)
{ … }
static const struct intel_shared_dpll_funcs skl_ddi_pll_funcs = …;
static const struct intel_shared_dpll_funcs skl_ddi_dpll0_funcs = …;
static const struct dpll_info skl_plls[] = …;
static const struct intel_dpll_mgr skl_pll_mgr = …;
static void bxt_ddi_pll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void bxt_ddi_pll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static bool bxt_ddi_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static const struct dpll bxt_dp_clk_val[] = …;
static int
bxt_ddi_hdmi_pll_dividers(struct intel_crtc_state *crtc_state,
struct dpll *clk_div)
{ … }
static void bxt_ddi_dp_pll_dividers(struct intel_crtc_state *crtc_state,
struct dpll *clk_div)
{ … }
static int bxt_ddi_set_dpll_hw_state(struct intel_crtc_state *crtc_state,
const struct dpll *clk_div)
{ … }
static int bxt_ddi_pll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int
bxt_ddi_dp_set_dpll_hw_state(struct intel_crtc_state *crtc_state)
{ … }
static int
bxt_ddi_hdmi_set_dpll_hw_state(struct intel_crtc_state *crtc_state)
{ … }
static int bxt_compute_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int bxt_get_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static void bxt_update_dpll_ref_clks(struct drm_i915_private *i915)
{ … }
static void bxt_dump_hw_state(struct drm_printer *p,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool bxt_compare_hw_state(const struct intel_dpll_hw_state *_a,
const struct intel_dpll_hw_state *_b)
{ … }
static const struct intel_shared_dpll_funcs bxt_ddi_pll_funcs = …;
static const struct dpll_info bxt_plls[] = …;
static const struct intel_dpll_mgr bxt_pll_mgr = …;
static void icl_wrpll_get_multipliers(int bestdiv, int *pdiv,
int *qdiv, int *kdiv)
{ … }
static void icl_wrpll_params_populate(struct skl_wrpll_params *params,
u32 dco_freq, u32 ref_freq,
int pdiv, int qdiv, int kdiv)
{ … }
static bool
ehl_combo_pll_div_frac_wa_needed(struct drm_i915_private *i915)
{ … }
struct icl_combo_pll_params { … };
static const struct icl_combo_pll_params icl_dp_combo_pll_24MHz_values[] = …;
static const struct icl_combo_pll_params icl_dp_combo_pll_19_2MHz_values[] = …;
static const struct skl_wrpll_params icl_tbt_pll_24MHz_values = …;
static const struct skl_wrpll_params icl_tbt_pll_19_2MHz_values = …;
static const struct skl_wrpll_params tgl_tbt_pll_19_2MHz_values = …;
static const struct skl_wrpll_params tgl_tbt_pll_24MHz_values = …;
static int icl_calc_dp_combo_pll(struct intel_crtc_state *crtc_state,
struct skl_wrpll_params *pll_params)
{ … }
static int icl_calc_tbt_pll(struct intel_crtc_state *crtc_state,
struct skl_wrpll_params *pll_params)
{ … }
static int icl_ddi_tbt_pll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int icl_wrpll_ref_clock(struct drm_i915_private *i915)
{ … }
static int
icl_calc_wrpll(struct intel_crtc_state *crtc_state,
struct skl_wrpll_params *wrpll_params)
{ … }
static int icl_ddi_combo_pll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void icl_calc_dpll_state(struct drm_i915_private *i915,
const struct skl_wrpll_params *pll_params,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int icl_mg_pll_find_divisors(int clock_khz, bool is_dp, bool use_ssc,
u32 *target_dco_khz,
struct icl_dpll_hw_state *hw_state,
bool is_dkl)
{ … }
static int icl_calc_mg_pll_state(struct intel_crtc_state *crtc_state,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static int icl_ddi_mg_pll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
void icl_set_active_port_dpll(struct intel_crtc_state *crtc_state,
enum icl_port_dpll_id port_dpll_id)
{ … }
static void icl_update_active_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int icl_compute_combo_phy_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static int icl_get_combo_phy_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int icl_compute_tc_phy_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static int icl_get_tc_phy_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int icl_compute_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static int icl_get_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
static void icl_put_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
static bool mg_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool dkl_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool icl_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state,
i915_reg_t enable_reg)
{ … }
static bool combo_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool tbt_pll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void icl_dpll_write(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct icl_dpll_hw_state *hw_state)
{ … }
static void icl_mg_pll_write(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct icl_dpll_hw_state *hw_state)
{ … }
static void dkl_pll_write(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct icl_dpll_hw_state *hw_state)
{ … }
static void icl_pll_power_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
i915_reg_t enable_reg)
{ … }
static void icl_pll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
i915_reg_t enable_reg)
{ … }
static void adlp_cmtg_clock_gating_wa(struct drm_i915_private *i915, struct intel_shared_dpll *pll)
{ … }
static void combo_pll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void tbt_pll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void mg_pll_enable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void icl_pll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
i915_reg_t enable_reg)
{ … }
static void combo_pll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void tbt_pll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void mg_pll_disable(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
static void icl_update_dpll_ref_clks(struct drm_i915_private *i915)
{ … }
static void icl_dump_hw_state(struct drm_printer *p,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static bool icl_compare_hw_state(const struct intel_dpll_hw_state *_a,
const struct intel_dpll_hw_state *_b)
{ … }
static const struct intel_shared_dpll_funcs combo_pll_funcs = …;
static const struct intel_shared_dpll_funcs tbt_pll_funcs = …;
static const struct intel_shared_dpll_funcs mg_pll_funcs = …;
static const struct dpll_info icl_plls[] = …;
static const struct intel_dpll_mgr icl_pll_mgr = …;
static const struct dpll_info ehl_plls[] = …;
static const struct intel_dpll_mgr ehl_pll_mgr = …;
static const struct intel_shared_dpll_funcs dkl_pll_funcs = …;
static const struct dpll_info tgl_plls[] = …;
static const struct intel_dpll_mgr tgl_pll_mgr = …;
static const struct dpll_info rkl_plls[] = …;
static const struct intel_dpll_mgr rkl_pll_mgr = …;
static const struct dpll_info dg1_plls[] = …;
static const struct intel_dpll_mgr dg1_pll_mgr = …;
static const struct dpll_info adls_plls[] = …;
static const struct intel_dpll_mgr adls_pll_mgr = …;
static const struct dpll_info adlp_plls[] = …;
static const struct intel_dpll_mgr adlp_pll_mgr = …;
void intel_shared_dpll_init(struct drm_i915_private *i915)
{ … }
int intel_compute_shared_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
int intel_reserve_shared_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
void intel_release_shared_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
void intel_update_active_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc,
struct intel_encoder *encoder)
{ … }
int intel_dpll_get_freq(struct drm_i915_private *i915,
const struct intel_shared_dpll *pll,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
bool intel_dpll_get_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_dpll_hw_state *dpll_hw_state)
{ … }
static void readout_dpll_hw_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
void intel_dpll_update_ref_clks(struct drm_i915_private *i915)
{ … }
void intel_dpll_readout_hw_state(struct drm_i915_private *i915)
{ … }
static void sanitize_dpll_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll)
{ … }
void intel_dpll_sanitize_state(struct drm_i915_private *i915)
{ … }
void intel_dpll_dump_hw_state(struct drm_i915_private *i915,
struct drm_printer *p,
const struct intel_dpll_hw_state *dpll_hw_state)
{ … }
bool intel_dpll_compare_hw_state(struct drm_i915_private *i915,
const struct intel_dpll_hw_state *a,
const struct intel_dpll_hw_state *b)
{ … }
static void
verify_single_dpll_state(struct drm_i915_private *i915,
struct intel_shared_dpll *pll,
struct intel_crtc *crtc,
const struct intel_crtc_state *new_crtc_state)
{ … }
static bool has_alt_port_dpll(const struct intel_shared_dpll *old_pll,
const struct intel_shared_dpll *new_pll)
{ … }
void intel_shared_dpll_state_verify(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{ … }
void intel_shared_dpll_verify_disabled(struct intel_atomic_state *state)
{ … }