[Intel-gfx] [PATCH v3 14/19] drm/i915: Don't enable hpd detection logic from irq_postinstall()

Lucas De Marchi lucas.demarchi at intel.com
Wed Oct 28 21:47:50 UTC 2020


On Wed, Oct 28, 2020 at 11:33:18PM +0200, Ville Syrjälä wrote:
>From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
>No reason that I can see why we should enable the hpd detection logic
>already during irq postinstall phase. We don't even do this on all
>the platforms. We just need it before we actually enable the hotplug
>interrupts in .hpd_irq_setup(), and in fact we already do it there as
>well. Let's just eliminate the redundant early setup.

yep, it makes sense. If CI is happy and doesn't explode in something
neither of us antecipated, I'm happy too.


Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

Lucas De Marchi

>
>Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
>---
> drivers/gpu/drm/i915/i915_irq.c | 40 +++------------------------------
> 1 file changed, 3 insertions(+), 37 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>index 43e3e7f70c14..3ff5747e755d 100644
>--- a/drivers/gpu/drm/i915/i915_irq.c
>+++ b/drivers/gpu/drm/i915/i915_irq.c
>@@ -3407,8 +3407,8 @@ static void ilk_hpd_irq_setup(struct drm_i915_private *dev_priv)
> 	ibx_hpd_irq_setup(dev_priv);
> }
>
>-static void __bxt_hpd_detection_setup(struct drm_i915_private *dev_priv,
>-				      u32 enabled_irqs)
>+static void bxt_hpd_detection_setup(struct drm_i915_private *dev_priv,
>+				    u32 enabled_irqs)
> {
> 	u32 hotplug;
>
>@@ -3439,11 +3439,6 @@ static void __bxt_hpd_detection_setup(struct drm_i915_private *dev_priv,
> 	I915_WRITE(PCH_PORT_HOTPLUG, hotplug);
> }
>
>-static void bxt_hpd_detection_setup(struct drm_i915_private *dev_priv)
>-{
>-	__bxt_hpd_detection_setup(dev_priv, BXT_DE_PORT_HOTPLUG_MASK);
>-}
>-
> static void bxt_hpd_irq_setup(struct drm_i915_private *dev_priv)
> {
> 	u32 hotplug_irqs, enabled_irqs;
>@@ -3453,7 +3448,7 @@ static void bxt_hpd_irq_setup(struct drm_i915_private *dev_priv)
>
> 	bdw_update_port_irq(dev_priv, hotplug_irqs, enabled_irqs);
>
>-	__bxt_hpd_detection_setup(dev_priv, enabled_irqs);
>+	bxt_hpd_detection_setup(dev_priv, enabled_irqs);
> }
>
> static void ibx_irq_postinstall(struct drm_i915_private *dev_priv)
>@@ -3472,12 +3467,6 @@ static void ibx_irq_postinstall(struct drm_i915_private *dev_priv)
>
> 	gen3_assert_iir_is_zero(&dev_priv->uncore, SDEIIR);
> 	I915_WRITE(SDEIMR, ~mask);
>-
>-	if (HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv) ||
>-	    HAS_PCH_LPT(dev_priv))
>-		ibx_hpd_detection_setup(dev_priv);
>-	else
>-		spt_hpd_detection_setup(dev_priv);
> }
>
> static void ilk_irq_postinstall(struct drm_i915_private *dev_priv)
>@@ -3517,8 +3506,6 @@ static void ilk_irq_postinstall(struct drm_i915_private *dev_priv)
> 	GEN3_IRQ_INIT(uncore, DE, dev_priv->irq_mask,
> 		      display_mask | extra_mask);
>
>-	ilk_hpd_detection_setup(dev_priv);
>-
> 	ibx_irq_postinstall(dev_priv);
> }
>
>@@ -3639,12 +3626,6 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
>
> 		GEN3_IRQ_INIT(uncore, GEN11_DE_HPD_, ~de_hpd_masked,
> 			      de_hpd_enables);
>-		gen11_tc_hpd_detection_setup(dev_priv);
>-		gen11_tbt_hpd_detection_setup(dev_priv);
>-	} else if (IS_GEN9_LP(dev_priv)) {
>-		bxt_hpd_detection_setup(dev_priv);
>-	} else if (IS_BROADWELL(dev_priv)) {
>-		ilk_hpd_detection_setup(dev_priv);
> 	}
> }
>
>@@ -3672,21 +3653,6 @@ 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_DG1(dev_priv))
>-		icp_ddi_hpd_detection_setup(dev_priv, DG1_DDI_HPD_ENABLE_MASK);
>-	else 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(HPD_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)
>-- 
>2.26.2
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list