diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lvds.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index f4b4aa242df1..c2e8a45780d5 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -602,6 +602,20 @@ static void intel_lvds_mode_set(struct drm_encoder *encoder, | |||
602 | /* Some lid devices report incorrect lid status, assume they're connected */ | 602 | /* Some lid devices report incorrect lid status, assume they're connected */ |
603 | static const struct dmi_system_id bad_lid_status[] = { | 603 | static const struct dmi_system_id bad_lid_status[] = { |
604 | { | 604 | { |
605 | .ident = "Compaq nx9020", | ||
606 | .matches = { | ||
607 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
608 | DMI_MATCH(DMI_BOARD_NAME, "3084"), | ||
609 | }, | ||
610 | }, | ||
611 | { | ||
612 | .ident = "Samsung SX20S", | ||
613 | .matches = { | ||
614 | DMI_MATCH(DMI_SYS_VENDOR, "Samsung Electronics"), | ||
615 | DMI_MATCH(DMI_BOARD_NAME, "SX20S"), | ||
616 | }, | ||
617 | }, | ||
618 | { | ||
605 | .ident = "Aspire One", | 619 | .ident = "Aspire One", |
606 | .matches = { | 620 | .matches = { |
607 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | 621 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), |
@@ -609,12 +623,26 @@ static const struct dmi_system_id bad_lid_status[] = { | |||
609 | }, | 623 | }, |
610 | }, | 624 | }, |
611 | { | 625 | { |
626 | .ident = "Aspire 1810T", | ||
627 | .matches = { | ||
628 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
629 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1810T"), | ||
630 | }, | ||
631 | }, | ||
632 | { | ||
612 | .ident = "PC-81005", | 633 | .ident = "PC-81005", |
613 | .matches = { | 634 | .matches = { |
614 | DMI_MATCH(DMI_SYS_VENDOR, "MALATA"), | 635 | DMI_MATCH(DMI_SYS_VENDOR, "MALATA"), |
615 | DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"), | 636 | DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"), |
616 | }, | 637 | }, |
617 | }, | 638 | }, |
639 | { | ||
640 | .ident = "Clevo M5x0N", | ||
641 | .matches = { | ||
642 | DMI_MATCH(DMI_SYS_VENDOR, "CLEVO Co."), | ||
643 | DMI_MATCH(DMI_BOARD_NAME, "M5x0N"), | ||
644 | }, | ||
645 | }, | ||
618 | { } | 646 | { } |
619 | }; | 647 | }; |
620 | 648 | ||
@@ -629,7 +657,7 @@ static enum drm_connector_status intel_lvds_detect(struct drm_connector *connect | |||
629 | { | 657 | { |
630 | enum drm_connector_status status = connector_status_connected; | 658 | enum drm_connector_status status = connector_status_connected; |
631 | 659 | ||
632 | if (!acpi_lid_open() && !dmi_check_system(bad_lid_status)) | 660 | if (!dmi_check_system(bad_lid_status) && !acpi_lid_open()) |
633 | status = connector_status_disconnected; | 661 | status = connector_status_disconnected; |
634 | 662 | ||
635 | return status; | 663 | return status; |
@@ -912,7 +940,8 @@ static void intel_find_lvds_downclock(struct drm_device *dev, | |||
912 | } | 940 | } |
913 | } | 941 | } |
914 | mutex_unlock(&dev->mode_config.mutex); | 942 | mutex_unlock(&dev->mode_config.mutex); |
915 | if (temp_downclock < panel_fixed_mode->clock) { | 943 | if (temp_downclock < panel_fixed_mode->clock && |
944 | i915_lvds_downclock) { | ||
916 | /* We found the downclock for LVDS. */ | 945 | /* We found the downclock for LVDS. */ |
917 | dev_priv->lvds_downclock_avail = 1; | 946 | dev_priv->lvds_downclock_avail = 1; |
918 | dev_priv->lvds_downclock = temp_downclock; | 947 | dev_priv->lvds_downclock = temp_downclock; |