[PATCH 1/2] drm/edid: Make EDID header fixup threshold configurable

Adam Jackson ajax at redhat.com
Mon Apr 26 12:03:35 PDT 2010


Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 Documentation/kernel-parameters.txt |    4 ++++
 drivers/gpu/drm/drm_edid.c          |    5 ++++-
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e2202e9..17d50d2 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -713,6 +713,10 @@ and is between 256 and 4096 characters. It is defined in the file
 	edd=		[EDD]
 			Format: {"off" | "on" | "skip[mbr]"}
 
+	edid_threshold=<int> [DRM]
+			Set the minimum number of bytes of an EDID header
+			that must be valid, out of 8.  The default is 6.
+
 	eisa_irq_edge=	[PARISC,HW]
 			See header of drivers/parisc/eisa.c.
 
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 7188674..6a1b5a3 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -62,6 +62,9 @@
 /* use +hsync +vsync for detailed mode */
 #define EDID_QUIRK_DETAILED_SYNC_PP		(1 << 6)
 
+static unsigned int edid_threshold = 6;
+MODULE_PARM_DESC(edid_threshold, "EDID header fixup threshold (default: 6)");
+module_param_named(edid_threshold, edid_threshold, int, 0600);
 
 #define LEVEL_DMT	0
 #define LEVEL_GTF	1
@@ -135,7 +138,7 @@ drm_edid_block_valid(u8 *raw_edid)
 				score++;
 
 		if (score == 8) ;
-		else if (score >= 6) {
+		else if (score >= edid_threshold) {
 			DRM_DEBUG("Fixing EDID header, your hardware may be failing\n");
 			memcpy(raw_edid, edid_header, sizeof(edid_header));
 		} else {
-- 
1.7.0.1



More information about the dri-devel mailing list