[Intel-gfx] [PATCH v2 10/26] drm/i915: Extract intel_crtc_dotclock()

Jani Nikula jani.nikula at linux.intel.com
Mon May 16 12:43:18 UTC 2022


On Wed, 04 May 2022, Ville Syrjala <ville.syrjala at linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Extract intel_crtc_dotclock() from ddi_dotclock_get(). We'll reuse
> this during state computation in order to determine the actual final
> dotclcok after the DPLL computation has been done (which may not give
> us the exact same port_clock that we fed in).
>
> v2: Add the prototype
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Okay, seems like intel_crtc_dotclock() might be in the wrong place now,
but okay for now.

Reviewed-by: Jani Nikula <jani.nikula at intel.com>


> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 18 ++++++++++++------
>  drivers/gpu/drm/i915/display/intel_display.h |  1 +
>  2 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 9e6fa59eabba..0cf2d4fba6a8 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -322,14 +322,10 @@ static int icl_calc_tbt_pll_link(struct drm_i915_private *dev_priv,
>  	}
>  }
>  
> -static void ddi_dotclock_get(struct intel_crtc_state *pipe_config)
> +int intel_crtc_dotclock(const struct intel_crtc_state *pipe_config)
>  {
>  	int dotclock;
>  
> -	/* CRT dotclock is determined via other means */
> -	if (pipe_config->has_pch_encoder)
> -		return;
> -
>  	if (intel_crtc_has_dp_encoder(pipe_config))
>  		dotclock = intel_dotclock_calculate(pipe_config->port_clock,
>  						    &pipe_config->dp_m_n);
> @@ -345,7 +341,17 @@ static void ddi_dotclock_get(struct intel_crtc_state *pipe_config)
>  	if (pipe_config->pixel_multiplier)
>  		dotclock /= pipe_config->pixel_multiplier;
>  
> -	pipe_config->hw.adjusted_mode.crtc_clock = dotclock;
> +	return dotclock;
> +}
> +
> +static void ddi_dotclock_get(struct intel_crtc_state *pipe_config)
> +{
> +	/* CRT dotclock is determined via other means */
> +	if (pipe_config->has_pch_encoder)
> +		return;
> +
> +	pipe_config->hw.adjusted_mode.crtc_clock =
> +		intel_crtc_dotclock(pipe_config);
>  }
>  
>  void intel_ddi_set_dp_msa(const struct intel_crtc_state *crtc_state,
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
> index 187910d94ec6..7af6b5a413dc 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -635,6 +635,7 @@ void intel_cpu_transcoder_get_m2_n2(struct intel_crtc *crtc,
>  void i9xx_crtc_clock_get(struct intel_crtc *crtc,
>  			 struct intel_crtc_state *pipe_config);
>  int intel_dotclock_calculate(int link_freq, const struct intel_link_m_n *m_n);
> +int intel_crtc_dotclock(const struct intel_crtc_state *pipe_config);
>  enum intel_display_power_domain intel_port_to_power_domain(struct intel_digital_port *dig_port);
>  enum intel_display_power_domain
>  intel_aux_power_domain(struct intel_digital_port *dig_port);

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list