mode: Make xfdrmMode.[c|h] not depend on drm_mode.h
parent
2d2f105f79
commit
eb78c53aa1
|
@ -76,7 +76,7 @@ void* drmAllocCpy(void *array, int count, int entry_size)
|
||||||
* A couple of free functions.
|
* A couple of free functions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void drmModeFreeModeInfo(struct drm_mode_modeinfo *ptr)
|
void drmModeFreeModeInfo(drmModeModeInfoPtr ptr)
|
||||||
{
|
{
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
return;
|
return;
|
||||||
|
@ -273,7 +273,7 @@ drmModeCrtcPtr drmModeGetCrtc(int fd, uint32_t crtcId)
|
||||||
|
|
||||||
int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
|
int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
|
||||||
uint32_t x, uint32_t y, uint32_t *connectors, int count,
|
uint32_t x, uint32_t y, uint32_t *connectors, int count,
|
||||||
struct drm_mode_modeinfo *mode)
|
drmModeModeInfoPtr mode)
|
||||||
{
|
{
|
||||||
struct drm_mode_crtc crtc;
|
struct drm_mode_crtc crtc;
|
||||||
|
|
||||||
|
@ -419,7 +419,7 @@ err_allocs:
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
int drmModeAttachMode(int fd, uint32_t connector_id, struct drm_mode_modeinfo *mode_info)
|
int drmModeAttachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info)
|
||||||
{
|
{
|
||||||
struct drm_mode_mode_cmd res;
|
struct drm_mode_mode_cmd res;
|
||||||
|
|
||||||
|
@ -429,7 +429,7 @@ int drmModeAttachMode(int fd, uint32_t connector_id, struct drm_mode_modeinfo *m
|
||||||
return drmIoctl(fd, DRM_IOCTL_MODE_ATTACHMODE, &res);
|
return drmIoctl(fd, DRM_IOCTL_MODE_ATTACHMODE, &res);
|
||||||
}
|
}
|
||||||
|
|
||||||
int drmModeDetachMode(int fd, uint32_t connector_id, struct drm_mode_modeinfo *mode_info)
|
int drmModeDetachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info)
|
||||||
{
|
{
|
||||||
struct drm_mode_mode_cmd res;
|
struct drm_mode_mode_cmd res;
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,99 @@
|
||||||
* buffer object interface. This object needs to be pinned.
|
* buffer object interface. This object needs to be pinned.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we pickup an old version of drm.h which doesn't include drm_mode.h
|
||||||
|
* we should redefine defines. This is so that builds doesn't breaks with
|
||||||
|
* new libdrm on old kernels.
|
||||||
|
*/
|
||||||
|
#ifndef _DRM_MODE_H
|
||||||
|
|
||||||
|
#define DRM_DISPLAY_INFO_LEN 32
|
||||||
|
#define DRM_CONNECTOR_NAME_LEN 32
|
||||||
|
#define DRM_DISPLAY_MODE_LEN 32
|
||||||
|
#define DRM_PROP_NAME_LEN 32
|
||||||
|
|
||||||
|
#define DRM_MODE_TYPE_BUILTIN (1<<0)
|
||||||
|
#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN)
|
||||||
|
#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN)
|
||||||
|
#define DRM_MODE_TYPE_PREFERRED (1<<3)
|
||||||
|
#define DRM_MODE_TYPE_DEFAULT (1<<4)
|
||||||
|
#define DRM_MODE_TYPE_USERDEF (1<<5)
|
||||||
|
#define DRM_MODE_TYPE_DRIVER (1<<6)
|
||||||
|
|
||||||
|
/* Video mode flags */
|
||||||
|
/* bit compatible with the xorg definitions. */
|
||||||
|
#define DRM_MODE_FLAG_PHSYNC (1<<0)
|
||||||
|
#define DRM_MODE_FLAG_NHSYNC (1<<1)
|
||||||
|
#define DRM_MODE_FLAG_PVSYNC (1<<2)
|
||||||
|
#define DRM_MODE_FLAG_NVSYNC (1<<3)
|
||||||
|
#define DRM_MODE_FLAG_INTERLACE (1<<4)
|
||||||
|
#define DRM_MODE_FLAG_DBLSCAN (1<<5)
|
||||||
|
#define DRM_MODE_FLAG_CSYNC (1<<6)
|
||||||
|
#define DRM_MODE_FLAG_PCSYNC (1<<7)
|
||||||
|
#define DRM_MODE_FLAG_NCSYNC (1<<8)
|
||||||
|
#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */
|
||||||
|
#define DRM_MODE_FLAG_BCAST (1<<10)
|
||||||
|
#define DRM_MODE_FLAG_PIXMUX (1<<11)
|
||||||
|
#define DRM_MODE_FLAG_DBLCLK (1<<12)
|
||||||
|
#define DRM_MODE_FLAG_CLKDIV2 (1<<13)
|
||||||
|
|
||||||
|
/* DPMS flags */
|
||||||
|
/* bit compatible with the xorg definitions. */
|
||||||
|
#define DRM_MODE_DPMS_ON 0
|
||||||
|
#define DRM_MODE_DPMS_STANDBY 1
|
||||||
|
#define DRM_MODE_DPMS_SUSPEND 2
|
||||||
|
#define DRM_MODE_DPMS_OFF 3
|
||||||
|
|
||||||
|
/* Scaling mode options */
|
||||||
|
#define DRM_MODE_SCALE_NON_GPU 0
|
||||||
|
#define DRM_MODE_SCALE_FULLSCREEN 1
|
||||||
|
#define DRM_MODE_SCALE_NO_SCALE 2
|
||||||
|
#define DRM_MODE_SCALE_ASPECT 3
|
||||||
|
|
||||||
|
/* Dithering mode options */
|
||||||
|
#define DRM_MODE_DITHERING_OFF 0
|
||||||
|
#define DRM_MODE_DITHERING_ON 1
|
||||||
|
|
||||||
|
#define DRM_MODE_ENCODER_NONE 0
|
||||||
|
#define DRM_MODE_ENCODER_DAC 1
|
||||||
|
#define DRM_MODE_ENCODER_TMDS 2
|
||||||
|
#define DRM_MODE_ENCODER_LVDS 3
|
||||||
|
#define DRM_MODE_ENCODER_TVDAC 4
|
||||||
|
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_Automatic 0
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_Unknown 0
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_DVID 3
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_DVIA 4
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_Composite 5
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_SVIDEO 6
|
||||||
|
#define DRM_MODE_SUBCONNECTOR_Component 8
|
||||||
|
|
||||||
|
#define DRM_MODE_CONNECTOR_Unknown 0
|
||||||
|
#define DRM_MODE_CONNECTOR_VGA 1
|
||||||
|
#define DRM_MODE_CONNECTOR_DVII 2
|
||||||
|
#define DRM_MODE_CONNECTOR_DVID 3
|
||||||
|
#define DRM_MODE_CONNECTOR_DVIA 4
|
||||||
|
#define DRM_MODE_CONNECTOR_Composite 5
|
||||||
|
#define DRM_MODE_CONNECTOR_SVIDEO 6
|
||||||
|
#define DRM_MODE_CONNECTOR_LVDS 7
|
||||||
|
#define DRM_MODE_CONNECTOR_Component 8
|
||||||
|
#define DRM_MODE_CONNECTOR_9PinDIN 9
|
||||||
|
#define DRM_MODE_CONNECTOR_DisplayPort 10
|
||||||
|
#define DRM_MODE_CONNECTOR_HDMIA 11
|
||||||
|
#define DRM_MODE_CONNECTOR_HDMIB 12
|
||||||
|
|
||||||
|
#define DRM_MODE_PROP_PENDING (1<<0)
|
||||||
|
#define DRM_MODE_PROP_RANGE (1<<1)
|
||||||
|
#define DRM_MODE_PROP_IMMUTABLE (1<<2)
|
||||||
|
#define DRM_MODE_PROP_ENUM (1<<3) /* enumerated type with text strings */
|
||||||
|
#define DRM_MODE_PROP_BLOB (1<<4)
|
||||||
|
|
||||||
|
#define DRM_MODE_CURSOR_BO (1<<0)
|
||||||
|
#define DRM_MODE_CURSOR_MOVE (1<<1)
|
||||||
|
|
||||||
|
#endif /* _DRM_MODE_H */
|
||||||
|
|
||||||
typedef struct _drmModeRes {
|
typedef struct _drmModeRes {
|
||||||
|
|
||||||
int count_fbs;
|
int count_fbs;
|
||||||
|
@ -70,7 +163,27 @@ typedef struct _drmModeRes {
|
||||||
uint32_t min_height, max_height;
|
uint32_t min_height, max_height;
|
||||||
} drmModeRes, *drmModeResPtr;
|
} drmModeRes, *drmModeResPtr;
|
||||||
|
|
||||||
typedef struct drm_mode_fb_cmd drmModeFB, *drmModeFBPtr;
|
typedef struct _drmModeModeInfo {
|
||||||
|
uint32_t clock;
|
||||||
|
uint16_t hdisplay, hsync_start, hsync_end, htotal, hskew;
|
||||||
|
uint16_t vdisplay, vsync_start, vsync_end, vtotal, vscan;
|
||||||
|
|
||||||
|
uint32_t vrefresh; /* vertical refresh * 1000 */
|
||||||
|
|
||||||
|
uint32_t flags;
|
||||||
|
uint32_t type;
|
||||||
|
char name[DRM_DISPLAY_MODE_LEN];
|
||||||
|
} drmModeModeInfo, *drmModeModeInfoPtr;
|
||||||
|
|
||||||
|
typedef struct _drmModeFB {
|
||||||
|
uint32_t fb_id;
|
||||||
|
uint32_t width, height;
|
||||||
|
uint32_t pitch;
|
||||||
|
uint32_t bpp;
|
||||||
|
uint32_t depth;
|
||||||
|
/* driver specific handle */
|
||||||
|
uint32_t handle;
|
||||||
|
} drmModeFB, *drmModeFBPtr;
|
||||||
|
|
||||||
typedef struct _drmModePropertyBlob {
|
typedef struct _drmModePropertyBlob {
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
|
@ -97,7 +210,7 @@ typedef struct _drmModeCrtc {
|
||||||
uint32_t x, y; /**< Position on the framebuffer */
|
uint32_t x, y; /**< Position on the framebuffer */
|
||||||
uint32_t width, height;
|
uint32_t width, height;
|
||||||
int mode_valid;
|
int mode_valid;
|
||||||
struct drm_mode_modeinfo mode;
|
drmModeModeInfo mode;
|
||||||
|
|
||||||
int gamma_size; /**< Number of gamma stops */
|
int gamma_size; /**< Number of gamma stops */
|
||||||
|
|
||||||
|
@ -136,7 +249,7 @@ typedef struct _drmModeConnector {
|
||||||
drmModeSubPixel subpixel;
|
drmModeSubPixel subpixel;
|
||||||
|
|
||||||
int count_modes;
|
int count_modes;
|
||||||
struct drm_mode_modeinfo *modes;
|
drmModeModeInfoPtr modes;
|
||||||
|
|
||||||
int count_props;
|
int count_props;
|
||||||
uint32_t *props; /**< List of property ids */
|
uint32_t *props; /**< List of property ids */
|
||||||
|
@ -148,7 +261,7 @@ typedef struct _drmModeConnector {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern void drmModeFreeModeInfo( struct drm_mode_modeinfo *ptr );
|
extern void drmModeFreeModeInfo( drmModeModeInfoPtr ptr );
|
||||||
extern void drmModeFreeResources( drmModeResPtr ptr );
|
extern void drmModeFreeResources( drmModeResPtr ptr );
|
||||||
extern void drmModeFreeFB( drmModeFBPtr ptr );
|
extern void drmModeFreeFB( drmModeFBPtr ptr );
|
||||||
extern void drmModeFreeCrtc( drmModeCrtcPtr ptr );
|
extern void drmModeFreeCrtc( drmModeCrtcPtr ptr );
|
||||||
|
@ -194,7 +307,7 @@ extern drmModeCrtcPtr drmModeGetCrtc(int fd, uint32_t crtcId);
|
||||||
*/
|
*/
|
||||||
int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
|
int drmModeSetCrtc(int fd, uint32_t crtcId, uint32_t bufferId,
|
||||||
uint32_t x, uint32_t y, uint32_t *connectors, int count,
|
uint32_t x, uint32_t y, uint32_t *connectors, int count,
|
||||||
struct drm_mode_modeinfo *mode);
|
drmModeModeInfoPtr mode);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Cursor functions
|
* Cursor functions
|
||||||
|
@ -228,13 +341,13 @@ extern drmModeConnectorPtr drmModeGetConnector(int fd,
|
||||||
/**
|
/**
|
||||||
* Attaches the given mode to an connector.
|
* Attaches the given mode to an connector.
|
||||||
*/
|
*/
|
||||||
extern int drmModeAttachMode(int fd, uint32_t connectorId, struct drm_mode_modeinfo *mode_info);
|
extern int drmModeAttachMode(int fd, uint32_t connectorId, drmModeModeInfoPtr mode_info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detaches a mode from the connector
|
* Detaches a mode from the connector
|
||||||
* must be unused, by the given mode.
|
* must be unused, by the given mode.
|
||||||
*/
|
*/
|
||||||
extern int drmModeDetachMode(int fd, uint32_t connectorId, struct drm_mode_modeinfo *mode_info);
|
extern int drmModeDetachMode(int fd, uint32_t connectorId, drmModeModeInfoPtr mode_info);
|
||||||
|
|
||||||
extern drmModePropertyPtr drmModeGetProperty(int fd, uint32_t propertyId);
|
extern drmModePropertyPtr drmModeGetProperty(int fd, uint32_t propertyId);
|
||||||
extern void drmModeFreeProperty(drmModePropertyPtr ptr);
|
extern void drmModeFreeProperty(drmModePropertyPtr ptr);
|
||||||
|
|
Loading…
Reference in New Issue