From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 87/89] drm/i915/skl: AUX irqs have moved Date: Fri, 26 Sep 2014 18:21:05 +0300 Message-ID: <87eguyl866.fsf@gaia.fi.intel.com> References: <1409830075-11139-1-git-send-email-damien.lespiau@intel.com> <1409830075-11139-88-git-send-email-damien.lespiau@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id C06B16E0BC for ; Fri, 26 Sep 2014 08:22:18 -0700 (PDT) In-Reply-To: <1409830075-11139-88-git-send-email-damien.lespiau@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Damien Lespiau , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Damien Lespiau writes: > From: Jesse Barnes > > Use the new AUX port irq bits where needed. > > v2: Rebase on top of upstream changes > v3: Rebase on top of Oscar change to write IIR as soon as possible (Damien) > v4: Rebase on top of the for_each_pipe() change adding dev_priv as first > argument (Damien) > > Signed-off-by: Jesse Barnes > Signed-off-by: Damien Lespiau Reviewed-by: Mika Kuoppala > --- > drivers/gpu/drm/i915/i915_irq.c | 17 +++++++++++++---- > drivers/gpu/drm/i915/i915_reg.h | 3 +++ > 2 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 734b73e..8c7fbfb 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -2542,6 +2542,11 @@ static irqreturn_t gen8_irq_handler(int irq, void *arg) > irqreturn_t ret = IRQ_NONE; > uint32_t tmp = 0; > enum pipe pipe; > + u32 aux_mask = GEN8_AUX_CHANNEL_A; > + > + if (IS_GEN9(dev)) > + aux_mask |= GEN9_AUX_CHANNEL_B | GEN9_AUX_CHANNEL_C | > + GEN9_AUX_CHANNEL_D; > > master_ctl = I915_READ(GEN8_MASTER_IRQ); > master_ctl &= ~GEN8_MASTER_IRQ_CONTROL; > @@ -2574,7 +2579,8 @@ static irqreturn_t gen8_irq_handler(int irq, void *arg) > if (tmp) { > I915_WRITE(GEN8_DE_PORT_IIR, tmp); > ret = IRQ_HANDLED; > - if (tmp & GEN8_AUX_CHANNEL_A) > + > + if (tmp & aux_mask) > dp_aux_irq_handler(dev); > else > DRM_ERROR("Unexpected DE Port interrupt\n"); > @@ -3859,11 +3865,14 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv) > uint32_t de_pipe_masked = GEN8_PIPE_CDCLK_CRC_DONE; > uint32_t de_pipe_enables; > int pipe; > + u32 aux_en = GEN8_AUX_CHANNEL_A; > > - if (IS_GEN9(dev_priv)) > + if (IS_GEN9(dev_priv)) { > de_pipe_masked |= GEN9_PIPE_PLANE1_FLIP_DONE | > GEN9_DE_PIPE_IRQ_FAULT_ERRORS; > - else > + aux_en |= GEN9_AUX_CHANNEL_B | GEN9_AUX_CHANNEL_C | > + GEN9_AUX_CHANNEL_D; > + } else > de_pipe_masked |= GEN8_PIPE_PRIMARY_FLIP_DONE | > GEN8_DE_PIPE_IRQ_FAULT_ERRORS; > > @@ -3881,7 +3890,7 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv) > dev_priv->de_irq_mask[pipe], > de_pipe_enables); > > - GEN5_IRQ_INIT(GEN8_DE_PORT_, ~GEN8_AUX_CHANNEL_A, GEN8_AUX_CHANNEL_A); > + GEN5_IRQ_INIT(GEN8_DE_PORT_, ~aux_en, aux_en); > } > > static int gen8_irq_postinstall(struct drm_device *dev) > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 35c0759..217001d 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -4990,6 +4990,9 @@ enum skl_disp_power_wells { > #define GEN8_DE_PORT_IIR 0x44448 > #define GEN8_DE_PORT_IER 0x4444c > #define GEN8_PORT_DP_A_HOTPLUG (1 << 3) > +#define GEN9_AUX_CHANNEL_D (1 << 27) > +#define GEN9_AUX_CHANNEL_C (1 << 26) > +#define GEN9_AUX_CHANNEL_B (1 << 25) > #define GEN8_AUX_CHANNEL_A (1 << 0) > > #define GEN8_DE_MISC_ISR 0x44460 > -- > 1.8.3.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx