Re: [PATCH 7/7] drm/i915: Reuse <platform>_hotplug_mask() in .hpd_detection_setup()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2023-03-02 at 18:10 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> 
> Replace the hardcoded masks with just a loop over all hpd
> pins using the <platform>_hotplug_mask() functions.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> ---

Reviewed-by: Vinod Govindapillai <vinod.govindapillai@xxxxxxxxx>

>  drivers/gpu/drm/i915/i915_irq.c | 57 +++++++++++++--------------------
>  1 file changed, 22 insertions(+), 35 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 9d00b840727c..11c6a9ca3c23 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -82,6 +82,7 @@ static inline void pmu_irq_stats(struct drm_i915_private *i915,
>  
>  typedef bool (*long_pulse_detect_func)(enum hpd_pin pin, u32 val);
>  typedef u32 (*hotplug_enables_func)(struct intel_encoder *encoder);
> +typedef u32 (*hotplug_mask_func)(enum hpd_pin pin);
>  
>  static const u32 hpd_ilk[HPD_NUM_PINS] = {
>         [HPD_PORT_A] = DE_DP_A_HOTPLUG,
> @@ -878,6 +879,18 @@ static u32 intel_hpd_hotplug_irqs(struct drm_i915_private *dev_priv,
>         return hotplug_irqs;
>  }
>  
> +static u32 intel_hpd_hotplug_mask(struct drm_i915_private *i915,
> +                                 hotplug_mask_func hotplug_mask)
> +{
> +       enum hpd_pin pin;
> +       u32 hotplug = 0;
> +
> +       for_each_hpd_pin(pin)
> +               hotplug |= hotplug_mask(pin);
> +
> +       return hotplug;
> +}
> +
>  static u32 intel_hpd_hotplug_enables(struct drm_i915_private *i915,
>                                      hotplug_enables_func hotplug_enables)
>  {
> @@ -2886,10 +2899,7 @@ static void ibx_hpd_detection_setup(struct drm_i915_private *dev_priv)
>          * The pulse duration bits are reserved on LPT+.
>          */
>         intel_uncore_rmw(&dev_priv->uncore, PCH_PORT_HOTPLUG,
> -                        ibx_hotplug_mask(HPD_PORT_A) |
> -                        ibx_hotplug_mask(HPD_PORT_B) |
> -                        ibx_hotplug_mask(HPD_PORT_C) |
> -                        ibx_hotplug_mask(HPD_PORT_D),
> +                        intel_hpd_hotplug_mask(dev_priv, ibx_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, ibx_hotplug_enables));
>  }
>  
> @@ -2965,10 +2975,7 @@ static u32 icp_tc_hotplug_enables(struct intel_encoder *encoder)
>  static void icp_ddi_hpd_detection_setup(struct drm_i915_private *dev_priv)
>  {
>         intel_uncore_rmw(&dev_priv->uncore, SHOTPLUG_CTL_DDI,
> -                        icp_ddi_hotplug_mask(HPD_PORT_A) |
> -                        icp_ddi_hotplug_mask(HPD_PORT_B) |
> -                        icp_ddi_hotplug_mask(HPD_PORT_C) |
> -                        icp_ddi_hotplug_mask(HPD_PORT_D),
> +                        intel_hpd_hotplug_mask(dev_priv, icp_ddi_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, icp_ddi_hotplug_enables));
>  }
>  
> @@ -2984,12 +2991,7 @@ static void icp_ddi_hpd_enable_detection(struct intel_encoder *encoder)
>  static void icp_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
>  {
>         intel_uncore_rmw(&dev_priv->uncore, SHOTPLUG_CTL_TC,
> -                        icp_tc_hotplug_mask(HPD_PORT_TC1) |
> -                        icp_tc_hotplug_mask(HPD_PORT_TC2) |
> -                        icp_tc_hotplug_mask(HPD_PORT_TC3) |
> -                        icp_tc_hotplug_mask(HPD_PORT_TC4) |
> -                        icp_tc_hotplug_mask(HPD_PORT_TC5) |
> -                        icp_tc_hotplug_mask(HPD_PORT_TC6),
> +                        intel_hpd_hotplug_mask(dev_priv, icp_tc_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, icp_tc_hotplug_enables));
>  }
>  
> @@ -3075,12 +3077,7 @@ static void dg1_hpd_irq_setup(struct drm_i915_private *dev_priv)
>  static void gen11_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
>  {
>         intel_uncore_rmw(&dev_priv->uncore, GEN11_TC_HOTPLUG_CTL,
> -                        gen11_hotplug_mask(HPD_PORT_TC1) |
> -                        gen11_hotplug_mask(HPD_PORT_TC2) |
> -                        gen11_hotplug_mask(HPD_PORT_TC3) |
> -                        gen11_hotplug_mask(HPD_PORT_TC4) |
> -                        gen11_hotplug_mask(HPD_PORT_TC5) |
> -                        gen11_hotplug_mask(HPD_PORT_TC6),
> +                        intel_hpd_hotplug_mask(dev_priv, gen11_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, gen11_hotplug_enables));
>  }
>  
> @@ -3096,12 +3093,7 @@ static void gen11_tc_hpd_enable_detection(struct intel_encoder *encoder)
>  static void gen11_tbt_hpd_detection_setup(struct drm_i915_private *dev_priv)
>  {
>         intel_uncore_rmw(&dev_priv->uncore, GEN11_TBT_HOTPLUG_CTL,
> -                        gen11_hotplug_mask(HPD_PORT_TC1) |
> -                        gen11_hotplug_mask(HPD_PORT_TC2) |
> -                        gen11_hotplug_mask(HPD_PORT_TC3) |
> -                        gen11_hotplug_mask(HPD_PORT_TC4) |
> -                        gen11_hotplug_mask(HPD_PORT_TC5) |
> -                        gen11_hotplug_mask(HPD_PORT_TC6),
> +                        intel_hpd_hotplug_mask(dev_priv, gen11_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, gen11_hotplug_enables));
>  }
>  
> @@ -3199,14 +3191,11 @@ static void spt_hpd_detection_setup(struct drm_i915_private *dev_priv)
>  
>         /* Enable digital hotplug on the PCH */
>         intel_uncore_rmw(&dev_priv->uncore, PCH_PORT_HOTPLUG,
> -                        spt_hotplug_mask(HPD_PORT_A) |
> -                        spt_hotplug_mask(HPD_PORT_B) |
> -                        spt_hotplug_mask(HPD_PORT_C) |
> -                        spt_hotplug_mask(HPD_PORT_D),
> +                        intel_hpd_hotplug_mask(dev_priv, spt_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, spt_hotplug_enables));
>  
>         intel_uncore_rmw(&dev_priv->uncore, PCH_PORT_HOTPLUG2,
> -                        spt_hotplug2_mask(HPD_PORT_E),
> +                        intel_hpd_hotplug_mask(dev_priv, spt_hotplug2_mask),
>                          intel_hpd_hotplug_enables(dev_priv, spt_hotplug2_enables));
>  }
>  
> @@ -3275,7 +3264,7 @@ static void ilk_hpd_detection_setup(struct drm_i915_private *dev_priv)
>          * The pulse duration bits are reserved on HSW+.
>          */
>         intel_uncore_rmw(&dev_priv->uncore, DIGITAL_PORT_HOTPLUG_CNTRL,
> -                        ilk_hotplug_mask(HPD_PORT_A),
> +                        intel_hpd_hotplug_mask(dev_priv, ilk_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, ilk_hotplug_enables));
>  }
>  
> @@ -3349,9 +3338,7 @@ static u32 bxt_hotplug_enables(struct intel_encoder *encoder)
>  static void bxt_hpd_detection_setup(struct drm_i915_private *dev_priv)
>  {
>         intel_uncore_rmw(&dev_priv->uncore, PCH_PORT_HOTPLUG,
> -                        bxt_hotplug_mask(HPD_PORT_A) |
> -                        bxt_hotplug_mask(HPD_PORT_B) |
> -                        bxt_hotplug_mask(HPD_PORT_C),
> +                        intel_hpd_hotplug_mask(dev_priv, bxt_hotplug_mask),
>                          intel_hpd_hotplug_enables(dev_priv, bxt_hotplug_enables));
>  }
>  





[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux