EDID(9) | Kernel Developer's Manual | EDID(9) |
int
edid_is_valid(uint8_t *data);
int
edid_parse(uint8_t *data, struct edid_info *info);
void
edid_print(struct edid_info *info);
The edid_is_valid() function simply tests if the EDID block in data contains valid data. This test includes a verification of the checksum, and that valid vendor and product idenfication data is present. The data block contain at least 128 bytes.
The edid_parse() function parses the supplied data block (which again, must be at least 128 bytes), writing the relevant data into the structure pointed to by info.
The edid_print() function prints the data in the given info structure to the console device.
The EDID subsystem also makes use of VESA Generalized Timing Formula located located in sys/dev/videomode/vesagtf.c and the generic videomode database located in sys/dev/videomode/videomode.c.
struct edid_info info; i2c_tag_t tag; char buffer[128]; ... /* initialize i2c tag... */ ... if ((ddc_read_edid(tag, buffer, 128) == 0) && (edid_parse(buffer, &info) == 0)) edid_print(info); ...
May 11, 2006 | NetBSD 6.1 |