From patchwork Tue Aug 9 16:29:20 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesse Barnes X-Patchwork-Id: 1050252 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by demeter2.kernel.org (8.14.4/8.14.4) with ESMTP id p79GU3In011187 for ; Tue, 9 Aug 2011 16:30:24 GMT Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 433129E970 for ; Tue, 9 Aug 2011 09:30:03 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from oproxy1-pub.bluehost.com (oproxy1-pub.bluehost.com [66.147.249.253]) by gabe.freedesktop.org (Postfix) with SMTP id D6C1B9EF3A for ; Tue, 9 Aug 2011 09:29:37 -0700 (PDT) Received: (qmail 12032 invoked by uid 0); 9 Aug 2011 16:29:37 -0000 Received: from unknown (HELO box514.bluehost.com) (74.220.219.114) by oproxy1.bluehost.com with SMTP; 9 Aug 2011 16:29:37 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuousgeek.org; s=default; h=Message-Id:Date:Subject:Cc:To:From; bh=hmX7TkvpdggTQ+BnSgsNq5nKjgg3rcJLMIOPUYPxPwc=; b=GhyJeaSh0cIuzigXl6nI+uCmeetr/w+zvrYqq4JaVP/FvWKPJkc+PglMh4lbW+c9ZyEDGmNZQ1o93ab1votL/q59kBuKoJhY6x7+FOoNXgT1XnQpJII6FdBmitqCB9gF; Received: from c-67-161-37-189.hsd1.ca.comcast.net ([67.161.37.189] helo=localhost.localdomain) by box514.bluehost.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1QqpBQ-0000GP-N1; Tue, 09 Aug 2011 10:29:36 -0600 From: Jesse Barnes To: intel-gfx@lists.freedesktop.org Date: Tue, 9 Aug 2011 09:29:20 -0700 Message-Id: <1312907360-2469-1-git-send-email-jbarnes@virtuousgeek.org> X-Mailer: git-send-email 1.7.4.1 X-Identified-User: {10642:box514.bluehost.com:virtuous:virtuousgeek.org} {sentby:smtp auth 67.161.37.189 authed with jbarnes@virtuousgeek.org} Subject: [Intel-gfx] [PATCH] drm/i915: limit PM related interrupt enable to those we handle X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Tue, 09 Aug 2011 16:30:24 +0000 (UTC) Set both the PM core interrupt regs and the PM specific interrupt maks to only allow interrupts we handle. This prevents spurious interrupts and just makes more sense. Signed-off-by: Jesse Barnes --- drivers/gpu/drm/i915/i915_reg.h | 6 ++++++ drivers/gpu/drm/i915/intel_display.c | 12 ++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index d1331f7..7caeb14 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -3447,6 +3447,12 @@ #define GEN6_RC6p_THRESHOLD 0xA0BC #define GEN6_RC6pp_THRESHOLD 0xA0C0 #define GEN6_PMINTRMSK 0xA168 +#define GEN6_PMINTR_RP_UP_THRESHOLD (1<<5) +#define GEN6_PMINTR_RP_DOWN_THRESHOLD (1<<4) +#define GEN6_PMINTR_RP_DOWN_EI_EXPIRED (1<<1) +#define GEN6_PMINTR_DEFERRED_EVENTS (GEN6_PMINTR_RP_UP_THRESHOLD | \ + GEN6_PMINTR_RP_DOWN_THRESHOLD | \ + GEN6_PMINTR_RP_DOWN_EI_EXPIRED) #define GEN6_PMISR 0x44020 #define GEN6_PMIMR 0x44024 /* rps_lock */ diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 35364e6..f98631a 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -7605,19 +7605,15 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv) /* requires MSI enabled */ I915_WRITE(GEN6_PMIER, - GEN6_PM_MBOX_EVENT | - GEN6_PM_THERMAL_EVENT | GEN6_PM_RP_DOWN_TIMEOUT | GEN6_PM_RP_UP_THRESHOLD | - GEN6_PM_RP_DOWN_THRESHOLD | - GEN6_PM_RP_UP_EI_EXPIRED | - GEN6_PM_RP_DOWN_EI_EXPIRED); + GEN6_PM_RP_DOWN_THRESHOLD); spin_lock_irq(&dev_priv->rps_lock); WARN_ON(dev_priv->pm_iir != 0); - I915_WRITE(GEN6_PMIMR, 0); + I915_WRITE(GEN6_PMIMR, ~GEN6_PM_DEFERRED_EVENTS); spin_unlock_irq(&dev_priv->rps_lock); - /* enable all PM interrupts */ - I915_WRITE(GEN6_PMINTRMSK, 0); + /* Enable only those we respond to in the deferred work handler */ + I915_WRITE(GEN6_PMINTRMSK, GEN6_PMINTR_DEFERRED_EVENTS); gen6_gt_force_wake_put(dev_priv); mutex_unlock(&dev_priv->dev->struct_mutex);