diff mbox

drm/i915: fix hotplug event bit tracking

Message ID 1367928629-16962-1-git-send-email-jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jani Nikula May 7, 2013, 12:10 p.m. UTC
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>
---
 drivers/gpu/drm/i915/i915_irq.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel Vetter May 8, 2013, 12:44 p.m. UTC | #1
On Tue, May 07, 2013 at 03:10:29PM +0300, Jani Nikula wrote:
> 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>

/me hangs head in shame

Queued for -next, thanks for the patch.
-Daniel
Jani Nikula May 9, 2013, 8:47 a.m. UTC | #2
On Wed, 08 May 2013, Daniel Vetter <daniel@ffwll.ch> wrote:
> Queued for -next, thanks for the patch.

Shouldn't this be headed for 3.10 through -fixes?

Jani.
Daniel Vetter May 9, 2013, 9:41 a.m. UTC | #3
On Thu, May 09, 2013 at 11:47:01AM +0300, Jani Nikula wrote:
> On Wed, 08 May 2013, Daniel Vetter <daniel@ffwll.ch> wrote:
> > Queued for -next, thanks for the patch.
> 
> Shouldn't this be headed for 3.10 through -fixes?

The hpd filtering is only in -next thus far. Or have I botched up my patch
tracking again?
-Daniel
Jani Nikula May 9, 2013, 10:47 a.m. UTC | #4
On Thu, 09 May 2013, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Thu, May 09, 2013 at 11:47:01AM +0300, Jani Nikula wrote:
>> On Wed, 08 May 2013, Daniel Vetter <daniel@ffwll.ch> wrote:
>> > Queued for -next, thanks for the patch.
>> 
>> Shouldn't this be headed for 3.10 through -fixes?
>
> The hpd filtering is only in -next thus far. Or have I botched up my patch
> tracking again?

No, my mistake, sorry for the noise.

J.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 03a31be..43e0e9e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -878,9 +878,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))) {