man.bsd.lv manual page server

Manual Page Search Parameters

EDID(9) Kernel Developer's Manual EDID(9)

edidVESA Extended Display Identification Data

#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);

These functions provide support parsing the Extended Display Identification Data which describes a display device such as a monitor or flat panel display.

The () 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 () 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 () function prints the data in the given info structure to the console device.

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.

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);
	...

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.

ddc(9), iic(9)

These routines were added in NetBSD 4.0.

Garrett D'Amore <gdamore@NetBSD.org>

July 24, 2013 NetBSD-9.2