aboutsummaryrefslogtreecommitdiff
path: root/deps/sysobj_early/include/util_edid.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/sysobj_early/include/util_edid.h')
-rw-r--r--deps/sysobj_early/include/util_edid.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/deps/sysobj_early/include/util_edid.h b/deps/sysobj_early/include/util_edid.h
index d2fe947b..5bb4b932 100644
--- a/deps/sysobj_early/include/util_edid.h
+++ b/deps/sysobj_early/include/util_edid.h
@@ -32,6 +32,19 @@ typedef struct {
uint32_t offset;
} edid_addy;
+/* OUI is stored in EDID as 24-bit little-endian,
+ * but lookup file from IEEE expects big-endian.
+ * .oui_str is .oui rendered into big-endian for
+ * easy lookup. */
+typedef struct {
+ union {
+ char pnp[7]; /* only needs 3+null */
+ char oui_str[7]; /* needs 6+null */
+ };
+ uint32_t oui;
+ uint8_t type; /* enum VEN_TYPE_* */
+} edid_ven;
+
typedef struct {
char *str;
uint16_t len;
@@ -57,6 +70,9 @@ typedef struct {
uint8_t revision;
uint8_t len;
uint8_t bounds_ok;
+
+ /* for vendor specific block */
+ edid_ven ven;
} DisplayIDBlock;
typedef struct {
@@ -125,6 +141,9 @@ struct edid_cea_block {
edid_addy addy;
int type, len;
uint8_t bounds_ok;
+
+ /* for vendor specific block */
+ edid_ven ven;
};
struct edid_descriptor {
@@ -146,13 +165,6 @@ enum {
VEN_TYPE_OUI,
};
-typedef struct {
- //TODO: union?
- char pnp[4];
- uint32_t oui;
- uint8_t type; /* enum VEN_TYPE_* */
-} edid_ven;
-
enum {
STD_EDID = 0,
STD_EEDID = 1,