Patchwork [3/3,UBUNTU] : [Upstream] drm/i915: Stop trying to use ACPI lid status to determine LVDS connection.

login
register
mail settings
Submitter Surbhi Palande
Date March 29, 2010, 2:01 p.m.
Message ID <9965a54c57a30083ca31872aa65c4950c2291f0f.1269870282.git.surbhi.palande@canonical.com>
Download mbox | patch
Permalink /patch/48847/
State Superseded
Delegated to: Andy Whitcroft
Headers show

Comments

Surbhi Palande - March 29, 2010, 2:01 p.m.
From: Eric Anholt <eric@anholt.net>

http://launchpad.net/bugs/515246

I've been getting more and more quirk reports about this.  It seems
clear at this point that other OSes are not using this for determining
whether the integrated panel should be turned on, and it is not
reliable for doing so.  Better to light up an unintended panel than to
not light up the only usable output on the system.

Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
(cherry picked from commit 6e6c822868f113dabe3c33bdd91e883cc28fa11b)

Signed-off-by: Surbhi Palande <surbhi.palande@canonical.com>
---
 drivers/gpu/drm/i915/intel_lvds.c |   52 +------------------------------------
 1 files changed, 1 insertions(+), 51 deletions(-)
Stefan Bader - March 30, 2010, 9:37 a.m.
Surbhi Palande wrote:
> From: Eric Anholt <eric@anholt.net>
> 
> http://launchpad.net/bugs/515246

BugLink: ...

> 
> I've been getting more and more quirk reports about this.  It seems
> clear at this point that other OSes are not using this for determining
> whether the integrated panel should be turned on, and it is not
> reliable for doing so.  Better to light up an unintended panel than to
> not light up the only usable output on the system.
> 
> Signed-off-by: Eric Anholt <eric@anholt.net>
> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> (cherry picked from commit 6e6c822868f113dabe3c33bdd91e883cc28fa11b)

(... upstream)

> 
> Signed-off-by: Surbhi Palande <surbhi.palande@canonical.com>
> ---
>  drivers/gpu/drm/i915/intel_lvds.c |   52 +------------------------------------
>  1 files changed, 1 insertions(+), 51 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index e91e81d..f442ec9 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -599,53 +599,6 @@ static void intel_lvds_mode_set(struct drm_encoder *encoder,
>  	I915_WRITE(PFIT_CONTROL, lvds_priv->pfit_control);
>  }
>  
> -/* Some lid devices report incorrect lid status, assume they're connected */
> -static const struct dmi_system_id bad_lid_status[] = {
> -	{
> -		.ident = "Compaq nx9020",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
> -			DMI_MATCH(DMI_BOARD_NAME, "3084"),
> -		},
> -	},
> -	{
> -		.ident = "Samsung SX20S",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Samsung Electronics"),
> -			DMI_MATCH(DMI_BOARD_NAME, "SX20S"),
> -		},
> -	},
> -	{
> -		.ident = "Aspire One",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"),
> -		},
> -	},
> -	{
> -		.ident = "Aspire 1810T",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1810T"),
> -		},
> -	},
> -	{
> -		.ident = "PC-81005",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "MALATA"),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"),
> -		},
> -	},
> -	{
> -		.ident = "Clevo M5x0N",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "CLEVO Co."),
> -			DMI_MATCH(DMI_BOARD_NAME, "M5x0N"),
> -		},
> -	},
> -	{ }
> -};
> -
>  /**
>   * Detect the LVDS connection.
>   *
> @@ -661,12 +614,9 @@ static enum drm_connector_status intel_lvds_detect(struct drm_connector *connect
>  	/* ACPI lid methods were generally unreliable in this generation, so
>  	 * don't even bother.
>  	 */
> -	if (IS_GEN2(dev))
> +	if (IS_GEN2(dev) || IS_GEN3(dev))
>  		return connector_status_connected;
>  
> -	if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())
> -		status = connector_status_disconnected;
> -
>  	return status;
>  }
>

Patch

diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index e91e81d..f442ec9 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -599,53 +599,6 @@  static void intel_lvds_mode_set(struct drm_encoder *encoder,
 	I915_WRITE(PFIT_CONTROL, lvds_priv->pfit_control);
 }
 
-/* Some lid devices report incorrect lid status, assume they're connected */
-static const struct dmi_system_id bad_lid_status[] = {
-	{
-		.ident = "Compaq nx9020",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-			DMI_MATCH(DMI_BOARD_NAME, "3084"),
-		},
-	},
-	{
-		.ident = "Samsung SX20S",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Samsung Electronics"),
-			DMI_MATCH(DMI_BOARD_NAME, "SX20S"),
-		},
-	},
-	{
-		.ident = "Aspire One",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"),
-		},
-	},
-	{
-		.ident = "Aspire 1810T",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1810T"),
-		},
-	},
-	{
-		.ident = "PC-81005",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "MALATA"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"),
-		},
-	},
-	{
-		.ident = "Clevo M5x0N",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "CLEVO Co."),
-			DMI_MATCH(DMI_BOARD_NAME, "M5x0N"),
-		},
-	},
-	{ }
-};
-
 /**
  * Detect the LVDS connection.
  *
@@ -661,12 +614,9 @@  static enum drm_connector_status intel_lvds_detect(struct drm_connector *connect
 	/* ACPI lid methods were generally unreliable in this generation, so
 	 * don't even bother.
 	 */
-	if (IS_GEN2(dev))
+	if (IS_GEN2(dev) || IS_GEN3(dev))
 		return connector_status_connected;
 
-	if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())
-		status = connector_status_disconnected;
-
 	return status;
 }