mirror of https://gitee.com/openkylin/linux.git
drm/i915/bxt: Determine programmed frequency
Add placeholder function for calculating programmed pixel clock. Note: Formula to back calculate link clock from dividers not available currently. v2: - rebased on upstream s/crtc_config/crtc_state/ change (imre) Signed-off-by: Satheeshakrishna M <satheeshakrishna.m@intel.com> (v1) Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
3760b59cba
commit
977bb38d2d
|
@ -880,6 +880,32 @@ static void hsw_ddi_clock_get(struct intel_encoder *encoder,
|
|||
pipe_config->base.adjusted_mode.crtc_clock = pipe_config->port_clock;
|
||||
}
|
||||
|
||||
static int bxt_calc_pll_link(struct drm_i915_private *dev_priv,
|
||||
enum intel_dpll_id dpll)
|
||||
{
|
||||
/* FIXME formula not available in bspec */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void bxt_ddi_clock_get(struct intel_encoder *encoder,
|
||||
struct intel_crtc_state *pipe_config)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
|
||||
enum port port = intel_ddi_get_encoder_port(encoder);
|
||||
uint32_t dpll = port;
|
||||
|
||||
pipe_config->port_clock =
|
||||
bxt_calc_pll_link(dev_priv, dpll);
|
||||
|
||||
if (pipe_config->has_dp_encoder)
|
||||
pipe_config->base.adjusted_mode.crtc_clock =
|
||||
intel_dotclock_calculate(pipe_config->port_clock,
|
||||
&pipe_config->dp_m_n);
|
||||
else
|
||||
pipe_config->base.adjusted_mode.crtc_clock =
|
||||
pipe_config->port_clock;
|
||||
}
|
||||
|
||||
void intel_ddi_clock_get(struct intel_encoder *encoder,
|
||||
struct intel_crtc_state *pipe_config)
|
||||
{
|
||||
|
@ -887,8 +913,10 @@ void intel_ddi_clock_get(struct intel_encoder *encoder,
|
|||
|
||||
if (INTEL_INFO(dev)->gen <= 8)
|
||||
hsw_ddi_clock_get(encoder, pipe_config);
|
||||
else
|
||||
else if (IS_SKYLAKE(dev))
|
||||
skl_ddi_clock_get(encoder, pipe_config);
|
||||
else if (IS_BROXTON(dev))
|
||||
bxt_ddi_clock_get(encoder, pipe_config);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1471,6 +1471,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
|
|||
|
||||
if (IS_SKYLAKE(dev) && is_edp(intel_dp))
|
||||
skl_edp_set_pll_config(pipe_config, common_rates[clock]);
|
||||
else if (IS_BROXTON(dev))
|
||||
/* handled in ddi */;
|
||||
else if (IS_HASWELL(dev) || IS_BROADWELL(dev))
|
||||
hsw_dp_set_ddi_pll_sel(pipe_config, intel_dp->link_bw);
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue