summaryrefslogtreecommitdiff
path: root/linux-core/drmP.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux-core/drmP.h')
-rw-r--r--linux-core/drmP.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index 24d8a23b..d7a19a2a 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -80,6 +80,7 @@
#endif
#include <linux/poll.h>
#include <asm/pgalloc.h>
+#include <linux/sysdev.h>
#include "drm.h"
#define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
@@ -541,6 +542,7 @@ struct drm_driver {
int new);
int (*kernel_context_switch_unlock) (struct drm_device * dev);
int (*vblank_wait) (struct drm_device * dev, unsigned int *sequence);
+ int (*power) (struct drm_device * dev, unsigned int state);
/**
* Called by \c drm_device_is_agp. Typically used to determine if a
@@ -720,6 +722,9 @@ typedef struct drm_device {
struct drm_driver *driver;
drm_local_map_t *agp_buffer_map;
drm_head_t primary; /**< primary screen head */
+
+ struct sys_device sysdev; /**< Power Management device structure */
+ int sysdev_registered; /**< Whether the device has been registered */
} drm_device_t;
static __inline__ int drm_core_check_feature(struct drm_device *dev,
@@ -896,6 +901,12 @@ extern unsigned long drm_get_resource_start(drm_device_t *dev,
extern unsigned long drm_get_resource_len(drm_device_t *dev,
unsigned int resource);
+ /* Power Management (drm_pm.h) */
+extern int drm_pm_setup(drm_device_t *dev);
+extern void drm_pm_takedown(drm_device_t *dev);
+extern int drm_pm_init(void);
+extern void drm_pm_cleanup(void);
+
/* DMA support (drm_dma.h) */
extern int drm_dma_setup(drm_device_t * dev);
extern void drm_dma_takedown(drm_device_t * dev);