Re: [PATCH] drm/i915: extract AUX mask assignment to separate function

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

 



On Fri, Feb 22, 2019 at 03:59:54PM -0800, Lucas De Marchi wrote:
> No change in behavior, this only allows to more easily follow the flow
> of gen8_de_irq_handler without the mask assignments for each platform.
> This also re-organizes the branches a little bit, so the one-off case
> for CNL_WITH_PORT_F is separate from the generic gen >= 11.
> 
> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> Cc: Jose Souza <jose.souza@xxxxxxxxx>
> Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 34 +++++++++++++++++++--------------
>  1 file changed, 20 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 7c7e84e86c6a..524caf168a01 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2676,6 +2676,25 @@ static void gen11_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
>  		DRM_ERROR("Unexpected DE HPD interrupt 0x%08x\n", iir);
>  }
>  
> +static u32 de_port_iir_aux_mask(struct drm_i915_private *dev_priv)

I would drop the "iir" since this applies to all irq registers.
And maybe prefix with "gen8_" ?

Otherwise
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>

> +{
> +	u32 mask = GEN8_AUX_CHANNEL_A;
> +
> +	if (INTEL_GEN(dev_priv) >= 9)
> +		mask |= GEN9_AUX_CHANNEL_B |
> +			GEN9_AUX_CHANNEL_C |
> +			GEN9_AUX_CHANNEL_D;
> +
> +	if (IS_CNL_WITH_PORT_F(dev_priv))
> +		mask |= CNL_AUX_CHANNEL_F;
> +
> +	if (INTEL_GEN(dev_priv) >= 11)
> +		mask |= ICL_AUX_CHANNEL_E |
> +			CNL_AUX_CHANNEL_F;
> +
> +	return mask;
> +}
> +
>  static irqreturn_t
>  gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  {
> @@ -2731,20 +2750,7 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  			I915_WRITE(GEN8_DE_PORT_IIR, iir);
>  			ret = IRQ_HANDLED;
>  
> -			tmp_mask = GEN8_AUX_CHANNEL_A;
> -			if (INTEL_GEN(dev_priv) >= 9)
> -				tmp_mask |= GEN9_AUX_CHANNEL_B |
> -					    GEN9_AUX_CHANNEL_C |
> -					    GEN9_AUX_CHANNEL_D;
> -
> -			if (INTEL_GEN(dev_priv) >= 11)
> -				tmp_mask |= ICL_AUX_CHANNEL_E;
> -
> -			if (IS_CNL_WITH_PORT_F(dev_priv) ||
> -			    INTEL_GEN(dev_priv) >= 11)
> -				tmp_mask |= CNL_AUX_CHANNEL_F;
> -
> -			if (iir & tmp_mask) {
> +			if (iir & de_port_iir_aux_mask(dev_priv)) {
>  				dp_aux_irq_handler(dev_priv);
>  				found = true;
>  			}
> -- 
> 2.20.0

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




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

  Powered by Linux