diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-05-12 17:17:15 -0400 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-06-04 13:41:06 -0400 |
commit | d3bcb75776a10ee4b67afe6156fd927b9da77d03 (patch) | |
tree | 9cf4df972eb60154a37e122c443b1fb4d3c3f598 /drivers/gpu/drm/i915 | |
parent | 9f405100f2b39be7759eea3f4cf910869727429c (diff) |
drm/i915/crt: Explicitly return false if connected to a digital monitor
Rather than proceed on and silently return false by default, mention why
we rejected the presence of an EDID as implying the presence of a VGA
monitor. (The question arises whether there is a broken EDID which falsely
reports a digital connection when attached by VGA.)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index e93f93cc7e78..0979d8877880 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
@@ -288,6 +288,8 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector) | |||
288 | * This may be a DVI-I connector with a shared DDC | 288 | * This may be a DVI-I connector with a shared DDC |
289 | * link between analog and digital outputs, so we | 289 | * link between analog and digital outputs, so we |
290 | * have to check the EDID input spec of the attached device. | 290 | * have to check the EDID input spec of the attached device. |
291 | * | ||
292 | * On the other hand, what should we do if it is a broken EDID? | ||
291 | */ | 293 | */ |
292 | if (edid != NULL) { | 294 | if (edid != NULL) { |
293 | is_digital = edid->input & DRM_EDID_INPUT_DIGITAL; | 295 | is_digital = edid->input & DRM_EDID_INPUT_DIGITAL; |
@@ -298,6 +300,8 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector) | |||
298 | if (!is_digital) { | 300 | if (!is_digital) { |
299 | DRM_DEBUG_KMS("CRT detected via DDC:0x50 [EDID]\n"); | 301 | DRM_DEBUG_KMS("CRT detected via DDC:0x50 [EDID]\n"); |
300 | return true; | 302 | return true; |
303 | } else { | ||
304 | DRM_DEBUG_KMS("CRT not detected via DDC:0x50 [EDID reports a digital panel]\n"); | ||
301 | } | 305 | } |
302 | } | 306 | } |
303 | 307 | ||