[Intel-gfx] [08/12] drm/i915: Split icp_hpd_detection_setup() into ddi vs. tc parts

Souza, Jose jose.souza at intel.com
Tue Sep 8 16:49:30 UTC 2020


On Wed, 2020-07-01 at 00:55 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <
> ville.syrjala at linux.intel.com
> >
> 
> No reason to stuff both DDI and TC port handling into the same
> function. Split it into two.

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

> 
> Signed-off-by: Ville Syrjälä <
> ville.syrjala at linux.intel.com
> >
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 48 ++++++++++++++++++---------------
>  1 file changed, 27 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 839ae674bc44..92d74448ee03 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -3045,21 +3045,24 @@ static void ibx_hpd_irq_setup(struct drm_i915_private *dev_priv)
>  	ibx_hpd_detection_setup(dev_priv);
>  }
>  
> -static void icp_hpd_detection_setup(struct drm_i915_private *dev_priv,
> -				    u32 ddi_hotplug_enable_mask,
> -				    u32 tc_hotplug_enable_mask)
> +static void icp_ddi_hpd_detection_setup(struct drm_i915_private *dev_priv,
> +					u32 enable_mask)
>  {
>  	u32 hotplug;
>  
>  	hotplug = I915_READ(SHOTPLUG_CTL_DDI);
> -	hotplug |= ddi_hotplug_enable_mask;
> +	hotplug |= enable_mask;
>  	I915_WRITE(SHOTPLUG_CTL_DDI, hotplug);
> +}
>  
> -	if (tc_hotplug_enable_mask) {
> -		hotplug = I915_READ(SHOTPLUG_CTL_TC);
> -		hotplug |= tc_hotplug_enable_mask;
> -		I915_WRITE(SHOTPLUG_CTL_TC, hotplug);
> -	}
> +static void icp_tc_hpd_detection_setup(struct drm_i915_private *dev_priv,
> +				       u32 enable_mask)
> +{
> +	u32 hotplug;
> +
> +	hotplug = I915_READ(SHOTPLUG_CTL_TC);
> +	hotplug |= enable_mask;
> +	I915_WRITE(SHOTPLUG_CTL_TC, hotplug);
>  }
>  
>  static void icp_hpd_irq_setup(struct drm_i915_private *dev_priv,
> @@ -3075,7 +3078,9 @@ static void icp_hpd_irq_setup(struct drm_i915_private *dev_priv,
>  
>  	ibx_display_interrupt_update(dev_priv, hotplug_irqs, enabled_irqs);
>  
> -	icp_hpd_detection_setup(dev_priv, ddi_enable_mask, tc_enable_mask);
> +	icp_ddi_hpd_detection_setup(dev_priv, ddi_enable_mask);
> +	if (tc_enable_mask)
> +		icp_tc_hpd_detection_setup(dev_priv, tc_enable_mask);
>  }
>  
>  /*
> @@ -3493,17 +3498,18 @@ static void icp_irq_postinstall(struct drm_i915_private *dev_priv)
>  	gen3_assert_iir_is_zero(&dev_priv->uncore, SDEIIR);
>  	I915_WRITE(SDEIMR, ~mask);
>  
> -	if (HAS_PCH_TGP(dev_priv))
> -		icp_hpd_detection_setup(dev_priv, TGP_DDI_HPD_ENABLE_MASK,
> -					TGP_TC_HPD_ENABLE_MASK);
> -	else if (HAS_PCH_JSP(dev_priv))
> -		icp_hpd_detection_setup(dev_priv, TGP_DDI_HPD_ENABLE_MASK, 0);
> -	else if (HAS_PCH_MCC(dev_priv))
> -		icp_hpd_detection_setup(dev_priv, ICP_DDI_HPD_ENABLE_MASK,
> -					ICP_TC_HPD_ENABLE(PORT_TC1));
> -	else
> -		icp_hpd_detection_setup(dev_priv, ICP_DDI_HPD_ENABLE_MASK,
> -					ICP_TC_HPD_ENABLE_MASK);
> +	if (HAS_PCH_TGP(dev_priv)) {
> +		icp_ddi_hpd_detection_setup(dev_priv, TGP_DDI_HPD_ENABLE_MASK);
> +		icp_tc_hpd_detection_setup(dev_priv, TGP_TC_HPD_ENABLE_MASK);
> +	} else if (HAS_PCH_JSP(dev_priv)) {
> +		icp_ddi_hpd_detection_setup(dev_priv, TGP_DDI_HPD_ENABLE_MASK);
> +	} else if (HAS_PCH_MCC(dev_priv)) {
> +		icp_ddi_hpd_detection_setup(dev_priv, ICP_DDI_HPD_ENABLE_MASK);
> +		icp_tc_hpd_detection_setup(dev_priv, ICP_TC_HPD_ENABLE(PORT_TC1));
> +	} else {
> +		icp_ddi_hpd_detection_setup(dev_priv, ICP_DDI_HPD_ENABLE_MASK);
> +		icp_tc_hpd_detection_setup(dev_priv, ICP_TC_HPD_ENABLE_MASK);
> +	}
>  }
>  
>  static void gen11_irq_postinstall(struct drm_i915_private *dev_priv)
> 


More information about the Intel-gfx mailing list