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@xxxxxxxxx> > > 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) > +{ > + 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; > }
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx