drm/i915: give up on 8xx lid status
authorJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 12 Feb 2010 17:30:00 +0000 (09:30 -0800)
committerEric Anholt <eric@anholt.net>
Mon, 22 Feb 2010 16:57:18 +0000 (11:57 -0500)
These old machines more often than not lie about their lid state.  So
don't use it to detect LVDS presence, but leave the event handler to
deal with lid open/close, when we might need to reset the mode.

Fixes kernel bug #15248

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: stable@kernel.org
Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/i915/intel_lvds.c

index b1d0acbae4e458270377f400691db4766384f5a5..1740577c6173eba6d12d0a339df0d0b87066586f 100644 (file)
@@ -648,8 +648,15 @@ static const struct dmi_system_id bad_lid_status[] = {
  */
 static enum drm_connector_status intel_lvds_detect(struct drm_connector *connector)
 {
+       struct drm_device *dev = connector->dev;
        enum drm_connector_status status = connector_status_connected;
 
+       /* ACPI lid methods were generally unreliable in this generation, so
+        * don't even bother.
+        */
+       if (IS_I8XX(dev))
+               return connector_status_connected;
+
        if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())
                status = connector_status_disconnected;