drm_mode.h revision 3e48613b482a8ca01ea5719e9cc342a9d4b28db0
12b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* 22b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Copyright (c) 2007 Dave Airlie <airlied@linux.ie> 32b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com> 42b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Copyright (c) 2008 Red Hat Inc. 52b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA 62b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Copyright (c) 2007-2008 Intel Corporation 72b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * 82b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Permission is hereby granted, free of charge, to any person obtaining a 92b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * copy of this software and associated documentation files (the "Software"), 102b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * to deal in the Software without restriction, including without limitation 112b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 122b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * and/or sell copies of the Software, and to permit persons to whom the 132b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * Software is furnished to do so, subject to the following conditions: 142b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * 152b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * The above copyright notice and this permission notice shall be included in 162b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * all copies or substantial portions of the Software. 172b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * 182b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 192b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 202b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 212b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 222b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 232b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 242b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * IN THE SOFTWARE. 252b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg */ 262b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 272b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#ifndef _DRM_MODE_H 282b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define _DRM_MODE_H 292b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 302b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_DISPLAY_INFO_LEN 32 312b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_CONNECTOR_NAME_LEN 32 322b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_DISPLAY_MODE_LEN 32 332b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_PROP_NAME_LEN 32 342b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 352b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_BUILTIN (1<<0) 362b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN) 372b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN) 382b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_PREFERRED (1<<3) 392b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_DEFAULT (1<<4) 402b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_USERDEF (1<<5) 412b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_TYPE_DRIVER (1<<6) 422b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 432b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* Video mode flags */ 442b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* bit compatible with the xorg definitions. */ 452b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_PHSYNC (1<<0) 462b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_NHSYNC (1<<1) 472b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_PVSYNC (1<<2) 482b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_NVSYNC (1<<3) 492b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_INTERLACE (1<<4) 502b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_DBLSCAN (1<<5) 512b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_CSYNC (1<<6) 522b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_PCSYNC (1<<7) 532b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_NCSYNC (1<<8) 542b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ 552b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_BCAST (1<<10) 562b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_PIXMUX (1<<11) 572b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_DBLCLK (1<<12) 582b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_FLAG_CLKDIV2 (1<<13) 592b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 602b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* DPMS flags */ 612b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* bit compatible with the xorg definitions. */ 622b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_DPMS_ON 0 632b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_DPMS_STANDBY 1 642b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_DPMS_SUSPEND 2 652b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_DPMS_OFF 3 662b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 672b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* Scaling mode options */ 682b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SCALE_NONE 0 /* Unmodified timing (display or 692b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg software can still scale) */ 702b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SCALE_FULLSCREEN 1 /* Full screen, ignore aspect */ 712b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SCALE_CENTER 2 /* Centered, no scaling */ 722b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SCALE_ASPECT 3 /* Full screen, preserve aspect */ 732b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 742b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* Dithering mode options */ 752b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_DITHERING_OFF 0 762b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_DITHERING_ON 1 772b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 782b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_modeinfo { 792b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 clock; 802b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u16 hdisplay, hsync_start, hsync_end, htotal, hskew; 812b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u16 vdisplay, vsync_start, vsync_end, vtotal, vscan; 822b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 832b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 vrefresh; /* vertical refresh * 1000 */ 842b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 852b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 flags; 862b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 type; 872b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg char name[DRM_DISPLAY_MODE_LEN]; 882b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 892b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 902b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_card_res { 912b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 fb_id_ptr; 922b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 crtc_id_ptr; 932b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 connector_id_ptr; 942b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 encoder_id_ptr; 952b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_fbs; 962b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_crtcs; 972b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_connectors; 982b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_encoders; 992b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 min_width, max_width; 1002b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 min_height, max_height; 1012b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 1022b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1032b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_crtc { 1042b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 set_connectors_ptr; 1052b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_connectors; 1062b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1072b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 crtc_id; /**< Id */ 1082b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 fb_id; /**< Id of framebuffer */ 1092b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1102b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 x, y; /**< Position on the frameuffer */ 1112b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1122b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 gamma_size; 1132b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 mode_valid; 1142b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg struct drm_mode_modeinfo mode; 1152b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 1162b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1172b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_ENCODER_NONE 0 1182b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_ENCODER_DAC 1 1192b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_ENCODER_TMDS 2 1202b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_ENCODER_LVDS 3 1212b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_ENCODER_TVDAC 4 1222b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1232b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_get_encoder { 1242b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 encoder_id; 1252b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 encoder_type; 1262b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1272b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 crtc_id; /**< Id of crtc */ 1282b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1292b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 possible_crtcs; 1302b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 possible_clones; 1312b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 1322b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1332b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* This is for connectors with multiple signal types. */ 1342b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */ 1352b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_Automatic 0 1362b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_Unknown 0 1372b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_DVID 3 1382b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_DVIA 4 1392b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_Composite 5 1402b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_SVIDEO 6 1412b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_Component 8 1422b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_SUBCONNECTOR_SCART 9 1432b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1442b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_Unknown 0 1452b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_VGA 1 1462b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_DVII 2 1472b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_DVID 3 1482b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_DVIA 4 1492b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_Composite 5 1502b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_SVIDEO 6 1512b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_LVDS 7 1522b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_Component 8 1532b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_9PinDIN 9 1542b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_DisplayPort 10 1552b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_HDMIA 11 1562b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_HDMIB 12 1572b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CONNECTOR_TV 13 1582b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1592b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_get_connector { 1602b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1612b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 encoders_ptr; 1622b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 modes_ptr; 1632b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 props_ptr; 1642b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 prop_values_ptr; 1652b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1662b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_modes; 1672b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_props; 1682b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_encoders; 1692b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1702b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 encoder_id; /**< Current Encoder */ 1712b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 connector_id; /**< Id */ 1722b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 connector_type; 1732b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 connector_type_id; 1742b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1752b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 connection; 1762b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 mm_width, mm_height; /**< HxW in millimeters */ 1772b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 subpixel; 1782b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 1792b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1802b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_PROP_PENDING (1<<0) 1812b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_PROP_RANGE (1<<1) 1822b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_PROP_IMMUTABLE (1<<2) 1832b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_PROP_ENUM (1<<3) /* enumerated type with text strings */ 1842b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_PROP_BLOB (1<<4) 1852b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1862b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_property_enum { 1872b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 value; 1882b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg char name[DRM_PROP_NAME_LEN]; 1892b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 1902b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1912b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_get_property { 1922b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 values_ptr; /* values and blob lengths */ 1932b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 enum_blob_ptr; /* enum and blob id ptrs */ 1942b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1952b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 prop_id; 1962b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 flags; 1972b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg char name[DRM_PROP_NAME_LEN]; 1982b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 1992b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_values; 2002b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 count_enum_blobs; 2012b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2022b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2032b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_connector_set_property { 2042b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 value; 2052b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 prop_id; 2062b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 connector_id; 2072b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2082b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2092b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_get_blob { 2102b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 blob_id; 2112b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 length; 2122b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 data; 2132b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2142b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2152b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_fb_cmd { 2162b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 fb_id; 2172b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 width, height; 2182b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 pitch; 2192b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 bpp; 2202b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 depth; 2212b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg /* driver specific handle */ 2222b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 handle; 2232b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2242b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2253e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantzstruct drm_mode_fb_dirty_cmd { 2263e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz __u32 fb_id; 2273e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz __u32 flags; 2283e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz __u32 num_clips; 2293e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz __u32 reserved1; 2303e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz __u64 reserved2; 2313e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz __u64 clips_ptr; 2323e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz}; 2333e48613b482a8ca01ea5719e9cc342a9d4b28db0Jakob Bornecrantz 2342b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_mode_cmd { 2352b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 connector_id; 2362b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg struct drm_mode_modeinfo mode; 2372b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2382b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2392b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CURSOR_BO (1<<0) 2402b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#define DRM_MODE_CURSOR_MOVE (1<<1) 2412b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2422b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg/* 2432b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * depending on the value in flags diffrent members are used. 2442b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * 2452b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * CURSOR_BO uses 2462b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * crtc 2472b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * width 2482b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * height 2492b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * handle - if 0 turns the cursor of 2502b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * 2512b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * CURSOR_MOVE uses 2522b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * crtc 2532b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * x 2542b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg * y 2552b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg */ 2562b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_cursor { 2572b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 flags; 2582b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 crtc_id; 2592b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __s32 x; 2602b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __s32 y; 2612b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 width; 2622b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 height; 2632b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg /* driver specific handle */ 2642b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 handle; 2652b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2662b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2672b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsbergstruct drm_mode_crtc_lut { 2682b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 crtc_id; 2692b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u32 gamma_size; 2702b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2712b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg /* pointers to arrays */ 2722b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 red; 2732b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 green; 2742b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg __u64 blue; 2752b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg}; 2762b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg 2772b42af9a2fd8e35e920d61a212ce6b9c85354289Kristian Høgsberg#endif 278