coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
edid.h File Reference
#include <stdint.h>
#include <framebuffer_info.h>
#include "commonlib/coreboot_tables.h"
Include dependency graph for edid.h:

Go to the source code of this file.

Data Structures

struct  edid_mode
 
struct  edid
 

Macros

#define EDID_ASCII_STRING_LENGTH   13
 

Enumerations

enum  edid_modes {
  EDID_MODE_640x480_60Hz , EDID_MODE_720x480_60Hz , EDID_MODE_1280x720_60Hz , EDID_MODE_1920x1080_60Hz ,
  NUM_KNOWN_MODES , EDID_MODE_AUTO
}
 
enum  edid_status { EDID_CONFORMANT , EDID_NOT_CONFORMANT , EDID_ABSENT }
 

Functions

int decode_edid (unsigned char *edid, int size, struct edid *out)
 
void edid_set_framebuffer_bits_per_pixel (struct edid *edid, int fb_bpp, int row_byte_alignment)
 
int set_display_mode (struct edid *edid, enum edid_modes mode)
 

Macro Definition Documentation

◆ EDID_ASCII_STRING_LENGTH

#define EDID_ASCII_STRING_LENGTH   13

Definition at line 47 of file edid.h.

Enumeration Type Documentation

◆ edid_modes

enum edid_modes
Enumerator
EDID_MODE_640x480_60Hz 
EDID_MODE_720x480_60Hz 
EDID_MODE_1280x720_60Hz 
EDID_MODE_1920x1080_60Hz 
NUM_KNOWN_MODES 
EDID_MODE_AUTO 

Definition at line 10 of file edid.h.

◆ edid_status

Enumerator
EDID_CONFORMANT 
EDID_NOT_CONFORMANT 
EDID_ABSENT 

Definition at line 89 of file edid.h.

Function Documentation

◆ decode_edid()

int decode_edid ( unsigned char *  edid,
int  size,
struct edid out 
)

According to E-EDID (EDIDv1.3), has_name_descriptor and has_range_descriptor are both required. These fields are optional in v1.4. However some v1.3 panels (Ex, B133XTN01.3) don't have them. As a workaround, we only print warning messages.

Definition at line 1104 of file edid.c.

References __fallthrough, BIOS_ERR, BIOS_SPEW, BIOS_WARNING, c, detailed_block(), do_checksum(), dump_breakdown(), EDID_ABSENT, EDID_CONFORMANT, EDID_NOT_CONFORMANT, established_timings, extra_info, known_modes, manufacturer_name(), edid::manufacturer_name, memcmp(), memset(), edid::mode_is_supported, NUM_KNOWN_MODES, edid::panel_bits_per_color, edid::panel_bits_per_pixel, parse_extension(), printk, refresh, sync, voltage, x, and y.

Referenced by anx7625_dp_get_edid(), ast_select_mode(), dptx_get_edid(), gma_func0_init(), intel_gma_init_lvds(), ps8640_get_edid(), rk_edp_read_edid(), rk_hdmi_get_edid(), and tegra_dp_update_config().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edid_set_framebuffer_bits_per_pixel()

void edid_set_framebuffer_bits_per_pixel ( struct edid edid,
int  fb_bpp,
int  row_byte_alignment 
)

◆ set_display_mode()

int set_display_mode ( struct edid edid,
enum edid_modes  mode 
)

Definition at line 1081 of file edid.c.

References BIOS_DEBUG, BIOS_ERR, EDID_MODE_AUTO, known_modes, edid::mode, edid::mode_is_supported, name, and printk.

Referenced by rk_hdmi_get_edid().

Here is the caller graph for this function: