aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drmP.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/drm/drmP.h')
-rw-r--r--include/drm/drmP.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index ae42a6a5c24e..7802c80f2b23 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -105,6 +105,7 @@ struct drm_device;
105#define DRIVER_FB_DMA 0x400 105#define DRIVER_FB_DMA 0x400
106#define DRIVER_IRQ_VBL2 0x800 106#define DRIVER_IRQ_VBL2 0x800
107#define DRIVER_GEM 0x1000 107#define DRIVER_GEM 0x1000
108#define DRIVER_MODESET 0x2000
108 109
109/***********************************************************************/ 110/***********************************************************************/
110/** \name Begin the DRM... */ 111/** \name Begin the DRM... */
@@ -276,6 +277,7 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
276#define DRM_AUTH 0x1 277#define DRM_AUTH 0x1
277#define DRM_MASTER 0x2 278#define DRM_MASTER 0x2
278#define DRM_ROOT_ONLY 0x4 279#define DRM_ROOT_ONLY 0x4
280#define DRM_CONTROL_ALLOW 0x8
279 281
280struct drm_ioctl_desc { 282struct drm_ioctl_desc {
281 unsigned int cmd; 283 unsigned int cmd;
@@ -398,6 +400,7 @@ struct drm_file {
398 int is_master; /* this file private is a master for a minor */ 400 int is_master; /* this file private is a master for a minor */
399 struct drm_master *master; /* master this node is currently associated with 401 struct drm_master *master; /* master this node is currently associated with
400 N.B. not always minor->master */ 402 N.B. not always minor->master */
403 struct list_head fbs;
401}; 404};
402 405
403/** Wait queue */ 406/** Wait queue */
@@ -629,6 +632,8 @@ struct drm_gem_object {
629 void *driver_private; 632 void *driver_private;
630}; 633};
631 634
635#include "drm_crtc.h"
636
632/* per-master structure */ 637/* per-master structure */
633struct drm_master { 638struct drm_master {
634 639
@@ -792,6 +797,8 @@ struct drm_driver {
792 797
793#define DRM_MINOR_UNASSIGNED 0 798#define DRM_MINOR_UNASSIGNED 0
794#define DRM_MINOR_LEGACY 1 799#define DRM_MINOR_LEGACY 1
800#define DRM_MINOR_CONTROL 2
801#define DRM_MINOR_RENDER 3
795 802
796/** 803/**
797 * DRM minor structure. This structure represents a drm minor number. 804 * DRM minor structure. This structure represents a drm minor number.
@@ -805,6 +812,7 @@ struct drm_minor {
805 struct proc_dir_entry *dev_root; /**< proc directory entry */ 812 struct proc_dir_entry *dev_root; /**< proc directory entry */
806 struct drm_master *master; /* currently active master for this node */ 813 struct drm_master *master; /* currently active master for this node */
807 struct list_head master_list; 814 struct list_head master_list;
815 struct drm_mode_group mode_group;
808}; 816};
809 817
810/** 818/**
@@ -855,6 +863,7 @@ struct drm_device {
855 struct idr ctx_idr; 863 struct idr ctx_idr;
856 864
857 struct list_head vmalist; /**< List of vmas (for debugging) */ 865 struct list_head vmalist; /**< List of vmas (for debugging) */
866
858 /*@} */ 867 /*@} */
859 868
860 /** \name DMA queues (contexts) */ 869 /** \name DMA queues (contexts) */
@@ -933,6 +942,7 @@ struct drm_device {
933 struct drm_driver *driver; 942 struct drm_driver *driver;
934 drm_local_map_t *agp_buffer_map; 943 drm_local_map_t *agp_buffer_map;
935 unsigned int agp_buffer_token; 944 unsigned int agp_buffer_token;
945 struct drm_minor *control; /**< Control node for card */
936 struct drm_minor *primary; /**< render type primary screen head */ 946 struct drm_minor *primary; /**< render type primary screen head */
937 947
938 /** \name Drawable information */ 948 /** \name Drawable information */
@@ -941,6 +951,8 @@ struct drm_device {
941 struct idr drw_idr; 951 struct idr drw_idr;
942 /*@} */ 952 /*@} */
943 953
954 struct drm_mode_config mode_config; /**< Current mode config */
955
944 /** \name GEM information */ 956 /** \name GEM information */
945 /*@{ */ 957 /*@{ */
946 spinlock_t object_name_lock; 958 spinlock_t object_name_lock;
@@ -1201,6 +1213,8 @@ extern int drm_vblank_get(struct drm_device *dev, int crtc);
1201extern void drm_vblank_put(struct drm_device *dev, int crtc); 1213extern void drm_vblank_put(struct drm_device *dev, int crtc);
1202extern void drm_vblank_cleanup(struct drm_device *dev); 1214extern void drm_vblank_cleanup(struct drm_device *dev);
1203/* Modesetting support */ 1215/* Modesetting support */
1216extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc);
1217extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc);
1204extern int drm_modeset_ctl(struct drm_device *dev, void *data, 1218extern int drm_modeset_ctl(struct drm_device *dev, void *data,
1205 struct drm_file *file_priv); 1219 struct drm_file *file_priv);
1206 1220
@@ -1286,7 +1300,11 @@ struct drm_sysfs_class;
1286extern struct class *drm_sysfs_create(struct module *owner, char *name); 1300extern struct class *drm_sysfs_create(struct module *owner, char *name);
1287extern void drm_sysfs_destroy(void); 1301extern void drm_sysfs_destroy(void);
1288extern int drm_sysfs_device_add(struct drm_minor *minor); 1302extern int drm_sysfs_device_add(struct drm_minor *minor);
1303extern void drm_sysfs_hotplug_event(struct drm_device *dev);
1289extern void drm_sysfs_device_remove(struct drm_minor *minor); 1304extern void drm_sysfs_device_remove(struct drm_minor *minor);
1305extern char *drm_get_connector_status_name(enum drm_connector_status status);
1306extern int drm_sysfs_connector_add(struct drm_connector *connector);
1307extern void drm_sysfs_connector_remove(struct drm_connector *connector);
1290 1308
1291/* 1309/*
1292 * Basic memory manager support (drm_mm.c) 1310 * Basic memory manager support (drm_mm.c)