| From 2f3effdedbbd3c2559ab6ce8282472bc43961280 Mon Sep 17 00:00:00 2001 |
| From: Jani Nikula <jani.nikula@intel.com> |
| Date: Tue, 7 May 2013 15:10:29 +0300 |
| Subject: drm/i915: fix hotplug event bit tracking |
| |
| commit 142e239849c800f9dc23f828762873073f612d3f |
| Author: Egbert Eich <eich@suse.de> |
| Date: Thu Apr 11 15:57:57 2013 +0200 |
| |
| drm/i915: Add bit field to record which pins have received HPD events (v3) |
| |
| added a bit field for hotplug event tracking. There ended up being three |
| different v3 of the patch: [1], [2], and [3]. Apparently [1] was the |
| correct one, but some frankenstein combination of the three got |
| committed, which reversed the logic for setting the hotplug bits and |
| misplaced a continue statement, skipping the hotplug irq storm handling |
| altogether. |
| |
| This lead to broken hotplug detection, bisected to |
| commit 321a1b3026ea194dd084cf3bda1e235b2986b0af |
| Author: Egbert Eich <eich@suse.de> |
| Date: Thu Apr 11 16:00:26 2013 +0200 |
| |
| drm/i915: Only reprobe display on encoder which has received an HPD event (v2) |
| |
| which uses the incorrectly set hotplug event bits. |
| |
| Fix the mess. |
| |
| [1] http://mid.gmane.org/1366112220-7638-6-git-send-email-eich@suse.de |
| [2] http://mid.gmane.org/1365688677-13682-1-git-send-email-eich@suse.de |
| [3] http://mid.gmane.org/1365688996-13874-1-git-send-email-eich@suse.de |
| |
| Signed-off-by: Jani Nikula <jani.nikula@intel.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit bc5ead8c09b51e85d110132495a9bfa58dc39dab) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/i915_irq.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c |
| index ae19a7cff5f9..6b9bc815cc70 100644 |
| --- a/drivers/gpu/drm/i915/i915_irq.c |
| +++ b/drivers/gpu/drm/i915/i915_irq.c |
| @@ -873,9 +873,9 @@ static inline bool hotplug_irq_storm_detect(struct drm_device *dev, |
| |
| if (!(hpd[i] & hotplug_trigger) || |
| dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED) |
| - dev_priv->hpd_event_bits |= (1 << i); |
| continue; |
| |
| + dev_priv->hpd_event_bits |= (1 << i); |
| if (!time_in_range(jiffies, dev_priv->hpd_stats[i].hpd_last_jiffies, |
| dev_priv->hpd_stats[i].hpd_last_jiffies |
| + msecs_to_jiffies(HPD_STORM_DETECT_PERIOD))) { |
| -- |
| 1.8.5.rc3 |
| |