From 5af39dfcf7346669d9deeed41748a9a0e8cdd544 Mon Sep 17 00:00:00 2001 From: Krzysztof Mazur Date: Wed, 19 Dec 2012 11:03:41 +0100 Subject: [PATCH] --- yaml --- r: 348083 b: refs/heads/master c: 0fde901f1ddd2ce0e380a6444f1fb7ca555859e9 h: refs/heads/master i: 348081: 6fbf6abc70782c5844c2450f08f429d58294f4df 348079: 90211a5d423bdb342c0cf824d3644609cf7e71e6 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/intel_display.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0dc4402a163a..2c12cbe08d78 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dc9dd7a20fde95aa81a8307cde79c2dff9f83f3d +refs/heads/master: 0fde901f1ddd2ce0e380a6444f1fb7ca555859e9 diff --git a/trunk/drivers/gpu/drm/i915/intel_display.c b/trunk/drivers/gpu/drm/i915/intel_display.c index bc0b7aa0ab96..7395f6a389a5 100644 --- a/trunk/drivers/gpu/drm/i915/intel_display.c +++ b/trunk/drivers/gpu/drm/i915/intel_display.c @@ -9152,6 +9152,23 @@ static void intel_sanitize_encoder(struct intel_encoder *encoder) * the crtc fixup. */ } +static void i915_redisable_vga(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + u32 vga_reg; + + if (HAS_PCH_SPLIT(dev)) + vga_reg = CPU_VGACNTRL; + else + vga_reg = VGACNTRL; + + if (I915_READ(vga_reg) != VGA_DISP_DISABLE) { + DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n"); + I915_WRITE(vga_reg, VGA_DISP_DISABLE); + POSTING_READ(vga_reg); + } +} + /* Scan out the current hw modeset state, sanitizes it and maps it into the drm * and i915 state tracking structures. */ void intel_modeset_setup_hw_state(struct drm_device *dev, @@ -9260,6 +9277,8 @@ void intel_modeset_setup_hw_state(struct drm_device *dev, intel_set_mode(&crtc->base, &crtc->base.mode, crtc->base.x, crtc->base.y, crtc->base.fb); } + + i915_redisable_vga(dev); } else { intel_modeset_update_staged_output_state(dev); }