XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions
drm_modes.h File Reference
#include <linux/hdmi.h>
#include <drm/drm_mode_object.h>
#include <drm/drm_connector.h>
Include dependency graph for drm_modes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  drm_display_mode
 

Macros

#define DRM_MODE(nm, t, c, hd, hss, hse, ht, hsk, vd, vss, vse, vt, vs, f)
 
#define DRM_MODE_RES_MM(res, dpi)    (((res) * 254ul) / ((dpi) * 10ul))
 
#define __DRM_MODE_INIT(pix, hd, vd, hd_mm, vd_mm)
 
#define DRM_MODE_INIT(hz, hd, vd, hd_mm, vd_mm)    __DRM_MODE_INIT((hd) * (vd) * (hz) / 1000 /* kHz */, hd, vd, hd_mm, vd_mm)
 
#define DRM_SIMPLE_MODE(hd, vd, hd_mm, vd_mm)    __DRM_MODE_INIT(1 /* pass validation */, hd, vd, hd_mm, vd_mm)
 
#define CRTC_INTERLACE_HALVE_V   (1 << 0) /* halve V values for interlacing */
 
#define CRTC_STEREO_DOUBLE   (1 << 1) /* adjust timings for stereo modes */
 
#define CRTC_NO_DBLSCAN   (1 << 2) /* don't adjust doublescan */
 
#define CRTC_NO_VSCAN   (1 << 3) /* don't adjust doublescan */
 
#define CRTC_STEREO_DOUBLE_ONLY   (CRTC_STEREO_DOUBLE | CRTC_NO_DBLSCAN | CRTC_NO_VSCAN)
 
#define DRM_MODE_FLAG_3D_MAX   DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF
 
#define DRM_MODE_MATCH_TIMINGS   (1 << 0)
 
#define DRM_MODE_MATCH_CLOCK   (1 << 1)
 
#define DRM_MODE_MATCH_FLAGS   (1 << 2)
 
#define DRM_MODE_MATCH_3D_FLAGS   (1 << 3)
 
#define DRM_MODE_MATCH_ASPECT_RATIO   (1 << 4)
 
#define DRM_MODE_FMT   "\"%s\": %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
 
#define DRM_MODE_ARG(m)
 
#define obj_to_mode(x)   container_of(x, struct drm_display_mode, base)
 

Enumerations

enum  drm_mode_status {
  MODE_OK = 0 , MODE_HSYNC , MODE_VSYNC , MODE_H_ILLEGAL ,
  MODE_V_ILLEGAL , MODE_BAD_WIDTH , MODE_NOMODE , MODE_NO_INTERLACE ,
  MODE_NO_DBLESCAN , MODE_NO_VSCAN , MODE_MEM , MODE_VIRTUAL_X ,
  MODE_VIRTUAL_Y , MODE_MEM_VIRT , MODE_NOCLOCK , MODE_CLOCK_HIGH ,
  MODE_CLOCK_LOW , MODE_CLOCK_RANGE , MODE_BAD_HVALUE , MODE_BAD_VVALUE ,
  MODE_BAD_VSCAN , MODE_HSYNC_NARROW , MODE_HSYNC_WIDE , MODE_HBLANK_NARROW ,
  MODE_HBLANK_WIDE , MODE_VSYNC_NARROW , MODE_VSYNC_WIDE , MODE_VBLANK_NARROW ,
  MODE_VBLANK_WIDE , MODE_PANEL , MODE_INTERLACE_WIDTH , MODE_ONE_WIDTH ,
  MODE_ONE_HEIGHT , MODE_ONE_SIZE , MODE_NO_REDUCED , MODE_NO_STEREO ,
  MODE_NO_420 , MODE_STALE = -3 , MODE_BAD = -2 , MODE_ERROR = -1
}
 

Functions

struct drm_display_mode * drm_mode_create (struct drm_device *dev)
 
void drm_mode_destroy (struct drm_device *dev, struct drm_display_mode *mode)
 
void drm_mode_convert_to_umode (struct drm_mode_modeinfo *out, const struct drm_display_mode *in)
 
int drm_mode_convert_umode (struct drm_device *dev, struct drm_display_mode *out, const struct drm_mode_modeinfo *in)
 
void drm_mode_probed_add (struct drm_connector *connector, struct drm_display_mode *mode)
 
void drm_mode_debug_printmodeline (const struct drm_display_mode *mode)
 
bool drm_mode_is_420_only (const struct drm_display_info *display, const struct drm_display_mode *mode)
 
bool drm_mode_is_420_also (const struct drm_display_info *display, const struct drm_display_mode *mode)
 
bool drm_mode_is_420 (const struct drm_display_info *display, const struct drm_display_mode *mode)
 
void drm_set_preferred_mode (struct drm_connector *connector, int hpref, int vpref)
 
struct drm_display_mode * drm_analog_tv_mode (struct drm_device *dev, enum drm_connector_tv_mode mode, unsigned long pixel_clock_hz, unsigned int hdisplay, unsigned int vdisplay, bool interlace)
 
struct drm_display_mode * drm_cvt_mode (struct drm_device *dev, int hdisplay, int vdisplay, int vrefresh, bool reduced, bool interlaced, bool margins)
 
struct drm_display_mode * drm_gtf_mode (struct drm_device *dev, int hdisplay, int vdisplay, int vrefresh, bool interlaced, int margins)
 
struct drm_display_mode * drm_gtf_mode_complex (struct drm_device *dev, int hdisplay, int vdisplay, int vrefresh, bool interlaced, int margins, int GTF_M, int GTF_2C, int GTF_K, int GTF_2J)
 
void drm_display_mode_from_videomode (const struct videomode *vm, struct drm_display_mode *dmode)
 
void drm_display_mode_to_videomode (const struct drm_display_mode *dmode, struct videomode *vm)
 
void drm_bus_flags_from_videomode (const struct videomode *vm, u32 *bus_flags)
 
void drm_mode_set_name (struct drm_display_mode *mode)
 
int drm_mode_vrefresh (const struct drm_display_mode *mode)
 
void drm_mode_get_hv_timing (const struct drm_display_mode *mode, int *hdisplay, int *vdisplay)
 
void drm_mode_set_crtcinfo (struct drm_display_mode *p, int adjust_flags)
 
void drm_mode_copy (struct drm_display_mode *dst, const struct drm_display_mode *src)
 
void drm_mode_init (struct drm_display_mode *dst, const struct drm_display_mode *src)
 
struct drm_display_mode * drm_mode_duplicate (struct drm_device *dev, const struct drm_display_mode *mode)
 
bool drm_mode_match (const struct drm_display_mode *mode1, const struct drm_display_mode *mode2, unsigned int match_flags)
 
bool drm_mode_equal (const struct drm_display_mode *mode1, const struct drm_display_mode *mode2)
 
bool drm_mode_equal_no_clocks (const struct drm_display_mode *mode1, const struct drm_display_mode *mode2)
 
bool drm_mode_equal_no_clocks_no_stereo (const struct drm_display_mode *mode1, const struct drm_display_mode *mode2)
 
enum drm_mode_status drm_mode_validate_driver (struct drm_device *dev, const struct drm_display_mode *mode)
 
enum drm_mode_status drm_mode_validate_size (const struct drm_display_mode *mode, int maxX, int maxY)
 
enum drm_mode_status drm_mode_validate_ycbcr420 (const struct drm_display_mode *mode, struct drm_connector *connector)
 
void drm_mode_prune_invalid (struct drm_device *dev, struct list_head *mode_list, bool verbose)
 
void drm_mode_sort (struct list_head *mode_list)
 
void drm_connector_list_update (struct drm_connector *connector)
 
bool drm_mode_parse_command_line_for_connector (const char *mode_option, const struct drm_connector *connector, struct drm_cmdline_mode *mode)
 
struct drm_display_mode * drm_mode_create_from_cmdline_mode (struct drm_device *dev, struct drm_cmdline_mode *cmd)
 

Macro Definition Documentation

◆ __DRM_MODE_INIT

#define __DRM_MODE_INIT (   pix,
  hd,
  vd,
  hd_mm,
  vd_mm 
)
Value:
.type = DRM_MODE_TYPE_DRIVER, .clock = (pix), \
.hdisplay = (hd), .hsync_start = (hd), .hsync_end = (hd), \
.htotal = (hd), .vdisplay = (vd), .vsync_start = (vd), \
.vsync_end = (vd), .vtotal = (vd), .width_mm = (hd_mm), \
.height_mm = (vd_mm)
#define DRM_MODE_TYPE_DRIVER
Definition drm_mode.h:41

◆ CRTC_INTERLACE_HALVE_V

#define CRTC_INTERLACE_HALVE_V   (1 << 0) /* halve V values for interlacing */

◆ CRTC_NO_DBLSCAN

#define CRTC_NO_DBLSCAN   (1 << 2) /* don't adjust doublescan */

◆ CRTC_NO_VSCAN

#define CRTC_NO_VSCAN   (1 << 3) /* don't adjust doublescan */

◆ CRTC_STEREO_DOUBLE

#define CRTC_STEREO_DOUBLE   (1 << 1) /* adjust timings for stereo modes */

◆ CRTC_STEREO_DOUBLE_ONLY

#define CRTC_STEREO_DOUBLE_ONLY   (CRTC_STEREO_DOUBLE | CRTC_NO_DBLSCAN | CRTC_NO_VSCAN)

◆ DRM_MODE

#define DRM_MODE (   nm,
  t,
  c,
  hd,
  hss,
  hse,
  ht,
  hsk,
  vd,
  vss,
  vse,
  vt,
  vs,
  f 
)
Value:
.name = nm, .status = 0, .type = (t), .clock = (c), \
.hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \
.htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \
.vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \
.vscan = (vs), .flags = (f)
XE_LIB clock_t clock(void)
Definition time.cpp:111
XETime t
Definition main.cpp:53
const char * f
Definition drm_print.h:205

◆ DRM_MODE_ARG

#define DRM_MODE_ARG (   m)
Value:
(m)->name, drm_mode_vrefresh(m), (m)->clock, \
(m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
(m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
(m)->type, (m)->flags
uint8_t flags
Definition virtio.h:0
struct drm_crtc struct drm_plane struct drm_plane const struct drm_crtc_funcs const char * name
Definition drm_crtc.h:1242
int drm_mode_vrefresh(const struct drm_display_mode *mode)

DRM_MODE_ARG - printf arguments for &struct drm_display_mode @m: display mode

◆ DRM_MODE_FLAG_3D_MAX

#define DRM_MODE_FLAG_3D_MAX   DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF

◆ DRM_MODE_FMT

#define DRM_MODE_FMT   "\"%s\": %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"

DRM_MODE_FMT - printf string for &struct drm_display_mode

◆ DRM_MODE_INIT

#define DRM_MODE_INIT (   hz,
  hd,
  vd,
  hd_mm,
  vd_mm 
)     __DRM_MODE_INIT((hd) * (vd) * (hz) / 1000 /* kHz */, hd, vd, hd_mm, vd_mm)

DRM_MODE_INIT - Initialize display mode @hz: Vertical refresh rate in Hertz @hd: Horizontal resolution, width @vd: Vertical resolution, height @hd_mm: Display width in millimeters @vd_mm: Display height in millimeters

This macro initializes a &drm_display_mode that contains information about refresh rate, resolution and physical size.

◆ DRM_MODE_MATCH_3D_FLAGS

#define DRM_MODE_MATCH_3D_FLAGS   (1 << 3)

◆ DRM_MODE_MATCH_ASPECT_RATIO

#define DRM_MODE_MATCH_ASPECT_RATIO   (1 << 4)

◆ DRM_MODE_MATCH_CLOCK

#define DRM_MODE_MATCH_CLOCK   (1 << 1)

◆ DRM_MODE_MATCH_FLAGS

#define DRM_MODE_MATCH_FLAGS   (1 << 2)

◆ DRM_MODE_MATCH_TIMINGS

#define DRM_MODE_MATCH_TIMINGS   (1 << 0)

◆ DRM_MODE_RES_MM

#define DRM_MODE_RES_MM (   res,
  dpi 
)     (((res) * 254ul) / ((dpi) * 10ul))

DRM_MODE_RES_MM - Calculates the display size from resolution and DPI @res: The resolution in pixel @dpi: The number of dots per inch

◆ DRM_SIMPLE_MODE

#define DRM_SIMPLE_MODE (   hd,
  vd,
  hd_mm,
  vd_mm 
)     __DRM_MODE_INIT(1 /* pass validation */, hd, vd, hd_mm, vd_mm)

DRM_SIMPLE_MODE - Simple display mode @hd: Horizontal resolution, width @vd: Vertical resolution, height @hd_mm: Display width in millimeters @vd_mm: Display height in millimeters

This macro initializes a &drm_display_mode that only contains info about resolution and physical size.

◆ obj_to_mode

#define obj_to_mode (   x)    container_of(x, struct drm_display_mode, base)

Enumeration Type Documentation

◆ drm_mode_status

enum drm_mode_status - hardware support status of a mode @MODE_OK: Mode OK @MODE_HSYNC: hsync out of range @MODE_VSYNC: vsync out of range @MODE_H_ILLEGAL: mode has illegal horizontal timings @MODE_V_ILLEGAL: mode has illegal vertical timings @MODE_BAD_WIDTH: requires an unsupported linepitch @MODE_NOMODE: no mode with a matching name @MODE_NO_INTERLACE: interlaced mode not supported @MODE_NO_DBLESCAN: doublescan mode not supported @MODE_NO_VSCAN: multiscan mode not supported @MODE_MEM: insufficient video memory @MODE_VIRTUAL_X: mode width too large for specified virtual size @MODE_VIRTUAL_Y: mode height too large for specified virtual size @MODE_MEM_VIRT: insufficient video memory given virtual size @MODE_NOCLOCK: no fixed clock available @MODE_CLOCK_HIGH: clock required is too high @MODE_CLOCK_LOW: clock required is too low @MODE_CLOCK_RANGE: clock/mode isn't in a ClockRange @MODE_BAD_HVALUE: horizontal timing was out of range @MODE_BAD_VVALUE: vertical timing was out of range @MODE_BAD_VSCAN: VScan value out of range @MODE_HSYNC_NARROW: horizontal sync too narrow @MODE_HSYNC_WIDE: horizontal sync too wide @MODE_HBLANK_NARROW: horizontal blanking too narrow @MODE_HBLANK_WIDE: horizontal blanking too wide @MODE_VSYNC_NARROW: vertical sync too narrow @MODE_VSYNC_WIDE: vertical sync too wide @MODE_VBLANK_NARROW: vertical blanking too narrow @MODE_VBLANK_WIDE: vertical blanking too wide @MODE_PANEL: exceeds panel dimensions @MODE_INTERLACE_WIDTH: width too large for interlaced mode @MODE_ONE_WIDTH: only one width is supported @MODE_ONE_HEIGHT: only one height is supported @MODE_ONE_SIZE: only one resolution is supported @MODE_NO_REDUCED: monitor doesn't accept reduced blanking @MODE_NO_STEREO: stereo modes not supported @MODE_NO_420: ycbcr 420 modes not supported @MODE_STALE: mode has become stale @MODE_BAD: unspecified reason @MODE_ERROR: error condition

This enum is used to filter out modes not supported by the driver/hardware combination.

Enumerator
MODE_OK 
MODE_HSYNC 
MODE_VSYNC 
MODE_H_ILLEGAL 
MODE_V_ILLEGAL 
MODE_BAD_WIDTH 
MODE_NOMODE 
MODE_NO_INTERLACE 
MODE_NO_DBLESCAN 
MODE_NO_VSCAN 
MODE_MEM 
MODE_VIRTUAL_X 
MODE_VIRTUAL_Y 
MODE_MEM_VIRT 
MODE_NOCLOCK 
MODE_CLOCK_HIGH 
MODE_CLOCK_LOW 
MODE_CLOCK_RANGE 
MODE_BAD_HVALUE 
MODE_BAD_VVALUE 
MODE_BAD_VSCAN 
MODE_HSYNC_NARROW 
MODE_HSYNC_WIDE 
MODE_HBLANK_NARROW 
MODE_HBLANK_WIDE 
MODE_VSYNC_NARROW 
MODE_VSYNC_WIDE 
MODE_VBLANK_NARROW 
MODE_VBLANK_WIDE 
MODE_PANEL 
MODE_INTERLACE_WIDTH 
MODE_ONE_WIDTH 
MODE_ONE_HEIGHT 
MODE_ONE_SIZE 
MODE_NO_REDUCED 
MODE_NO_STEREO 
MODE_NO_420 
MODE_STALE 
MODE_BAD 
MODE_ERROR 

Function Documentation

◆ drm_analog_tv_mode()

struct drm_display_mode * drm_analog_tv_mode ( struct drm_device *  dev,
enum drm_connector_tv_mode  mode,
unsigned long  pixel_clock_hz,
unsigned int  hdisplay,
unsigned int  vdisplay,
bool  interlace 
)

◆ drm_bus_flags_from_videomode()

void drm_bus_flags_from_videomode ( const struct videomode *  vm,
u32 *  bus_flags 
)

◆ drm_connector_list_update()

void drm_connector_list_update ( struct drm_connector *  connector)

◆ drm_cvt_mode()

struct drm_display_mode * drm_cvt_mode ( struct drm_device *  dev,
int  hdisplay,
int  vdisplay,
int  vrefresh,
bool  reduced,
bool  interlaced,
bool  margins 
)

◆ drm_display_mode_from_videomode()

void drm_display_mode_from_videomode ( const struct videomode *  vm,
struct drm_display_mode *  dmode 
)

◆ drm_display_mode_to_videomode()

void drm_display_mode_to_videomode ( const struct drm_display_mode *  dmode,
struct videomode *  vm 
)

◆ drm_gtf_mode()

struct drm_display_mode * drm_gtf_mode ( struct drm_device *  dev,
int  hdisplay,
int  vdisplay,
int  vrefresh,
bool  interlaced,
int  margins 
)

◆ drm_gtf_mode_complex()

struct drm_display_mode * drm_gtf_mode_complex ( struct drm_device *  dev,
int  hdisplay,
int  vdisplay,
int  vrefresh,
bool  interlaced,
int  margins,
int  GTF_M,
int  GTF_2C,
int  GTF_K,
int  GTF_2J 
)

◆ drm_mode_convert_to_umode()

void drm_mode_convert_to_umode ( struct drm_mode_modeinfo *  out,
const struct drm_display_mode *  in 
)

◆ drm_mode_convert_umode()

int drm_mode_convert_umode ( struct drm_device *  dev,
struct drm_display_mode *  out,
const struct drm_mode_modeinfo *  in 
)

◆ drm_mode_copy()

void drm_mode_copy ( struct drm_display_mode *  dst,
const struct drm_display_mode *  src 
)

◆ drm_mode_create()

struct drm_display_mode * drm_mode_create ( struct drm_device *  dev)

◆ drm_mode_create_from_cmdline_mode()

struct drm_display_mode * drm_mode_create_from_cmdline_mode ( struct drm_device *  dev,
struct drm_cmdline_mode *  cmd 
)

◆ drm_mode_debug_printmodeline()

void drm_mode_debug_printmodeline ( const struct drm_display_mode *  mode)

◆ drm_mode_destroy()

void drm_mode_destroy ( struct drm_device *  dev,
struct drm_display_mode *  mode 
)

◆ drm_mode_duplicate()

struct drm_display_mode * drm_mode_duplicate ( struct drm_device *  dev,
const struct drm_display_mode *  mode 
)

◆ drm_mode_equal()

bool drm_mode_equal ( const struct drm_display_mode *  mode1,
const struct drm_display_mode *  mode2 
)

◆ drm_mode_equal_no_clocks()

bool drm_mode_equal_no_clocks ( const struct drm_display_mode *  mode1,
const struct drm_display_mode *  mode2 
)

◆ drm_mode_equal_no_clocks_no_stereo()

bool drm_mode_equal_no_clocks_no_stereo ( const struct drm_display_mode *  mode1,
const struct drm_display_mode *  mode2 
)

◆ drm_mode_get_hv_timing()

void drm_mode_get_hv_timing ( const struct drm_display_mode *  mode,
int *  hdisplay,
int *  vdisplay 
)

◆ drm_mode_init()

void drm_mode_init ( struct drm_display_mode *  dst,
const struct drm_display_mode *  src 
)

◆ drm_mode_is_420()

bool drm_mode_is_420 ( const struct drm_display_info *  display,
const struct drm_display_mode *  mode 
)

◆ drm_mode_is_420_also()

bool drm_mode_is_420_also ( const struct drm_display_info *  display,
const struct drm_display_mode *  mode 
)

◆ drm_mode_is_420_only()

bool drm_mode_is_420_only ( const struct drm_display_info *  display,
const struct drm_display_mode *  mode 
)

◆ drm_mode_match()

bool drm_mode_match ( const struct drm_display_mode *  mode1,
const struct drm_display_mode *  mode2,
unsigned int  match_flags 
)

◆ drm_mode_parse_command_line_for_connector()

bool drm_mode_parse_command_line_for_connector ( const char *  mode_option,
const struct drm_connector *  connector,
struct drm_cmdline_mode *  mode 
)

◆ drm_mode_probed_add()

void drm_mode_probed_add ( struct drm_connector *  connector,
struct drm_display_mode *  mode 
)

◆ drm_mode_prune_invalid()

void drm_mode_prune_invalid ( struct drm_device *  dev,
struct list_head *  mode_list,
bool  verbose 
)

◆ drm_mode_set_crtcinfo()

void drm_mode_set_crtcinfo ( struct drm_display_mode *  p,
int  adjust_flags 
)

◆ drm_mode_set_name()

void drm_mode_set_name ( struct drm_display_mode *  mode)

◆ drm_mode_sort()

void drm_mode_sort ( struct list_head *  mode_list)

◆ drm_mode_validate_driver()

enum drm_mode_status drm_mode_validate_driver ( struct drm_device *  dev,
const struct drm_display_mode *  mode 
)

◆ drm_mode_validate_size()

enum drm_mode_status drm_mode_validate_size ( const struct drm_display_mode *  mode,
int  maxX,
int  maxY 
)

◆ drm_mode_validate_ycbcr420()

enum drm_mode_status drm_mode_validate_ycbcr420 ( const struct drm_display_mode *  mode,
struct drm_connector *  connector 
)

◆ drm_mode_vrefresh()

int drm_mode_vrefresh ( const struct drm_display_mode *  mode)

◆ drm_set_preferred_mode()

void drm_set_preferred_mode ( struct drm_connector *  connector,
int  hpref,
int  vpref 
)