--- /dev/null
+From 7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4 Mon Sep 17 00:00:00 2001
+From: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date: Fri, 12 Feb 2010 09:30:00 -0800
+Subject: drm/i915: give up on 8xx lid status
+
+From: Jesse Barnes <jbarnes@virtuousgeek.org>
+
+commit 7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4 upstream.
+
+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>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_lvds.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -655,8 +655,15 @@ static const struct dmi_system_id bad_li
+ */
+ 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;
+