diff mbox

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

Message ID 1269982747-16679-3-git-send-email-surbhi.palande@canonical.com
State Accepted
Delegated to: Andy Whitcroft
Headers show

Commit Message

Surbhi Palande March 30, 2010, 8:59 p.m. UTC
From: Eric Anholt <eric@anholt.net>

BugLink: 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(-)

Comments

Stefan Bader March 31, 2010, 9:52 a.m. UTC | #1
Surbhi Palande wrote:
> From: Eric Anholt <eric@anholt.net>
> 
> BugLink: 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 upstream)
> 
> Signed-off-by: Surbhi Palande <surbhi.palande@canonical.com>
Acked-by: Stefan Bader <stefan.bader@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;
>  }
>
Steve Conklin March 31, 2010, 3:42 p.m. UTC | #2
On Tue, 2010-03-30 at 23:59 +0300, Surbhi Palande wrote:
> From: Eric Anholt <eric@anholt.net>
> 
> BugLink: 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>
Acked-by: Steve Conklin <steve.conklin@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;
>  }
>  
> -- 
> 1.6.3.3
> 
>
diff mbox

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;
 }