From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/6] drm/i915: add ibx_irq_preinstall Date: Thu, 6 Jun 2013 13:41:19 +0200 Message-ID: <20130606114119.GA7827@phenom.ffwll.local> References: <1370452916-3406-1-git-send-email-przanoni@gmail.com> <1370452916-3406-2-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ea0-f180.google.com (mail-ea0-f180.google.com [209.85.215.180]) by gabe.freedesktop.org (Postfix) with ESMTP id A6587E5C6E for ; Thu, 6 Jun 2013 04:41:32 -0700 (PDT) Received: by mail-ea0-f180.google.com with SMTP id k10so2574189eaj.39 for ; Thu, 06 Jun 2013 04:41:31 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1370452916-3406-2-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Wed, Jun 05, 2013 at 02:21:51PM -0300, Paulo Zanoni wrote: > From: Paulo Zanoni > > So we can remove some duplicate code. All the PCHs are very similar > and right now the code is the same. I plan to add more code, so we > would have more duplicated code. > > Signed-off-by: Paulo Zanoni Queued for -next, thanks for the patch. For the other prep patches I'd like to review our interrupt code first a bit, like describe in my reply to the vecs enabling patches. -Daniel > --- > drivers/gpu/drm/i915/i915_irq.c | 44 ++++++++++++++++++++--------------------- > 1 file changed, 21 insertions(+), 23 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 63996aa..c482e8a 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -2472,6 +2472,25 @@ void i915_hangcheck_elapsed(unsigned long data) > DRM_I915_HANGCHECK_JIFFIES)); > } > > +static void ibx_irq_preinstall(struct drm_device *dev) > +{ > + struct drm_i915_private *dev_priv = dev->dev_private; > + > + if (HAS_PCH_NOP(dev)) > + return; > + > + /* south display irq */ > + I915_WRITE(SDEIMR, 0xffffffff); > + /* > + * SDEIER is also touched by the interrupt handler to work around missed > + * PCH interrupts. Hence we can't update it after the interrupt handler > + * is enabled - instead we unconditionally enable all PCH interrupt > + * sources here, but then only unmask them as needed with SDEIMR. > + */ > + I915_WRITE(SDEIER, 0xffffffff); > + POSTING_READ(SDEIER); > +} > + > /* drm_dma.h hooks > */ > static void ironlake_irq_preinstall(struct drm_device *dev) > @@ -2493,16 +2512,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev) > I915_WRITE(GTIER, 0x0); > POSTING_READ(GTIER); > > - /* south display irq */ > - I915_WRITE(SDEIMR, 0xffffffff); > - /* > - * SDEIER is also touched by the interrupt handler to work around missed > - * PCH interrupts. Hence we can't update it after the interrupt handler > - * is enabled - instead we unconditionally enable all PCH interrupt > - * sources here, but then only unmask them as needed with SDEIMR. > - */ > - I915_WRITE(SDEIER, 0xffffffff); > - POSTING_READ(SDEIER); > + ibx_irq_preinstall(dev); > } > > static void ivybridge_irq_preinstall(struct drm_device *dev) > @@ -2529,19 +2539,7 @@ static void ivybridge_irq_preinstall(struct drm_device *dev) > I915_WRITE(GEN6_PMIER, 0x0); > POSTING_READ(GEN6_PMIER); > > - if (HAS_PCH_NOP(dev)) > - return; > - > - /* south display irq */ > - I915_WRITE(SDEIMR, 0xffffffff); > - /* > - * SDEIER is also touched by the interrupt handler to work around missed > - * PCH interrupts. Hence we can't update it after the interrupt handler > - * is enabled - instead we unconditionally enable all PCH interrupt > - * sources here, but then only unmask them as needed with SDEIMR. > - */ > - I915_WRITE(SDEIER, 0xffffffff); > - POSTING_READ(SDEIER); > + ibx_irq_preinstall(dev); > } > > static void valleyview_irq_preinstall(struct drm_device *dev) > -- > 1.8.1.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch