XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
drm_edid.h File Reference
#include <linux/types.h>
Include dependency graph for drm_edid.h:

Go to the source code of this file.

Classes

struct  est_timings
 
struct  std_timing
 
struct  detailed_pixel_timing
 
struct  detailed_data_string
 
struct  detailed_data_monitor_range
 
struct  detailed_data_wpindex
 
struct  detailed_data_color_point
 
struct  cvt_timing
 
struct  detailed_non_pixel
 
struct  detailed_timing
 
struct  drm_edid_product_id
 
struct  edid
 
struct  drm_edid_ident
 
struct  cea_sad
 

Macros

#define EDID_LENGTH   128
 
#define DDC_ADDR   0x50
 
#define DDC_ADDR2   0x52 /* E-DDC 1.2 - where DisplayID can hide */
 
#define CEA_EXT   0x02
 
#define VTB_EXT   0x10
 
#define DI_EXT   0x40
 
#define LS_EXT   0x50
 
#define MI_EXT   0x60
 
#define DISPLAYID_EXT   0x70
 
#define EDID_TIMING_ASPECT_SHIFT   6
 
#define EDID_TIMING_ASPECT_MASK   (0x3 << EDID_TIMING_ASPECT_SHIFT)
 
#define EDID_TIMING_VFREQ_SHIFT   0
 
#define EDID_TIMING_VFREQ_MASK   (0x3f << EDID_TIMING_VFREQ_SHIFT)
 
#define DRM_EDID_PT_HSYNC_POSITIVE   (1 << 1)
 
#define DRM_EDID_PT_VSYNC_POSITIVE   (1 << 2)
 
#define DRM_EDID_PT_SEPARATE_SYNC   (3 << 3)
 
#define DRM_EDID_PT_STEREO   (1 << 5)
 
#define DRM_EDID_PT_INTERLACED   (1 << 7)
 
#define DRM_EDID_RANGE_OFFSET_MIN_VFREQ   (1 << 0) /* 1.4 */
 
#define DRM_EDID_RANGE_OFFSET_MAX_VFREQ   (1 << 1) /* 1.4 */
 
#define DRM_EDID_RANGE_OFFSET_MIN_HFREQ   (1 << 2) /* 1.4 */
 
#define DRM_EDID_RANGE_OFFSET_MAX_HFREQ   (1 << 3) /* 1.4 */
 
#define DRM_EDID_DEFAULT_GTF_SUPPORT_FLAG   0x00 /* 1.3 */
 
#define DRM_EDID_RANGE_LIMITS_ONLY_FLAG   0x01 /* 1.4 */
 
#define DRM_EDID_SECONDARY_GTF_SUPPORT_FLAG   0x02 /* 1.3 */
 
#define DRM_EDID_CVT_SUPPORT_FLAG   0x04 /* 1.4 */
 
#define DRM_EDID_CVT_FLAGS_STANDARD_BLANKING   (1 << 3)
 
#define DRM_EDID_CVT_FLAGS_REDUCED_BLANKING   (1 << 4)
 
#define EDID_DETAIL_EST_TIMINGS   0xf7
 
#define EDID_DETAIL_CVT_3BYTE   0xf8
 
#define EDID_DETAIL_COLOR_MGMT_DATA   0xf9
 
#define EDID_DETAIL_STD_MODES   0xfa
 
#define EDID_DETAIL_MONITOR_CPDATA   0xfb
 
#define EDID_DETAIL_MONITOR_NAME   0xfc
 
#define EDID_DETAIL_MONITOR_RANGE   0xfd
 
#define EDID_DETAIL_MONITOR_STRING   0xfe
 
#define EDID_DETAIL_MONITOR_SERIAL   0xff
 
#define DRM_EDID_INPUT_SERRATION_VSYNC   (1 << 0)
 
#define DRM_EDID_INPUT_SYNC_ON_GREEN   (1 << 1)
 
#define DRM_EDID_INPUT_COMPOSITE_SYNC   (1 << 2)
 
#define DRM_EDID_INPUT_SEPARATE_SYNCS   (1 << 3)
 
#define DRM_EDID_INPUT_BLANK_TO_BLACK   (1 << 4)
 
#define DRM_EDID_INPUT_VIDEO_LEVEL   (3 << 5)
 
#define DRM_EDID_INPUT_DIGITAL   (1 << 7)
 
#define DRM_EDID_DIGITAL_DEPTH_MASK   (7 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_UNDEF   (0 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_6   (1 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_8   (2 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_10   (3 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_12   (4 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_14   (5 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_16   (6 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DEPTH_RSVD   (7 << 4) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_MASK   (7 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_UNDEF   (0 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_DVI   (1 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_HDMI_A   (2 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_HDMI_B   (3 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_MDDI   (4 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_TYPE_DP   (5 << 0) /* 1.4 */
 
#define DRM_EDID_DIGITAL_DFP_1_X   (1 << 0) /* 1.3 */
 
#define DRM_EDID_FEATURE_DEFAULT_GTF   (1 << 0) /* 1.2 */
 
#define DRM_EDID_FEATURE_CONTINUOUS_FREQ   (1 << 0) /* 1.4 */
 
#define DRM_EDID_FEATURE_PREFERRED_TIMING   (1 << 1)
 
#define DRM_EDID_FEATURE_STANDARD_COLOR   (1 << 2)
 
#define DRM_EDID_FEATURE_DISPLAY_TYPE   (3 << 3) /* 00=mono, 01=rgb, 10=non-rgb, 11=unknown */
 
#define DRM_EDID_FEATURE_COLOR_MASK   (3 << 3)
 
#define DRM_EDID_FEATURE_RGB   (0 << 3)
 
#define DRM_EDID_FEATURE_RGB_YCRCB444   (1 << 3)
 
#define DRM_EDID_FEATURE_RGB_YCRCB422   (2 << 3)
 
#define DRM_EDID_FEATURE_RGB_YCRCB   (3 << 3) /* both 4:4:4 and 4:2:2 */
 
#define DRM_EDID_FEATURE_PM_ACTIVE_OFF   (1 << 5)
 
#define DRM_EDID_FEATURE_PM_SUSPEND   (1 << 6)
 
#define DRM_EDID_FEATURE_PM_STANDBY   (1 << 7)
 
#define DRM_EDID_HDMI_DC_48   (1 << 6)
 
#define DRM_EDID_HDMI_DC_36   (1 << 5)
 
#define DRM_EDID_HDMI_DC_30   (1 << 4)
 
#define DRM_EDID_HDMI_DC_Y444   (1 << 3)
 
#define DRM_EDID_YCBCR420_DC_48   (1 << 2)
 
#define DRM_EDID_YCBCR420_DC_36   (1 << 1)
 
#define DRM_EDID_YCBCR420_DC_30   (1 << 0)
 
#define DRM_EDID_YCBCR420_DC_MASK
 
#define DRM_EDID_MAX_FRL_RATE_MASK   0xf0
 
#define DRM_EDID_FAPA_START_LOCATION   (1 << 0)
 
#define DRM_EDID_ALLM   (1 << 1)
 
#define DRM_EDID_FVA   (1 << 2)
 
#define DRM_EDID_DC_30BIT_420   (1 << 0)
 
#define DRM_EDID_DC_36BIT_420   (1 << 1)
 
#define DRM_EDID_DC_48BIT_420   (1 << 2)
 
#define DRM_EDID_CNMVRR   (1 << 3)
 
#define DRM_EDID_CINEMA_VRR   (1 << 4)
 
#define DRM_EDID_MDELTA   (1 << 5)
 
#define DRM_EDID_VRR_MAX_UPPER_MASK   0xc0
 
#define DRM_EDID_VRR_MAX_LOWER_MASK   0xff
 
#define DRM_EDID_VRR_MIN_MASK   0x3f
 
#define DRM_EDID_DSC_10BPC   (1 << 0)
 
#define DRM_EDID_DSC_12BPC   (1 << 1)
 
#define DRM_EDID_DSC_16BPC   (1 << 2)
 
#define DRM_EDID_DSC_ALL_BPP   (1 << 3)
 
#define DRM_EDID_DSC_NATIVE_420   (1 << 6)
 
#define DRM_EDID_DSC_1P2   (1 << 7)
 
#define DRM_EDID_DSC_MAX_FRL_RATE_MASK   0xf0
 
#define DRM_EDID_DSC_MAX_SLICES   0xf
 
#define DRM_EDID_DSC_TOTAL_CHUNK_KBYTES   0x3f
 
#define DRM_EDID_IDENT_INIT(_vend_chr_0, _vend_chr_1, _vend_chr_2, _product_id, _name)
 
#define EDID_PRODUCT_ID(e)   ((e)->prod_code[0] | ((e)->prod_code[1] << 8))
 
#define drm_edid_encode_panel_id(vend_chr_0, vend_chr_1, vend_chr_2, product_id)
 

Enumerations

enum  drm_edid_quirk { DRM_EDID_QUIRK_DP_DPCD_PROBE , DRM_EDID_QUIRK_NUM }
 

Functions

int drm_edid_to_sad (const struct edid *edid, struct cea_sad **sads)
 
int drm_edid_to_speaker_allocation (const struct edid *edid, u8 **sadb)
 
int drm_av_sync_delay (struct drm_connector *connector, const struct drm_display_mode *mode)
 
int drm_hdmi_avi_infoframe_from_display_mode (struct hdmi_avi_infoframe *frame, const struct drm_connector *connector, const struct drm_display_mode *mode)
 
int drm_hdmi_vendor_infoframe_from_display_mode (struct hdmi_vendor_infoframe *frame, const struct drm_connector *connector, const struct drm_display_mode *mode)
 
void drm_hdmi_avi_infoframe_quant_range (struct hdmi_avi_infoframe *frame, const struct drm_connector *connector, const struct drm_display_mode *mode, enum hdmi_quantization_range rgb_quant_range)
 
bool drm_probe_ddc (struct i2c_adapter *adapter)
 
struct edid * drm_get_edid (struct drm_connector *connector, struct i2c_adapter *adapter)
 
struct edid * drm_get_edid_switcheroo (struct drm_connector *connector, struct i2c_adapter *adapter)
 
struct edid * drm_edid_duplicate (const struct edid *edid)
 
int drm_add_edid_modes (struct drm_connector *connector, struct edid *edid)
 
int drm_edid_override_connector_update (struct drm_connector *connector)
 
u8 drm_match_cea_mode (const struct drm_display_mode *to_match)
 
bool drm_detect_hdmi_monitor (const struct edid *edid)
 
bool drm_detect_monitor_audio (const struct edid *edid)
 
enum hdmi_quantization_range drm_default_rgb_quant_range (const struct drm_display_mode *mode)
 
int drm_add_modes_noedid (struct drm_connector *connector, unsigned int hdisplay, unsigned int vdisplay)
 
int drm_edid_header_is_valid (const void *edid)
 
bool drm_edid_is_valid (struct edid *edid)
 
void drm_edid_get_monitor_name (const struct edid *edid, char *name, int buflen)
 
struct drm_display_mode * drm_mode_find_dmt (struct drm_device *dev, int hsize, int vsize, int fresh, bool rb)
 
struct drm_display_mode * drm_display_mode_from_cea_vic (struct drm_device *dev, u8 video_code)
 
const struct drm_edid * drm_edid_alloc (const void *edid, size_t size)
 
const struct drm_edid * drm_edid_dup (const struct drm_edid *drm_edid)
 
void drm_edid_free (const struct drm_edid *drm_edid)
 
bool drm_edid_valid (const struct drm_edid *drm_edid)
 
const struct edid * drm_edid_raw (const struct drm_edid *drm_edid)
 
const struct drm_edid * drm_edid_read (struct drm_connector *connector)
 
const struct drm_edid * drm_edid_read_ddc (struct drm_connector *connector, struct i2c_adapter *adapter)
 
const struct drm_edid * drm_edid_read_custom (struct drm_connector *connector, int(*read_block)(void *context, u8 *buf, unsigned int block, size_t len), void *context)
 
const struct drm_edid * drm_edid_read_base_block (struct i2c_adapter *adapter)
 
const struct drm_edid * drm_edid_read_switcheroo (struct drm_connector *connector, struct i2c_adapter *adapter)
 
int drm_edid_connector_update (struct drm_connector *connector, const struct drm_edid *edid)
 
int drm_edid_connector_add_modes (struct drm_connector *connector)
 
bool drm_edid_is_digital (const struct drm_edid *drm_edid)
 
void drm_edid_get_product_id (const struct drm_edid *drm_edid, struct drm_edid_product_id *id)
 
void drm_edid_print_product_id (struct drm_printer *p, const struct drm_edid_product_id *id, bool raw)
 
u32 drm_edid_get_panel_id (const struct drm_edid *drm_edid)
 
bool drm_edid_match (const struct drm_edid *drm_edid, const struct drm_edid_ident *ident)
 
bool drm_edid_has_quirk (struct drm_connector *connector, enum drm_edid_quirk quirk)
 

Variables

struct est_timings __packed
 

Macro Definition Documentation

◆ CEA_EXT

#define CEA_EXT   0x02

◆ DDC_ADDR

#define DDC_ADDR   0x50

◆ DDC_ADDR2

#define DDC_ADDR2   0x52 /* E-DDC 1.2 - where DisplayID can hide */

◆ DI_EXT

#define DI_EXT   0x40

◆ DISPLAYID_EXT

#define DISPLAYID_EXT   0x70

◆ DRM_EDID_ALLM

#define DRM_EDID_ALLM   (1 << 1)

◆ DRM_EDID_CINEMA_VRR

#define DRM_EDID_CINEMA_VRR   (1 << 4)

◆ DRM_EDID_CNMVRR

#define DRM_EDID_CNMVRR   (1 << 3)

◆ DRM_EDID_CVT_FLAGS_REDUCED_BLANKING

#define DRM_EDID_CVT_FLAGS_REDUCED_BLANKING   (1 << 4)

◆ DRM_EDID_CVT_FLAGS_STANDARD_BLANKING

#define DRM_EDID_CVT_FLAGS_STANDARD_BLANKING   (1 << 3)

◆ DRM_EDID_CVT_SUPPORT_FLAG

#define DRM_EDID_CVT_SUPPORT_FLAG   0x04 /* 1.4 */

◆ DRM_EDID_DC_30BIT_420

#define DRM_EDID_DC_30BIT_420   (1 << 0)

◆ DRM_EDID_DC_36BIT_420

#define DRM_EDID_DC_36BIT_420   (1 << 1)

◆ DRM_EDID_DC_48BIT_420

#define DRM_EDID_DC_48BIT_420   (1 << 2)

◆ DRM_EDID_DEFAULT_GTF_SUPPORT_FLAG

#define DRM_EDID_DEFAULT_GTF_SUPPORT_FLAG   0x00 /* 1.3 */

◆ DRM_EDID_DIGITAL_DEPTH_10

#define DRM_EDID_DIGITAL_DEPTH_10   (3 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_12

#define DRM_EDID_DIGITAL_DEPTH_12   (4 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_14

#define DRM_EDID_DIGITAL_DEPTH_14   (5 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_16

#define DRM_EDID_DIGITAL_DEPTH_16   (6 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_6

#define DRM_EDID_DIGITAL_DEPTH_6   (1 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_8

#define DRM_EDID_DIGITAL_DEPTH_8   (2 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_MASK

#define DRM_EDID_DIGITAL_DEPTH_MASK   (7 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_RSVD

#define DRM_EDID_DIGITAL_DEPTH_RSVD   (7 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DEPTH_UNDEF

#define DRM_EDID_DIGITAL_DEPTH_UNDEF   (0 << 4) /* 1.4 */

◆ DRM_EDID_DIGITAL_DFP_1_X

#define DRM_EDID_DIGITAL_DFP_1_X   (1 << 0) /* 1.3 */

◆ DRM_EDID_DIGITAL_TYPE_DP

#define DRM_EDID_DIGITAL_TYPE_DP   (5 << 0) /* 1.4 */

◆ DRM_EDID_DIGITAL_TYPE_DVI

#define DRM_EDID_DIGITAL_TYPE_DVI   (1 << 0) /* 1.4 */

◆ DRM_EDID_DIGITAL_TYPE_HDMI_A

#define DRM_EDID_DIGITAL_TYPE_HDMI_A   (2 << 0) /* 1.4 */

◆ DRM_EDID_DIGITAL_TYPE_HDMI_B

#define DRM_EDID_DIGITAL_TYPE_HDMI_B   (3 << 0) /* 1.4 */

◆ DRM_EDID_DIGITAL_TYPE_MASK

#define DRM_EDID_DIGITAL_TYPE_MASK   (7 << 0) /* 1.4 */

◆ DRM_EDID_DIGITAL_TYPE_MDDI

#define DRM_EDID_DIGITAL_TYPE_MDDI   (4 << 0) /* 1.4 */

◆ DRM_EDID_DIGITAL_TYPE_UNDEF

#define DRM_EDID_DIGITAL_TYPE_UNDEF   (0 << 0) /* 1.4 */

◆ DRM_EDID_DSC_10BPC

#define DRM_EDID_DSC_10BPC   (1 << 0)

◆ DRM_EDID_DSC_12BPC

#define DRM_EDID_DSC_12BPC   (1 << 1)

◆ DRM_EDID_DSC_16BPC

#define DRM_EDID_DSC_16BPC   (1 << 2)

◆ DRM_EDID_DSC_1P2

#define DRM_EDID_DSC_1P2   (1 << 7)

◆ DRM_EDID_DSC_ALL_BPP

#define DRM_EDID_DSC_ALL_BPP   (1 << 3)

◆ DRM_EDID_DSC_MAX_FRL_RATE_MASK

#define DRM_EDID_DSC_MAX_FRL_RATE_MASK   0xf0

◆ DRM_EDID_DSC_MAX_SLICES

#define DRM_EDID_DSC_MAX_SLICES   0xf

◆ DRM_EDID_DSC_NATIVE_420

#define DRM_EDID_DSC_NATIVE_420   (1 << 6)

◆ DRM_EDID_DSC_TOTAL_CHUNK_KBYTES

#define DRM_EDID_DSC_TOTAL_CHUNK_KBYTES   0x3f

◆ drm_edid_encode_panel_id

#define drm_edid_encode_panel_id (   vend_chr_0,
  vend_chr_1,
  vend_chr_2,
  product_id 
)
Value:
((((u32)(vend_chr_0) - '@') & 0x1f) << 26 | \
(((u32)(vend_chr_1) - '@') & 0x1f) << 21 | \
(((u32)(vend_chr_2) - '@') & 0x1f) << 16 | \
((product_id) & 0xffff))
uint32_t u32
Definition kernel.h:16

drm_edid_encode_panel_id - Encode an ID for matching against drm_edid_get_panel_id() @vend_chr_0: First character of the vendor string. @vend_chr_1: Second character of the vendor string. @vend_chr_2: Third character of the vendor string. @product_id: The 16-bit product ID.

This is a macro so that it can be calculated at compile time and used as an initializer.

For instance: drm_edid_encode_panel_id('B', 'O', 'E', 0x2d08) => 0x09e52d08

Return: a 32-bit ID per panel.

◆ DRM_EDID_FAPA_START_LOCATION

#define DRM_EDID_FAPA_START_LOCATION   (1 << 0)

◆ DRM_EDID_FEATURE_COLOR_MASK

#define DRM_EDID_FEATURE_COLOR_MASK   (3 << 3)

◆ DRM_EDID_FEATURE_CONTINUOUS_FREQ

#define DRM_EDID_FEATURE_CONTINUOUS_FREQ   (1 << 0) /* 1.4 */

◆ DRM_EDID_FEATURE_DEFAULT_GTF

#define DRM_EDID_FEATURE_DEFAULT_GTF   (1 << 0) /* 1.2 */

◆ DRM_EDID_FEATURE_DISPLAY_TYPE

#define DRM_EDID_FEATURE_DISPLAY_TYPE   (3 << 3) /* 00=mono, 01=rgb, 10=non-rgb, 11=unknown */

◆ DRM_EDID_FEATURE_PM_ACTIVE_OFF

#define DRM_EDID_FEATURE_PM_ACTIVE_OFF   (1 << 5)

◆ DRM_EDID_FEATURE_PM_STANDBY

#define DRM_EDID_FEATURE_PM_STANDBY   (1 << 7)

◆ DRM_EDID_FEATURE_PM_SUSPEND

#define DRM_EDID_FEATURE_PM_SUSPEND   (1 << 6)

◆ DRM_EDID_FEATURE_PREFERRED_TIMING

#define DRM_EDID_FEATURE_PREFERRED_TIMING   (1 << 1)

◆ DRM_EDID_FEATURE_RGB

#define DRM_EDID_FEATURE_RGB   (0 << 3)

◆ DRM_EDID_FEATURE_RGB_YCRCB

#define DRM_EDID_FEATURE_RGB_YCRCB   (3 << 3) /* both 4:4:4 and 4:2:2 */

◆ DRM_EDID_FEATURE_RGB_YCRCB422

#define DRM_EDID_FEATURE_RGB_YCRCB422   (2 << 3)

◆ DRM_EDID_FEATURE_RGB_YCRCB444

#define DRM_EDID_FEATURE_RGB_YCRCB444   (1 << 3)

◆ DRM_EDID_FEATURE_STANDARD_COLOR

#define DRM_EDID_FEATURE_STANDARD_COLOR   (1 << 2)

◆ DRM_EDID_FVA

#define DRM_EDID_FVA   (1 << 2)

◆ DRM_EDID_HDMI_DC_30

#define DRM_EDID_HDMI_DC_30   (1 << 4)

◆ DRM_EDID_HDMI_DC_36

#define DRM_EDID_HDMI_DC_36   (1 << 5)

◆ DRM_EDID_HDMI_DC_48

#define DRM_EDID_HDMI_DC_48   (1 << 6)

◆ DRM_EDID_HDMI_DC_Y444

#define DRM_EDID_HDMI_DC_Y444   (1 << 3)

◆ DRM_EDID_IDENT_INIT

#define DRM_EDID_IDENT_INIT (   _vend_chr_0,
  _vend_chr_1,
  _vend_chr_2,
  _product_id,
  _name 
)
Value:
{ \
.panel_id = drm_edid_encode_panel_id(_vend_chr_0, _vend_chr_1, _vend_chr_2, _product_id), \
.name = _name, \
}
#define drm_edid_encode_panel_id(vend_chr_0, vend_chr_1, vend_chr_2, product_id)
Definition drm_edid.h:410

◆ DRM_EDID_INPUT_BLANK_TO_BLACK

#define DRM_EDID_INPUT_BLANK_TO_BLACK   (1 << 4)

◆ DRM_EDID_INPUT_COMPOSITE_SYNC

#define DRM_EDID_INPUT_COMPOSITE_SYNC   (1 << 2)

◆ DRM_EDID_INPUT_DIGITAL

#define DRM_EDID_INPUT_DIGITAL   (1 << 7)

◆ DRM_EDID_INPUT_SEPARATE_SYNCS

#define DRM_EDID_INPUT_SEPARATE_SYNCS   (1 << 3)

◆ DRM_EDID_INPUT_SERRATION_VSYNC

#define DRM_EDID_INPUT_SERRATION_VSYNC   (1 << 0)

◆ DRM_EDID_INPUT_SYNC_ON_GREEN

#define DRM_EDID_INPUT_SYNC_ON_GREEN   (1 << 1)

◆ DRM_EDID_INPUT_VIDEO_LEVEL

#define DRM_EDID_INPUT_VIDEO_LEVEL   (3 << 5)

◆ DRM_EDID_MAX_FRL_RATE_MASK

#define DRM_EDID_MAX_FRL_RATE_MASK   0xf0

◆ DRM_EDID_MDELTA

#define DRM_EDID_MDELTA   (1 << 5)

◆ DRM_EDID_PT_HSYNC_POSITIVE

#define DRM_EDID_PT_HSYNC_POSITIVE   (1 << 1)

◆ DRM_EDID_PT_INTERLACED

#define DRM_EDID_PT_INTERLACED   (1 << 7)

◆ DRM_EDID_PT_SEPARATE_SYNC

#define DRM_EDID_PT_SEPARATE_SYNC   (3 << 3)

◆ DRM_EDID_PT_STEREO

#define DRM_EDID_PT_STEREO   (1 << 5)

◆ DRM_EDID_PT_VSYNC_POSITIVE

#define DRM_EDID_PT_VSYNC_POSITIVE   (1 << 2)

◆ DRM_EDID_RANGE_LIMITS_ONLY_FLAG

#define DRM_EDID_RANGE_LIMITS_ONLY_FLAG   0x01 /* 1.4 */

◆ DRM_EDID_RANGE_OFFSET_MAX_HFREQ

#define DRM_EDID_RANGE_OFFSET_MAX_HFREQ   (1 << 3) /* 1.4 */

◆ DRM_EDID_RANGE_OFFSET_MAX_VFREQ

#define DRM_EDID_RANGE_OFFSET_MAX_VFREQ   (1 << 1) /* 1.4 */

◆ DRM_EDID_RANGE_OFFSET_MIN_HFREQ

#define DRM_EDID_RANGE_OFFSET_MIN_HFREQ   (1 << 2) /* 1.4 */

◆ DRM_EDID_RANGE_OFFSET_MIN_VFREQ

#define DRM_EDID_RANGE_OFFSET_MIN_VFREQ   (1 << 0) /* 1.4 */

◆ DRM_EDID_SECONDARY_GTF_SUPPORT_FLAG

#define DRM_EDID_SECONDARY_GTF_SUPPORT_FLAG   0x02 /* 1.3 */

◆ DRM_EDID_VRR_MAX_LOWER_MASK

#define DRM_EDID_VRR_MAX_LOWER_MASK   0xff

◆ DRM_EDID_VRR_MAX_UPPER_MASK

#define DRM_EDID_VRR_MAX_UPPER_MASK   0xc0

◆ DRM_EDID_VRR_MIN_MASK

#define DRM_EDID_VRR_MIN_MASK   0x3f

◆ DRM_EDID_YCBCR420_DC_30

#define DRM_EDID_YCBCR420_DC_30   (1 << 0)

◆ DRM_EDID_YCBCR420_DC_36

#define DRM_EDID_YCBCR420_DC_36   (1 << 1)

◆ DRM_EDID_YCBCR420_DC_48

#define DRM_EDID_YCBCR420_DC_48   (1 << 2)

◆ DRM_EDID_YCBCR420_DC_MASK

#define DRM_EDID_YCBCR420_DC_MASK
Value:
#define DRM_EDID_YCBCR420_DC_36
Definition drm_edid.h:247
#define DRM_EDID_YCBCR420_DC_30
Definition drm_edid.h:248
#define DRM_EDID_YCBCR420_DC_48
Definition drm_edid.h:246

◆ EDID_DETAIL_COLOR_MGMT_DATA

#define EDID_DETAIL_COLOR_MGMT_DATA   0xf9

◆ EDID_DETAIL_CVT_3BYTE

#define EDID_DETAIL_CVT_3BYTE   0xf8

◆ EDID_DETAIL_EST_TIMINGS

#define EDID_DETAIL_EST_TIMINGS   0xf7

◆ EDID_DETAIL_MONITOR_CPDATA

#define EDID_DETAIL_MONITOR_CPDATA   0xfb

◆ EDID_DETAIL_MONITOR_NAME

#define EDID_DETAIL_MONITOR_NAME   0xfc

◆ EDID_DETAIL_MONITOR_RANGE

#define EDID_DETAIL_MONITOR_RANGE   0xfd

◆ EDID_DETAIL_MONITOR_SERIAL

#define EDID_DETAIL_MONITOR_SERIAL   0xff

◆ EDID_DETAIL_MONITOR_STRING

#define EDID_DETAIL_MONITOR_STRING   0xfe

◆ EDID_DETAIL_STD_MODES

#define EDID_DETAIL_STD_MODES   0xfa

◆ EDID_LENGTH

#define EDID_LENGTH   128

◆ EDID_PRODUCT_ID

#define EDID_PRODUCT_ID (   e)    ((e)->prod_code[0] | ((e)->prod_code[1] << 8))

◆ EDID_TIMING_ASPECT_MASK

#define EDID_TIMING_ASPECT_MASK   (0x3 << EDID_TIMING_ASPECT_SHIFT)

◆ EDID_TIMING_ASPECT_SHIFT

#define EDID_TIMING_ASPECT_SHIFT   6

◆ EDID_TIMING_VFREQ_MASK

#define EDID_TIMING_VFREQ_MASK   (0x3f << EDID_TIMING_VFREQ_SHIFT)

◆ EDID_TIMING_VFREQ_SHIFT

#define EDID_TIMING_VFREQ_SHIFT   0

◆ LS_EXT

#define LS_EXT   0x50

◆ MI_EXT

#define MI_EXT   0x60

◆ VTB_EXT

#define VTB_EXT   0x10

Enumeration Type Documentation

◆ drm_edid_quirk

Enumerator
DRM_EDID_QUIRK_DP_DPCD_PROBE 
DRM_EDID_QUIRK_NUM 

Function Documentation

◆ drm_add_edid_modes()

int drm_add_edid_modes ( struct drm_connector *  connector,
struct edid *  edid 
)

◆ drm_add_modes_noedid()

int drm_add_modes_noedid ( struct drm_connector *  connector,
unsigned int  hdisplay,
unsigned int  vdisplay 
)

◆ drm_av_sync_delay()

int drm_av_sync_delay ( struct drm_connector *  connector,
const struct drm_display_mode *  mode 
)

◆ drm_default_rgb_quant_range()

enum hdmi_quantization_range drm_default_rgb_quant_range ( const struct drm_display_mode *  mode)

◆ drm_detect_hdmi_monitor()

bool drm_detect_hdmi_monitor ( const struct edid *  edid)

◆ drm_detect_monitor_audio()

bool drm_detect_monitor_audio ( const struct edid *  edid)

◆ drm_display_mode_from_cea_vic()

struct drm_display_mode * drm_display_mode_from_cea_vic ( struct drm_device *  dev,
u8  video_code 
)

◆ drm_edid_alloc()

const struct drm_edid * drm_edid_alloc ( const void *  edid,
size_t  size 
)

◆ drm_edid_connector_add_modes()

int drm_edid_connector_add_modes ( struct drm_connector *  connector)

◆ drm_edid_connector_update()

int drm_edid_connector_update ( struct drm_connector *  connector,
const struct drm_edid *  edid 
)

◆ drm_edid_dup()

const struct drm_edid * drm_edid_dup ( const struct drm_edid *  drm_edid)

◆ drm_edid_duplicate()

struct edid * drm_edid_duplicate ( const struct edid *  edid)

◆ drm_edid_free()

void drm_edid_free ( const struct drm_edid *  drm_edid)

◆ drm_edid_get_monitor_name()

void drm_edid_get_monitor_name ( const struct edid *  edid,
char *  name,
int  buflen 
)

◆ drm_edid_get_panel_id()

u32 drm_edid_get_panel_id ( const struct drm_edid *  drm_edid)

◆ drm_edid_get_product_id()

void drm_edid_get_product_id ( const struct drm_edid *  drm_edid,
struct drm_edid_product_id *  id 
)

◆ drm_edid_has_quirk()

bool drm_edid_has_quirk ( struct drm_connector *  connector,
enum drm_edid_quirk  quirk 
)

◆ drm_edid_header_is_valid()

int drm_edid_header_is_valid ( const void *  edid)

◆ drm_edid_is_digital()

bool drm_edid_is_digital ( const struct drm_edid *  drm_edid)

◆ drm_edid_is_valid()

bool drm_edid_is_valid ( struct edid *  edid)

◆ drm_edid_match()

bool drm_edid_match ( const struct drm_edid *  drm_edid,
const struct drm_edid_ident *  ident 
)

◆ drm_edid_override_connector_update()

int drm_edid_override_connector_update ( struct drm_connector *  connector)

◆ drm_edid_print_product_id()

void drm_edid_print_product_id ( struct drm_printer *  p,
const struct drm_edid_product_id *  id,
bool  raw 
)

◆ drm_edid_raw()

const struct edid * drm_edid_raw ( const struct drm_edid *  drm_edid)

◆ drm_edid_read()

const struct drm_edid * drm_edid_read ( struct drm_connector *  connector)

◆ drm_edid_read_base_block()

const struct drm_edid * drm_edid_read_base_block ( struct i2c_adapter *  adapter)

◆ drm_edid_read_custom()

const struct drm_edid * drm_edid_read_custom ( struct drm_connector *  connector,
int(*)(void *context, u8 *buf, unsigned int block, size_t len)  read_block,
void *  context 
)

◆ drm_edid_read_ddc()

const struct drm_edid * drm_edid_read_ddc ( struct drm_connector *  connector,
struct i2c_adapter *  adapter 
)

◆ drm_edid_read_switcheroo()

const struct drm_edid * drm_edid_read_switcheroo ( struct drm_connector *  connector,
struct i2c_adapter *  adapter 
)

◆ drm_edid_to_sad()

int drm_edid_to_sad ( const struct edid *  edid,
struct cea_sad **  sads 
)

◆ drm_edid_to_speaker_allocation()

int drm_edid_to_speaker_allocation ( const struct edid *  edid,
u8 **  sadb 
)

◆ drm_edid_valid()

bool drm_edid_valid ( const struct drm_edid *  drm_edid)

◆ drm_get_edid()

struct edid * drm_get_edid ( struct drm_connector *  connector,
struct i2c_adapter *  adapter 
)

◆ drm_get_edid_switcheroo()

struct edid * drm_get_edid_switcheroo ( struct drm_connector *  connector,
struct i2c_adapter *  adapter 
)

◆ drm_hdmi_avi_infoframe_from_display_mode()

int drm_hdmi_avi_infoframe_from_display_mode ( struct hdmi_avi_infoframe *  frame,
const struct drm_connector *  connector,
const struct drm_display_mode *  mode 
)

◆ drm_hdmi_avi_infoframe_quant_range()

void drm_hdmi_avi_infoframe_quant_range ( struct hdmi_avi_infoframe *  frame,
const struct drm_connector *  connector,
const struct drm_display_mode *  mode,
enum hdmi_quantization_range  rgb_quant_range 
)

◆ drm_hdmi_vendor_infoframe_from_display_mode()

int drm_hdmi_vendor_infoframe_from_display_mode ( struct hdmi_vendor_infoframe *  frame,
const struct drm_connector *  connector,
const struct drm_display_mode *  mode 
)

◆ drm_match_cea_mode()

u8 drm_match_cea_mode ( const struct drm_display_mode *  to_match)

◆ drm_mode_find_dmt()

struct drm_display_mode * drm_mode_find_dmt ( struct drm_device *  dev,
int  hsize,
int  vsize,
int  fresh,
bool  rb 
)

◆ drm_probe_ddc()

bool drm_probe_ddc ( struct i2c_adapter *  adapter)

Variable Documentation

◆ __packed

struct edid __packed