EDID(9) NetBSD Kernel Developer's Manual EDID(9)
NAME
edid -- VESA Extended Display Identification Data
SYNOPSIS
#include <dev/videomode/videomode.h> #include <dev/videomode/edidvar.h> #include <dev/videomode/edidreg.h> int edid_is_valid(uint8_t *data); int edid_parse(uint8_t *data, struct edid_info *info); void edid_print(struct edid_info *info);
DESCRIPTION
These functions provide support parsing the Extended Display Identifica- tion Data which describes a display device such as a monitor or flat panel display. The edid_is_valid() function simply tests if the EDID block in data con- tains 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.
RETURN VALUES
The edid_is_valid() function returns 0 if the data block is valid, and EINVAL otherwise. The edid_parse() function returns zero if the data was successfully parsed, and non-zero otherwise.
EXAMPLES
The following code uses these functions to retrieve and print information about a monitor: 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); ...
CODE REFERENCES
The EDID subsystem is implemented within the file sys/dev/videomode/edid.c. 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.
SEE ALSO
ddc(9), iic(9)
HISTORY
These routines were added in NetBSD 4.0.
AUTHORS
Garrett D'Amore <gdamore@NetBSD.org> NetBSD 10.1 July 24, 2013 NetBSD 10.1
Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.