aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_lvds.c
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2009-11-24 10:07:00 -0500
committerEric Anholt <eric@anholt.net>2009-12-01 12:28:58 -0500
commit38b3037ee47fbd65a36bc7c39f60a900fbbe3b8e (patch)
tree442fadf49c639d66284983a740fd4df7e24957cc /drivers/gpu/drm/i915/intel_lvds.c
parent05dd8f973f895692dd33c95e87c0e69aa0e7a93b (diff)
drm/i915: Fix LVDS presence check
Assume that either the presence of an LVDS entry in the VBT or an ACPI lid device indicates an LVDS device. ACPI lid alone is not sufficient. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lvds.c')
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 7fec70145a3d..02b813efd4c7 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -1031,19 +1031,14 @@ void intel_lvds_init(struct drm_device *dev)
1031 if (dmi_check_system(intel_no_lvds)) 1031 if (dmi_check_system(intel_no_lvds))
1032 return; 1032 return;
1033 1033
1034 if (!lvds_is_present_in_vbt(dev)) { 1034 /*
1035 DRM_DEBUG_KMS("LVDS is not present in VBT\n"); 1035 * Assume LVDS is present if there's an ACPI lid device or if the
1036 return; 1036 * device is present in the VBT.
1037 }
1038 /* Assume that any device without an ACPI LID device also doesn't
1039 * have an integrated LVDS. We would be better off parsing the BIOS
1040 * to get a reliable indicator, but that code isn't written yet.
1041 *
1042 * In the case of all-in-one desktops using LVDS that we've seen,
1043 * they're using SDVO LVDS.
1044 */ 1037 */
1045 if (!intel_lid_present()) 1038 if (!lvds_is_present_in_vbt(dev) && !intel_lid_present()) {
1039 DRM_DEBUG_KMS("LVDS is not present in VBT and no lid detected\n");
1046 return; 1040 return;
1041 }
1047 1042
1048 if (IS_IGDNG(dev)) { 1043 if (IS_IGDNG(dev)) {
1049 if ((I915_READ(PCH_LVDS) & LVDS_DETECTED) == 0) 1044 if ((I915_READ(PCH_LVDS) & LVDS_DETECTED) == 0)