[Intel-gfx] [PATCH v2 34/50] drm/i915/dg2: Skip shared DPLL handling

Souza, Jose jose.souza at intel.com
Fri Jul 16 19:38:08 UTC 2021


On Tue, 2021-07-13 at 20:15 -0700, Matt Roper wrote:
> DG2 has no shared DPLL's or DDI clock muxing.  The Port PLL is embedded
> within the PHY.
> 
> Bspec: 54032
> Bspec: 54034

Reviewed-by: José Roberto de Souza <jose.souza at intel.com>

> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c  | 10 +++++++---
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  5 ++++-
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 65ddb6ca16e6..45dc58dedf57 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -3474,7 +3474,8 @@ static void icl_ddi_bigjoiner_pre_enable(struct intel_atomic_state *state,
>  		 * Enable sequence steps 1-7 on bigjoiner master
>  		 */
>  		intel_encoders_pre_pll_enable(state, master);
> -		intel_enable_shared_dpll(master_crtc_state);
> +		if (master_crtc_state->shared_dpll)
> +			intel_enable_shared_dpll(master_crtc_state);
>  		intel_encoders_pre_enable(state, master);
>  
>  		/* and DSC on slave */
> @@ -8633,10 +8634,11 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
>  
>  	PIPE_CONF_CHECK_BOOL(double_wide);
>  
> -	PIPE_CONF_CHECK_P(shared_dpll);
> +	if (dev_priv->dpll.mgr)
> +		PIPE_CONF_CHECK_P(shared_dpll);
>  
>  	/* FIXME do the readout properly and get rid of this quirk */
> -	if (!PIPE_CONF_QUIRK(PIPE_CONFIG_QUIRK_BIGJOINER_SLAVE)) {
> +	if (dev_priv->dpll.mgr && !PIPE_CONF_QUIRK(PIPE_CONFIG_QUIRK_BIGJOINER_SLAVE)) {
>  		PIPE_CONF_CHECK_X(dpll_hw_state.dpll);
>  		PIPE_CONF_CHECK_X(dpll_hw_state.dpll_md);
>  		PIPE_CONF_CHECK_X(dpll_hw_state.fp0);
> @@ -8668,7 +8670,9 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
>  		PIPE_CONF_CHECK_X(dpll_hw_state.mg_pll_ssc);
>  		PIPE_CONF_CHECK_X(dpll_hw_state.mg_pll_bias);
>  		PIPE_CONF_CHECK_X(dpll_hw_state.mg_pll_tdc_coldst_bias);
> +	}
>  
> +	if (!PIPE_CONF_QUIRK(PIPE_CONFIG_QUIRK_BIGJOINER_SLAVE)) {
>  		PIPE_CONF_CHECK_X(dsi_pll.ctrl);
>  		PIPE_CONF_CHECK_X(dsi_pll.div);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> index 882bfd499e55..5688d9704636 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> @@ -4462,7 +4462,10 @@ void intel_shared_dpll_init(struct drm_device *dev)
>  	const struct dpll_info *dpll_info;
>  	int i;
>  
> -	if (IS_ALDERLAKE_P(dev_priv))
> +	if (IS_DG2(dev_priv))
> +		/* No shared DPLLs on DG2; port PLLs are part of the PHY */
> +		dpll_mgr = NULL;
> +	else if (IS_ALDERLAKE_P(dev_priv))
>  		dpll_mgr = &adlp_pll_mgr;
>  	else if (IS_ALDERLAKE_S(dev_priv))
>  		dpll_mgr = &adls_pll_mgr;



More information about the Intel-gfx mailing list