Module Name:    src
Committed By:   jmcneill
Date:           Mon Nov 17 00:46:04 UTC 2014

Modified Files:
        src/sys/dev/videomode: edid.c edidreg.h edidvar.h

Log Message:
Parse the extension block count field, and make it available in struct edid_info


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/videomode/edid.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/videomode/edidreg.h
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/videomode/edidvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/videomode/edid.c
diff -u src/sys/dev/videomode/edid.c:1.12 src/sys/dev/videomode/edid.c:1.13
--- src/sys/dev/videomode/edid.c:1.12	Fri Feb  8 16:35:10 2013
+++ src/sys/dev/videomode/edid.c	Mon Nov 17 00:46:04 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: edid.c,v 1.12 2013/02/08 16:35:10 skrll Exp $ */
+/* $NetBSD: edid.c,v 1.13 2014/11/17 00:46:04 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
  */ 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: edid.c,v 1.12 2013/02/08 16:35:10 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: edid.c,v 1.13 2014/11/17 00:46:04 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -286,6 +286,8 @@ edid_print(struct edid_info *edid)
 		    DIVIDE(DIVIDE(edid->edid_preferred_mode->dot_clock * 1000,
 		    edid->edid_preferred_mode->htotal),
 		    edid->edid_preferred_mode->vtotal));
+
+	printf("Number of extension blocks: %d\n", edid->edid_ext_block_count);
 }
 
 static const struct videomode *
@@ -569,6 +571,8 @@ edid_parse(uint8_t *data, struct edid_in
 	edid->edid_chroma.ec_whitex = EDID_CHROMA_WHITEX(data);
 	edid->edid_chroma.ec_whitey = EDID_CHROMA_WHITEY(data);
 
+	edid->edid_ext_block_count = EDID_EXT_BLOCK_COUNT(data);
+
 	/* lookup established modes */
 	edid->edid_nmodes = 0;
 	edid->edid_preferred_mode = NULL;

Index: src/sys/dev/videomode/edidreg.h
diff -u src/sys/dev/videomode/edidreg.h:1.3 src/sys/dev/videomode/edidreg.h:1.4
--- src/sys/dev/videomode/edidreg.h:1.3	Wed Mar 30 18:49:56 2011
+++ src/sys/dev/videomode/edidreg.h	Mon Nov 17 00:46:04 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: edidreg.h,v 1.3 2011/03/30 18:49:56 jdc Exp $	*/
+/*	$NetBSD: edidreg.h,v 1.4 2014/11/17 00:46:04 jmcneill Exp $	*/
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -250,4 +250,6 @@
 #define	EDID_DESC_STD_TIMING_START		5
 #define	EDID_DESC_STD_TIMING_COUNT		6
 
+#define	EDID_EXT_BLOCK_COUNT(ptr)		((ptr)[126])
+
 #endif /* _DEV_VIDEOMODE_EDIDREG_H */

Index: src/sys/dev/videomode/edidvar.h
diff -u src/sys/dev/videomode/edidvar.h:1.2 src/sys/dev/videomode/edidvar.h:1.3
--- src/sys/dev/videomode/edidvar.h:1.2	Thu May 11 19:05:41 2006
+++ src/sys/dev/videomode/edidvar.h	Mon Nov 17 00:46:04 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: edidvar.h,v 1.2 2006/05/11 19:05:41 gdamore Exp $	*/
+/*	$NetBSD: edidvar.h,v 1.3 2014/11/17 00:46:04 jmcneill Exp $	*/
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -75,6 +75,7 @@ struct edid_info {
 	uint8_t		edid_max_vsize;		/* in cm */
 	uint8_t		edid_gamma;
 	uint8_t		edid_features;
+	uint8_t		edid_ext_block_count;
 
 	int			edid_have_range;
 	struct edid_range	edid_range;

Reply via email to