Re: edp backtrace spam on MacBookAir4,1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 07, 2012 at 09:21:20AM +0200, Daniel Vetter wrote:
> On Wed, May 30, 2012 at 08:39:13AM -0700, Linus Torvalds wrote:
> > On Wed, May 30, 2012 at 1:27 AM, Daniel Vetter <daniel@xxxxxxxx> wrote:
> > >
> > > Ok, Chris couldn't reproduce this on his mba. Can you please boot with
> > > drm.debug=0xe, reproduce the noise and then attach the full dmesg?
> > 
> > Hmm. Now *I* can't reproduce it either.
> > 
> > I have updated my system in the meantime, so maybe this is related to
> > that. However, I suspect it's more likely that it's some race
> > condition, because when I got it, I got a *lot* of it, but they were
> > all very tightly bunched together:
> > 
> >  [ 1588.996413] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1588.996650] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.000983] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.001225] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.005975] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.006218] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.010980] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.011224] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.015976] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.016211] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.020986] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> >  [ 1589.021232] WARNING: at drivers/gpu/drm/i915/intel_dp.c:350
> > intel_dp_check_edp+0x5d/0xb0()
> > 
> > ie that's 12 of those warnings (each of them with that huge backtrace
> > etc), but they are all within 0.03 seconds of each other. So I suspect
> > it needs to hit some particular timing window, and I was just
> > (un)lucky.
> > 
> > Because when I try it now with DRM debugging, I can't hit it. And just
> > to make sure, I re-did the test without debugging too (in case the
> > debugging would have changed timing), but can't reproduce it that way
> > either.
> 
> Meh, I've been totally blind. Note to self: Next time around actually look
> at the backtrace. And I dunno how that escaped our dear QA that long ...

Even more meh, this patch might actually work a bit better.

/me doesn't have an edp panel to test this

-Daniel
---
>From 709e3d49d83fb7f1c297c7c0d9e994af6571bbdb Mon Sep 17 00:00:00 2001
From: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu, 7 Jun 2012 08:59:49 +0200
Subject: [PATCH] drm/i915: enable edp vdd in intel_dp_detect

We need this for dp aux communication. This issue can fill the dmesg
with WARN spam when the panel is disable (e.g. while reconfiguring the
mode or while resuming).

v2: Actually enable edp vdd early enough. I've missed one dp aux
channel thingy ...

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50808
Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Bugreport: http://permalink.gmane.org/gmane.comp.video.dri.devel/69695
Cc: stable@xxxxxxxxxxxxxxx
Signed-Off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
---
 drivers/gpu/drm/i915/intel_dp.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 296cfc2..547cdc6 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -2152,6 +2152,7 @@ intel_dp_detect(struct drm_connector *connector, bool force)
 
 	intel_dp->has_audio = false;
 
+	ironlake_edp_panel_vdd_on(intel_dp);
 	if (HAS_PCH_SPLIT(dev))
 		status = ironlake_dp_detect(intel_dp);
 	else
@@ -2162,8 +2163,10 @@ intel_dp_detect(struct drm_connector *connector, bool force)
 		      intel_dp->dpcd[3], intel_dp->dpcd[4], intel_dp->dpcd[5],
 		      intel_dp->dpcd[6], intel_dp->dpcd[7]);
 
-	if (status != connector_status_connected)
+	if (status != connector_status_connected) {
+		ironlake_edp_panel_vdd_off(intel_dp, false);
 		return status;
+	}
 
 	intel_dp_probe_oui(intel_dp);
 
@@ -2177,6 +2180,7 @@ intel_dp_detect(struct drm_connector *connector, bool force)
 			kfree(edid);
 		}
 	}
+	ironlake_edp_panel_vdd_off(intel_dp, false);
 
 	return connector_status_connected;
 }
-- 
1.7.10

-- 
Daniel Vetter
Mail: daniel@xxxxxxxx
Mobile: +41 (0)79 365 57 48
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux