[Intel-gfx] [PATCH 15/20] drm/i915: Don't enable hpd detection logic from irq_postinstall()
Imre Deak
imre.deak at intel.com
Tue Oct 6 16:20:46 UTC 2020
On Tue, Oct 06, 2020 at 05:33:44PM +0300, Ville Syrjala 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.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
It's needed by LSPCON resume, which happens before initing HPD
interrupts. I suppose that could be done later, after HPD interrupt init,
I don't see now why it would need to be done at encoder->reset() time.
> ---
> drivers/gpu/drm/i915/i915_irq.c | 38 +++------------------------------
> 1 file changed, 3 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 0886369e3890..b1c56a29376c 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -3378,8 +3378,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;
>
> @@ -3410,11 +3410,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;
> @@ -3424,7 +3419,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)
> @@ -3443,12 +3438,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)
> @@ -3485,8 +3474,6 @@ static void ilk_irq_postinstall(struct drm_i915_private *dev_priv)
>
> gen5_gt_irq_postinstall(&dev_priv->gt);
>
> - ilk_hpd_detection_setup(dev_priv);
> -
> ibx_irq_postinstall(dev_priv);
>
> if (IS_IRONLAKE_M(dev_priv)) {
> @@ -3618,12 +3605,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);
> }
> }
>
> @@ -3651,19 +3632,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_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