summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-21 23:26:29 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-23 13:03:01 +0200
commit7f6658ef35a470cd641ea35a1da409c4bc5bae1e (patch)
tree6479373667b709bc8f877b145fed2abf8411d1c9
parenta9193983f4f292a82a00c72971c17ec0ee8c6c15 (diff)
downloadlinux-stable-7f6658ef35a470cd641ea35a1da409c4bc5bae1e.tar.gz
linux-stable-7f6658ef35a470cd641ea35a1da409c4bc5bae1e.tar.bz2
linux-stable-7f6658ef35a470cd641ea35a1da409c4bc5bae1e.zip
drm/i915: VGA needs to be on pipe A on i830M
The bit doesn't stick, and the output is always cloned from pipe A, even when it's supposed to scan out from pipe B. Shuts up annoying warnings from the modeset-rework, too. I've noticed that with this patch we know get and unknown connection state since the code can't find a suitable pipe for load detection. But that beats the previous state of affairs, where it tried to use pipe B, actually used pipe A and concluded that something is connected (although it's the LVDS on pipe A and nothing on the VGA connector on pipe B). I've tried to make load detect work by remapping the pipe->planes stuff, so that crtc 0 will use pipe B and hence we still have something left for load-detect on pipe A. But alas, that upset the hw a bit. So there's still some things to figure out, but this here will at least paper over some of the problems. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51265 Acked-by: Chris Wilson <chris@chris-wilson.co.uk> [danvet: extend the commit message a bit with recent observations.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index f78061af7045..b726b478a4f5 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -729,7 +729,7 @@ void intel_crt_init(struct drm_device *dev)
crt->base.type = INTEL_OUTPUT_ANALOG;
crt->base.cloneable = true;
- if (IS_HASWELL(dev))
+ if (IS_HASWELL(dev) || IS_I830(dev))
crt->base.crtc_mask = (1 << 0);
else
crt->base.crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);