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;