Re: Linux 3.8-rc2

From: Chris Wilson
Date: Thu Jan 03 2013 - 17:45:29 EST

On Thu, 3 Jan 2013 13:32:04 -0800, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, Jan 3, 2013 at 1:09 PM, Alexey Zaytsev <alexey.zaytsev@xxxxxxxxx> wrote:
> >
> > i915 got broken on my machine (Lenovo ThinkPad SL500) by this -rc. The screen
> > goes blank after loading the module. I've bisected the problem to
> > b0a2658acb5bf9ca86b4aab011b7106de3af0add "drm/i915: don't disable
> > disconnected outputs".
> Hmm. Daniel - should I just revert it, or do you have a patch to
> possibly fix the divide-by-zero error in g4x_compute_wm0() (which may
> involve not getting that deep in the call chain to begin with or
> whatever)? Maybe that fixes the blank screen too without a revert..

The issue appears to be a disagreement between intel_crtc->active, an
attached framebuffer and there not being a valid mode set on the crtc.

It looks like we end up in that situation with further confusion over
intel_crtc->base.enabled vs intel_crtc->active. I suspect the answer is
something like:

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index a9fb046..5e4b818 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7940,10 +7940,8 @@ bool intel_set_mode(struct drm_crtc *crtc,

- for_each_intel_crtc_masked(dev, prepare_pipes, intel_crtc) {
- if (intel_crtc->base.enabled)
- dev_priv->display.crtc_disable(&intel_crtc->base);
- }
+ for_each_intel_crtc_masked(dev, prepare_pipes, intel_crtc)
+ dev_priv->display.crtc_disable(&intel_crtc->base);

/* crtc->mode is already used by the ->mode_set callbacks, hence we need
* to set it here already despite that we pass it down the callchain.

However, until that confusion is unravelled, reverting b0a2658ac, seems
the most sensible approach.

Chris Wilson, Intel Open Source Technology Centre
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at