Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
drm_edid.h File Reference
#include <linux/types.h>

Go to the source code of this file.

Data Structures

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  edid
 

Macros

#define EDID_LENGTH   128
 
#define DDC_ADDR   0x50
 
#define CEA_EXT   0x02
 
#define VTB_EXT   0x10
 
#define DI_EXT   0x40
 
#define LS_EXT   0x50
 
#define MI_EXT   0x60
 
#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 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)
 
#define DRM_EDID_DIGITAL_DEPTH_UNDEF   (0 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_6   (1 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_8   (2 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_10   (3 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_12   (4 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_14   (5 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_16   (6 << 4)
 
#define DRM_EDID_DIGITAL_DEPTH_RSVD   (7 << 4)
 
#define DRM_EDID_DIGITAL_TYPE_UNDEF   (0)
 
#define DRM_EDID_DIGITAL_TYPE_DVI   (1)
 
#define DRM_EDID_DIGITAL_TYPE_HDMI_A   (2)
 
#define DRM_EDID_DIGITAL_TYPE_HDMI_B   (3)
 
#define DRM_EDID_DIGITAL_TYPE_MDDI   (4)
 
#define DRM_EDID_DIGITAL_TYPE_DP   (5)
 
#define DRM_EDID_FEATURE_DEFAULT_GTF   (1 << 0)
 
#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 EDID_PRODUCT_ID(e)   ((e)->prod_code[0] | ((e)->prod_code[1] << 8))
 

Functions

struct est_timings __attribute__ ((packed))
 
void drm_edid_to_eld (struct drm_connector *connector, struct edid *edid)
 
int drm_av_sync_delay (struct drm_connector *connector, struct drm_display_mode *mode)
 
struct drm_connectordrm_select_eld (struct drm_encoder *encoder, struct drm_display_mode *mode)
 
int drm_load_edid_firmware (struct drm_connector *connector)
 

Variables

u8 t1
 
u8 t2
 
u8 mfg_rsvd
 
u8 hsize
 
u8 vfreq_aspect
 
u8 hactive_lo
 
u8 hblank_lo
 
u8 hactive_hblank_hi
 
u8 vactive_lo
 
u8 vblank_lo
 
u8 vactive_vblank_hi
 
u8 hsync_offset_lo
 
u8 hsync_pulse_width_lo
 
u8 vsync_offset_pulse_width_lo
 
u8 hsync_vsync_offset_pulse_width_hi
 
u8 width_mm_lo
 
u8 height_mm_lo
 
u8 width_height_mm_hi
 
u8 hborder
 
u8 vborder
 
u8 misc
 
u8 str [13]
 
u8 reserved
 
u8 hfreq_start_khz
 
u8 c
 
__le16 m
 
u8 k
 
u8 j
 
u8 version
 
u8 data1
 
u8 data2
 
u8 supported_aspects
 
u8 flags
 
u8 supported_scalings
 
u8 preferred_refresh
 
u8 min_vfreq
 
u8 max_vfreq
 
u8 min_hfreq_khz
 
u8 max_hfreq_khz
 
u8 pixel_clock_mhz
 
union {
formula
 
u8 white_yx_lo
 
u8 white_x_hi
 
u8 white_y_hi
 
u8 gamma
 
u8 windex1
 
u8 wpindex1 [3]
 
u8 windex2
 
u8 wpindex2 [3]
 
u8 code [3]
 
u8 pad1
 
u8 type
 
u8 pad2
 
union {
   struct detailed_data_string   str
 
   struct detailed_data_monitor_range   range
 
   struct detailed_data_wpindex   color
 
   struct std_timing   timings [6]
 
   struct cvt_timing   cvt [4]
 
data
 
__le16 pixel_clock
 
u8 header [8]
 
u8 mfg_id [2]
 
u8 prod_code [2]
 
u32 serial
 
u8 mfg_week
 
u8 mfg_year
 
u8 revision
 
u8 input
 
u8 width_cm
 
u8 height_cm
 
u8 features
 
u8 red_green_lo
 
u8 black_white_lo
 
u8 red_x
 
u8 red_y
 
u8 green_x
 
u8 green_y
 
u8 blue_x
 
u8 blue_y
 
u8 white_x
 
u8 white_y
 
struct est_timings established_timings
 
struct std_timing standard_timings [8]
 
struct detailed_timing detailed_timings [4]
 
u8 extensions
 
u8 checksum
 

Macro Definition Documentation

#define CEA_EXT   0x02

Definition at line 31 of file drm_edid.h.

#define DDC_ADDR   0x50

Definition at line 29 of file drm_edid.h.

#define DI_EXT   0x40

Definition at line 33 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_10   (3 << 4)

Definition at line 177 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_12   (4 << 4)

Definition at line 178 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_14   (5 << 4)

Definition at line 179 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_16   (6 << 4)

Definition at line 180 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_6   (1 << 4)

Definition at line 175 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_8   (2 << 4)

Definition at line 176 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_MASK   (7 << 4)

Definition at line 173 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_RSVD   (7 << 4)

Definition at line 181 of file drm_edid.h.

#define DRM_EDID_DIGITAL_DEPTH_UNDEF   (0 << 4)

Definition at line 174 of file drm_edid.h.

#define DRM_EDID_DIGITAL_TYPE_DP   (5)

Definition at line 187 of file drm_edid.h.

#define DRM_EDID_DIGITAL_TYPE_DVI   (1)

Definition at line 183 of file drm_edid.h.

#define DRM_EDID_DIGITAL_TYPE_HDMI_A   (2)

Definition at line 184 of file drm_edid.h.

#define DRM_EDID_DIGITAL_TYPE_HDMI_B   (3)

Definition at line 185 of file drm_edid.h.

#define DRM_EDID_DIGITAL_TYPE_MDDI   (4)

Definition at line 186 of file drm_edid.h.

#define DRM_EDID_DIGITAL_TYPE_UNDEF   (0)

Definition at line 182 of file drm_edid.h.

#define DRM_EDID_FEATURE_COLOR_MASK   (3 << 3)

Definition at line 195 of file drm_edid.h.

#define DRM_EDID_FEATURE_DEFAULT_GTF   (1 << 0)

Definition at line 189 of file drm_edid.h.

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

Definition at line 193 of file drm_edid.h.

#define DRM_EDID_FEATURE_PM_ACTIVE_OFF   (1 << 5)

Definition at line 201 of file drm_edid.h.

#define DRM_EDID_FEATURE_PM_STANDBY   (1 << 7)

Definition at line 203 of file drm_edid.h.

#define DRM_EDID_FEATURE_PM_SUSPEND   (1 << 6)

Definition at line 202 of file drm_edid.h.

#define DRM_EDID_FEATURE_PREFERRED_TIMING   (1 << 1)

Definition at line 190 of file drm_edid.h.

#define DRM_EDID_FEATURE_RGB   (0 << 3)

Definition at line 196 of file drm_edid.h.

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

Definition at line 199 of file drm_edid.h.

#define DRM_EDID_FEATURE_RGB_YCRCB422   (2 << 3)

Definition at line 198 of file drm_edid.h.

#define DRM_EDID_FEATURE_RGB_YCRCB444   (1 << 3)

Definition at line 197 of file drm_edid.h.

#define DRM_EDID_FEATURE_STANDARD_COLOR   (1 << 2)

Definition at line 191 of file drm_edid.h.

#define DRM_EDID_INPUT_BLANK_TO_BLACK   (1 << 4)

Definition at line 170 of file drm_edid.h.

#define DRM_EDID_INPUT_COMPOSITE_SYNC   (1 << 2)

Definition at line 168 of file drm_edid.h.

#define DRM_EDID_INPUT_DIGITAL   (1 << 7)

Definition at line 172 of file drm_edid.h.

#define DRM_EDID_INPUT_SEPARATE_SYNCS   (1 << 3)

Definition at line 169 of file drm_edid.h.

#define DRM_EDID_INPUT_SERRATION_VSYNC   (1 << 0)

Definition at line 166 of file drm_edid.h.

#define DRM_EDID_INPUT_SYNC_ON_GREEN   (1 << 1)

Definition at line 167 of file drm_edid.h.

#define DRM_EDID_INPUT_VIDEO_LEVEL   (3 << 5)

Definition at line 171 of file drm_edid.h.

#define DRM_EDID_PT_HSYNC_POSITIVE   (1 << 1)

Definition at line 56 of file drm_edid.h.

#define DRM_EDID_PT_INTERLACED   (1 << 7)

Definition at line 60 of file drm_edid.h.

#define DRM_EDID_PT_SEPARATE_SYNC   (3 << 3)

Definition at line 58 of file drm_edid.h.

#define DRM_EDID_PT_STEREO   (1 << 5)

Definition at line 59 of file drm_edid.h.

#define DRM_EDID_PT_VSYNC_POSITIVE   (1 << 2)

Definition at line 57 of file drm_edid.h.

#define EDID_DETAIL_COLOR_MGMT_DATA   0xf9

Definition at line 150 of file drm_edid.h.

#define EDID_DETAIL_CVT_3BYTE   0xf8

Definition at line 149 of file drm_edid.h.

#define EDID_DETAIL_EST_TIMINGS   0xf7

Definition at line 148 of file drm_edid.h.

#define EDID_DETAIL_MONITOR_CPDATA   0xfb

Definition at line 152 of file drm_edid.h.

#define EDID_DETAIL_MONITOR_NAME   0xfc

Definition at line 153 of file drm_edid.h.

#define EDID_DETAIL_MONITOR_RANGE   0xfd

Definition at line 154 of file drm_edid.h.

#define EDID_DETAIL_MONITOR_SERIAL   0xff

Definition at line 156 of file drm_edid.h.

#define EDID_DETAIL_MONITOR_STRING   0xfe

Definition at line 155 of file drm_edid.h.

#define EDID_DETAIL_STD_MODES   0xfa

Definition at line 151 of file drm_edid.h.

#define EDID_LENGTH   128

Definition at line 28 of file drm_edid.h.

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

Definition at line 245 of file drm_edid.h.

#define EDID_TIMING_ASPECT_MASK   (0x3 << EDID_TIMING_ASPECT_SHIFT)

Definition at line 45 of file drm_edid.h.

#define EDID_TIMING_ASPECT_SHIFT   6

Definition at line 44 of file drm_edid.h.

#define EDID_TIMING_VFREQ_MASK   (0x3f << EDID_TIMING_VFREQ_SHIFT)

Definition at line 49 of file drm_edid.h.

#define EDID_TIMING_VFREQ_SHIFT   0

Definition at line 48 of file drm_edid.h.

#define LS_EXT   0x50

Definition at line 34 of file drm_edid.h.

#define MI_EXT   0x60

Definition at line 35 of file drm_edid.h.

#define VTB_EXT   0x10

Definition at line 32 of file drm_edid.h.

Function Documentation

struct est_timings __attribute__ ( (packed)  )
read

mcontroller : adapter info structure for old mimd_t apps

: base address : irq number : number of logical drives : pci bus : pci device : pci function : pci id : vendor id : slot number : unique id

Definition at line 171 of file esd_usb2.c.

int drm_av_sync_delay ( struct drm_connector connector,
struct drm_display_mode mode 
)

drm_av_sync_delay - HDMI/DP sink audio-video sync delay in millisecond : connector associated with the HDMI/DP sink : the display mode

Definition at line 1754 of file drm_edid.c.

void drm_edid_to_eld ( struct drm_connector connector,
struct edid edid 
)

drm_edid_to_eld - build ELD from EDID : connector corresponding to the HDMI/DP sink : EDID to parse

Fill the ELD (EDID-Like Data) buffer for passing to the audio driver. Some ELD fields are left to the graphics driver caller:

  • Conn_Type
  • HDCP
  • Port_ID

Definition at line 1673 of file drm_edid.c.

int drm_load_edid_firmware ( struct drm_connector connector)

Definition at line 225 of file drm_edid_load.c.

struct drm_connector* drm_select_eld ( struct drm_encoder encoder,
struct drm_display_mode mode 
)
read

drm_select_eld - select one ELD from multiple HDMI/DP sinks : the encoder just changed display mode : the adjusted display mode

It's possible for one encoder to be associated with multiple HDMI/DP sinks. The policy is now hard coded to simply use the first HDMI/DP sink's ELD.

Definition at line 1795 of file drm_edid.c.

Variable Documentation

u8 black_white_lo

Definition at line 262 of file drm_edid.h.

u8 blue_x

Definition at line 267 of file drm_edid.h.

u8 blue_y

Definition at line 268 of file drm_edid.h.

u8 c

Definition at line 105 of file drm_edid.h.

u8 checksum

Definition at line 280 of file drm_edid.h.

u8 code[3]

Definition at line 132 of file drm_edid.h.

Definition at line 155 of file drm_edid.h.

Definition at line 157 of file drm_edid.h.

union { ... } data
u8 data1

Definition at line 113 of file drm_edid.h.

u8 data2

Definition at line 114 of file drm_edid.h.

struct detailed_timing detailed_timings[4]

Definition at line 276 of file drm_edid.h.

struct est_timings established_timings

Definition at line 272 of file drm_edid.h.

u8 extensions

Definition at line 278 of file drm_edid.h.

Definition at line 259 of file drm_edid.h.

u8 flags

Definition at line 116 of file drm_edid.h.

union { ... } formula
u8 gamma

Definition at line 124 of file drm_edid.h.

u8 green_x

Definition at line 265 of file drm_edid.h.

u8 green_y

Definition at line 266 of file drm_edid.h.

u8 hactive_hblank_hi

Definition at line 83 of file drm_edid.h.

u8 hactive_lo

Definition at line 81 of file drm_edid.h.

u8 hblank_lo

Definition at line 82 of file drm_edid.h.

u8 hborder

Definition at line 94 of file drm_edid.h.

u8 header[8]

Definition at line 244 of file drm_edid.h.

u8 height_cm

Definition at line 257 of file drm_edid.h.

u8 height_mm_lo

Definition at line 92 of file drm_edid.h.

u8 hfreq_start_khz

Definition at line 104 of file drm_edid.h.

u8 hsize

Definition at line 55 of file drm_edid.h.

u8 hsync_offset_lo

Definition at line 87 of file drm_edid.h.

u8 hsync_pulse_width_lo

Definition at line 88 of file drm_edid.h.

u8 hsync_vsync_offset_pulse_width_hi

Definition at line 90 of file drm_edid.h.

u8 input

Definition at line 255 of file drm_edid.h.

u8 j

Definition at line 108 of file drm_edid.h.

u8 k

Definition at line 107 of file drm_edid.h.

__le16 m

Definition at line 106 of file drm_edid.h.

u8 max_hfreq_khz

Definition at line 117 of file drm_edid.h.

u8 max_vfreq

Definition at line 115 of file drm_edid.h.

u8 mfg_id[2]

Definition at line 246 of file drm_edid.h.

u8 mfg_rsvd

Definition at line 44 of file drm_edid.h.

u8 mfg_week

Definition at line 249 of file drm_edid.h.

u8 mfg_year

Definition at line 250 of file drm_edid.h.

u8 min_hfreq_khz

Definition at line 116 of file drm_edid.h.

u8 min_vfreq

Definition at line 114 of file drm_edid.h.

u8 misc

Definition at line 96 of file drm_edid.h.

Definition at line 168 of file drm_edid.h.

u8 pad1

Definition at line 147 of file drm_edid.h.

u8 pad2

Definition at line 151 of file drm_edid.h.

__le16 pixel_clock

Definition at line 165 of file drm_edid.h.

u8 pixel_clock_mhz

Definition at line 118 of file drm_edid.h.

Definition at line 167 of file drm_edid.h.

u8 preferred_refresh

Definition at line 118 of file drm_edid.h.

u8 prod_code[2]

Definition at line 247 of file drm_edid.h.

:hw_params variable to apply the range

snd_pcm_hw_constraint_minmax - apply a min/max range constraint to an interval : PCM runtime instance

: the minimal value : the maximal value

Apply the min/max range constraint to an interval parameter.

Definition at line 154 of file drm_edid.h.

u8 red_green_lo

Definition at line 261 of file drm_edid.h.

u8 red_x

Definition at line 263 of file drm_edid.h.

u8 red_y

Definition at line 264 of file drm_edid.h.

u8 reserved

Definition at line 103 of file drm_edid.h.

Definition at line 253 of file drm_edid.h.

u32 serial

Definition at line 248 of file drm_edid.h.

struct std_timing standard_timings[8]

Definition at line 274 of file drm_edid.h.

Definition at line 86 of file drm_edid.h.

u8 supported_aspects

Definition at line 115 of file drm_edid.h.

u8 supported_scalings

Definition at line 117 of file drm_edid.h.

u8 t1

Definition at line 42 of file drm_edid.h.

u8 t2

Definition at line 43 of file drm_edid.h.

struct std_timing timings[6]

Definition at line 156 of file drm_edid.h.

Definition at line 148 of file drm_edid.h.

u8 vactive_lo

Definition at line 84 of file drm_edid.h.

u8 vactive_vblank_hi

Definition at line 86 of file drm_edid.h.

u8 vblank_lo

Definition at line 85 of file drm_edid.h.

u8 vborder

Definition at line 95 of file drm_edid.h.

u8 version

Definition at line 112 of file drm_edid.h.

u8 vfreq_aspect

Definition at line 56 of file drm_edid.h.

u8 vsync_offset_pulse_width_lo

Definition at line 89 of file drm_edid.h.

u8 white_x

Definition at line 269 of file drm_edid.h.

u8 white_x_hi

Definition at line 122 of file drm_edid.h.

u8 white_y

Definition at line 270 of file drm_edid.h.

u8 white_y_hi

Definition at line 123 of file drm_edid.h.

u8 white_yx_lo

Definition at line 121 of file drm_edid.h.

u8 width_cm

Definition at line 256 of file drm_edid.h.

u8 width_height_mm_hi

Definition at line 93 of file drm_edid.h.

u8 width_mm_lo

Definition at line 91 of file drm_edid.h.

u8 windex1

Definition at line 128 of file drm_edid.h.

u8 windex2

Definition at line 130 of file drm_edid.h.

u8 wpindex1[3]

Definition at line 129 of file drm_edid.h.

u8 wpindex2[3]

Definition at line 131 of file drm_edid.h.