[Intel-gfx] [PATCH 1/2] Revert "drm/i915: Use a dmi quirk to skip a broken SDVO TV output."

Zhenyu Wang zhenyuw at linux.intel.com
Thu Mar 18 03:07:11 CET 2010


On 2010.03.17 13:43:47 -0700, Eric Anholt wrote:
> On Thu,  4 Mar 2010 16:07:13 +0800, Zhenyu Wang <zhenyuw at linux.intel.com> wrote:
> > This reverts commit 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2.
> > 
> > The quirk for this SDVO device on specific board will break same
> > device on another OEM's output config. Instead multifunction SDVO
> > support would fix this.
> 
> How would another OEM be impacted by a DMI quirk for IBM?

I might have made wrong statement of the reason to revert that quirk, sorry.
What I mean is that it's not the fault of this SDVO chip, the chip has TV and
VGA capability just fine.

But this quirk only isolates a very specific IBM system for its no TV output
config, which is actually a hack for it on old code. You can see from comment
#61 on fd.o bug #25787, that this quirk still failed on another IBM machine.
Yeah, this hack won't break other OEM, just become useless with new SDVO
multifunction code, with which it has been handled properly by creating TV and
VGA connectors for the chip, and only VGA output could be detected on it.

How about this one?

From c65e72d1e73d26f0ecc6015dbe693ecd22f58950 Mon Sep 17 00:00:00 2001
From: Zhenyu Wang <zhenyuw at linux.intel.com>
Date: Thu, 4 Mar 2010 15:46:41 +0800
Subject: [PATCH] Revert "drm/i915: Use a dmi quirk to skip a broken SDVO TV output."

This reverts commit 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2.

The quirk for this SDVO device on IBM specific board is just a hack
in old code which showed the broken multifunction SDVO support in
the driver. We'll properly fix it with following multifunction SDVO
patch.

Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
---
 drivers/gpu/drm/i915/intel_sdvo.c |   23 +----------------------
 1 files changed, 1 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 48daee5..82678d3 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -35,7 +35,6 @@
 #include "i915_drm.h"
 #include "i915_drv.h"
 #include "intel_sdvo_regs.h"
-#include <linux/dmi.h>
 
 static char *tv_format_names[] = {
 	"NTSC_M"   , "NTSC_J"  , "NTSC_443",
@@ -2284,25 +2283,6 @@ intel_sdvo_get_slave_addr(struct drm_device *dev, int output_device)
 		return 0x72;
 }
 
-static int intel_sdvo_bad_tv_callback(const struct dmi_system_id *id)
-{
-	DRM_DEBUG_KMS("Ignoring bad SDVO TV connector for %s\n", id->ident);
-	return 1;
-}
-
-static struct dmi_system_id intel_sdvo_bad_tv[] = {
-	{
-		.callback = intel_sdvo_bad_tv_callback,
-		.ident = "IntelG45/ICH10R/DME1737",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "IBM CORPORATION"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "4800784"),
-		},
-	},
-
-	{ }	/* terminating entry */
-};
-
 static bool
 intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags)
 {
@@ -2343,8 +2323,7 @@ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags)
 					(1 << INTEL_SDVO_NON_TV_CLONE_BIT) |
 					(1 << INTEL_ANALOG_CLONE_BIT);
 		}
-	} else if ((flags & SDVO_OUTPUT_SVID0) &&
-		   !dmi_check_system(intel_sdvo_bad_tv)) {
+	} else if (flags & SDVO_OUTPUT_SVID0) {
 
 		sdvo_priv->controlled_output = SDVO_OUTPUT_SVID0;
 		encoder->encoder_type = DRM_MODE_ENCODER_TVDAC;
-- 
1.6.3.3


-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20100318/09701990/attachment.sig>


More information about the Intel-gfx mailing list