aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-06-08 17:53:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-08 17:53:06 -0400
commit8f53369b753f5f4c7684c2eb0b592152abb1dd00 (patch)
tree40b39dd3489cede6101a04e5096dba55a599a25c /drivers/gpu
parent77249539cd987884f86df6fd5c43b3dae1841be1 (diff)
Revert "drm/i915/crt: Do not rely upon the HPD presence pin"
This reverts commit 9e612a008fa7fe493a473454def56aa321479495. It incorrectly finds VGA connectors where none are attached, apparently not noticing that nothing replied to the EDID queries, and happily using the default EDID modes that have nothing to do with actual hardware. That in turn then causes X to fall down to the lowest common denominator, which is usually the default 1024x768 mode that is in the default EDID and pretty much anything supports). I'd suggest that if not relying on the HDP pin, the code should at least check whether it gets valid EDID data back, rather than just assume there's something on the VGA connector. Cc: Dave Airlie <airlied@linux.ie> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 844e93e1e395..75a70c46ef1b 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -453,15 +453,13 @@ intel_crt_detect(struct drm_connector *connector, bool force)
453 struct intel_load_detect_pipe tmp; 453 struct intel_load_detect_pipe tmp;
454 454
455 if (I915_HAS_HOTPLUG(dev)) { 455 if (I915_HAS_HOTPLUG(dev)) {
456 /* We can not rely on the HPD pin always being correctly wired
457 * up, for example many KVM do not pass it through, and so
458 * only trust an assertion that the monitor is connected.
459 */
460 if (intel_crt_detect_hotplug(connector)) { 456 if (intel_crt_detect_hotplug(connector)) {
461 DRM_DEBUG_KMS("CRT detected via hotplug\n"); 457 DRM_DEBUG_KMS("CRT detected via hotplug\n");
462 return connector_status_connected; 458 return connector_status_connected;
463 } else 459 } else {
464 DRM_DEBUG_KMS("CRT not detected via hotplug\n"); 460 DRM_DEBUG_KMS("CRT not detected via hotplug\n");
461 return connector_status_disconnected;
462 }
465 } 463 }
466 464
467 if (intel_crt_detect_ddc(connector)) 465 if (intel_crt_detect_ddc(connector))