From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH V2] drm/i915: Add messages useful for HPD storm detection debugging (v2) Date: Fri, 26 Jul 2013 15:23:54 +0300 Message-ID: <87d2q55x2d.fsf@intel.com> References: <87mwp95zs3.fsf@intel.com> <1374840864-7677-1-git-send-email-eich@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id E0019E72BC for ; Fri, 26 Jul 2013 05:22:25 -0700 (PDT) In-Reply-To: <1374840864-7677-1-git-send-email-eich@suse.de> 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: intel-gfx@lists.freedesktop.org Cc: Egbert Eich , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org On Fri, 26 Jul 2013, Egbert Eich wrote: > For HPD storm detection we now mask out individual interrupt source > bits. We have already seen a case where HPD interrupt enable bits > were assigned to the wrong pins. To track these conditions more > easily add some debugging messages. > > v2: Spelling fixes as suggested by Jani Nikula Reviewed-by: Jani Nikula > Signed-off-by: Egbert Eich > --- > drivers/gpu/drm/i915/i915_irq.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index ee3e49c..6a1c207 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -919,6 +919,10 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, > spin_lock(&dev_priv->irq_lock); > for (i = 1; i < HPD_NUM_PINS; i++) { > > + WARN(((hpd[i] & hotplug_trigger) && > + dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED), > + "Received HPD interrupt although disabled\n"); > + > if (!(hpd[i] & hotplug_trigger) || > dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED) > continue; > @@ -929,6 +933,7 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, > + msecs_to_jiffies(HPD_STORM_DETECT_PERIOD))) { > dev_priv->hpd_stats[i].hpd_last_jiffies = jiffies; > dev_priv->hpd_stats[i].hpd_cnt = 0; > + DRM_DEBUG_KMS("Received HPD interrupt on PIN %d - cnt: 0\n", i); > } else if (dev_priv->hpd_stats[i].hpd_cnt > HPD_STORM_THRESHOLD) { > dev_priv->hpd_stats[i].hpd_mark = HPD_MARK_DISABLED; > dev_priv->hpd_event_bits &= ~(1 << i); > @@ -936,6 +941,8 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev, > storm_detected = true; > } else { > dev_priv->hpd_stats[i].hpd_cnt++; > + DRM_DEBUG_KMS("Received HPD interrupt on PIN %d - cnt: %d\n", i, > + dev_priv->hpd_stats[i].hpd_cnt); > } > } > > -- > 1.8.1.4 > -- Jani Nikula, Intel Open Source Technology Center