diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-02-12 09:30:00 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-02-22 11:57:18 -0500 |
commit | 7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4 (patch) | |
tree | a4d89b27f697e51eb9ea3a4b548d6e86e1b23862 /drivers/gpu/drm/i915/intel_lvds.c | |
parent | f590d279eb4978352af163a88b001f156c7147d2 (diff) | |
download | blackbird-op-linux-7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4.tar.gz blackbird-op-linux-7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4.zip |
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/intel_lvds.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 7 |
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[] = { */ 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; |