On Mon, 27 Feb 2012 12:39:24 +0100, Takashi Iwai <tiwai at suse.de> wrote: > It seems that writing DSPSURF in intel_flush_display_plane() causes > the blank screen on some old laptops like Dell D630 with 965GM. > Since this operation is needed only for ILK+, make it conditional. The specs say that DSPASURF is the latch register for updates of the DSPA registers on gen4 (including 965gm) as well. Presumably the bug is that we only partially update the DSPA registers prior to the first call to intel_flush_display_plane() which this papers over by disabling the update until a valid address is written to DSPASURF. And there is such a spurious call to intel_enable_plane() prior to us setting a valid scanout surface: diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_d index 66b19d3..ea8e4a1 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -5453,7 +5453,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc, I915_WRITE(DSPCNTR(plane), dspcntr); POSTING_READ(DSPCNTR(plane)); - intel_enable_plane(dev_priv, plane, pipe); ret = intel_pipe_set_base(crtc, x, y, old_fb); -Chris -- Chris Wilson, Intel Open Source Technology Centre