[Intel-gfx] [PATCH] drm/i915: extract AUX mask assignment to separate function
Souza, Jose
jose.souza at intel.com
Sat Feb 23 00:07:09 UTC 2019
On Fri, 2019-02-22 at 15:59 -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.
Reviewed-by: José Roberto de Souza <jose.souza at intel.com>
>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Jose Souza <jose.souza at intel.com>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
> 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)
> +{
> + 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;
> }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20190223/4371052d/attachment.sig>
More information about the Intel-gfx
mailing list