drm/i915: Fix LVDS presence check
authorAdam Jackson <ajax@redhat.com>
Tue, 24 Nov 2009 15:07:00 +0000 (10:07 -0500)
committerEric Anholt <eric@anholt.net>
Tue, 1 Dec 2009 17:28:58 +0000 (09:28 -0800)
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>
drivers/gpu/drm/i915/intel_lvds.c

index 7fec70145a3d3a18b3480e1039b8c8c853ec19b6..02b813efd4c7cd60f2b230922a371ff85251742d 100644 (file)
@@ -1031,19 +1031,14 @@ void intel_lvds_init(struct drm_device *dev)
        if (dmi_check_system(intel_no_lvds))
                return;
 
-       if (!lvds_is_present_in_vbt(dev)) {
-               DRM_DEBUG_KMS("LVDS is not present in VBT\n");
-               return;
-       }
-       /* Assume that any device without an ACPI LID device also doesn't
-        * have an integrated LVDS.  We would be better off parsing the BIOS
-        * to get a reliable indicator, but that code isn't written yet.
-        *
-        * In the case of all-in-one desktops using LVDS that we've seen,
-        * they're using SDVO LVDS.
+       /*
+        * Assume LVDS is present if there's an ACPI lid device or if the
+        * device is present in the VBT.
         */
-       if (!intel_lid_present())
+       if (!lvds_is_present_in_vbt(dev) && !intel_lid_present()) {
+               DRM_DEBUG_KMS("LVDS is not present in VBT and no lid detected\n");
                return;
+       }
 
        if (IS_IGDNG(dev)) {
                if ((I915_READ(PCH_LVDS) & LVDS_DETECTED) == 0)