aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_lvds.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-02-12 12:30:00 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2010-03-15 12:05:56 -0400
commit42a89b24c741d42fbd72c9f9b390b588ad01cf6c (patch)
tree1ae08036d1a077778d9565dacf4de31b1e43f1f0 /drivers/gpu/drm/i915/intel_lvds.c
parent38050e8d4f879a4d14bbd241f7de8bfb08ca2d23 (diff)
drm/i915: give up on 8xx lid status
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>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lvds.c')
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index c2e8a45780d5..93031a75d112 100644
--- 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_lid_status[] = {
655 */ 655 */
656static enum drm_connector_status intel_lvds_detect(struct drm_connector *connector) 656static enum drm_connector_status intel_lvds_detect(struct drm_connector *connector)
657{ 657{
658 struct drm_device *dev = connector->dev;
658 enum drm_connector_status status = connector_status_connected; 659 enum drm_connector_status status = connector_status_connected;
659 660
661 /* ACPI lid methods were generally unreliable in this generation, so
662 * don't even bother.
663 */
664 if (IS_I8XX(dev))
665 return connector_status_connected;
666
660 if (!dmi_check_system(bad_lid_status) && !acpi_lid_open()) 667 if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())
661 status = connector_status_disconnected; 668 status = connector_status_disconnected;
662 669