aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index c1cc5566e20b..98ae3d73577e 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -591,6 +591,18 @@ static void intel_lvds_mode_set(struct drm_encoder *encoder,
591 I915_WRITE(PFIT_CONTROL, lvds_priv->pfit_control); 591 I915_WRITE(PFIT_CONTROL, lvds_priv->pfit_control);
592} 592}
593 593
594/* Some lid devices report incorrect lid status, assume they're connected */
595static const struct dmi_system_id bad_lid_status[] = {
596 {
597 .ident = "Aspire One",
598 .matches = {
599 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
600 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"),
601 },
602 },
603 { }
604};
605
594/** 606/**
595 * Detect the LVDS connection. 607 * Detect the LVDS connection.
596 * 608 *
@@ -602,7 +614,7 @@ static enum drm_connector_status intel_lvds_detect(struct drm_connector *connect
602{ 614{
603 enum drm_connector_status status = connector_status_connected; 615 enum drm_connector_status status = connector_status_connected;
604 616
605 if (!acpi_lid_open()) 617 if (!acpi_lid_open() && !dmi_check_system(bad_lid_status))
606 status = connector_status_disconnected; 618 status = connector_status_disconnected;
607 619
608 return status; 620 return status;