aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-02-12 12:30:00 -0500
committerEric Anholt <eric@anholt.net>2010-02-22 11:57:18 -0500
commit7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4 (patch)
treea4d89b27f697e51eb9ea3a4b548d6e86e1b23862 /drivers/gpu/drm/i915
parentf590d279eb4978352af163a88b001f156c7147d2 (diff)
drm/i915: give up on 8xx lid status
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>
Diffstat (limited to 'drivers/gpu/drm/i915')
-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 b1d0acbae4e4..1740577c6173 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -648,8 +648,15 @@ static const struct dmi_system_id bad_lid_status[] = {
648 */ 648 */
649static enum drm_connector_status intel_lvds_detect(struct drm_connector *connector) 649static enum drm_connector_status intel_lvds_detect(struct drm_connector *connector)
650{ 650{
651 struct drm_device *dev = connector->dev;
651 enum drm_connector_status status = connector_status_connected; 652 enum drm_connector_status status = connector_status_connected;
652 653
654 /* ACPI lid methods were generally unreliable in this generation, so
655 * don't even bother.
656 */
657 if (IS_I8XX(dev))
658 return connector_status_connected;
659
653 if (!dmi_check_system(bad_lid_status) && !acpi_lid_open()) 660 if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())
654 status = connector_status_disconnected; 661 status = connector_status_disconnected;
655 662