summaryrefslogtreecommitdiff
path: root/linux-core/drm_drv.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux-core/drm_drv.c')
-rw-r--r--linux-core/drm_drv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index 069ecd3e..192b05cd 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -265,6 +265,8 @@ int drm_takedown(drm_device_t * dev)
if (drm_core_check_feature(dev, DRIVER_HAVE_DMA))
drm_dma_takedown(dev);
+ drm_pm_takedown(dev);
+
if (dev->lock.hw_lock) {
dev->sigdata.lock = dev->lock.hw_lock = NULL; /* SHM removed */
dev->lock.filp = NULL;
@@ -310,6 +312,8 @@ int drm_init(struct drm_driver *driver,
drm_mem_init();
+ drm_pm_init();
+
for (i = 0; (pciidlist[i].vendor != 0) && !drm_fb_loaded; i++) {
pid = &pciidlist[i];
@@ -439,6 +443,8 @@ static void __exit drm_cleanup(drm_device_t * dev)
if (dev->driver->postcleanup)
dev->driver->postcleanup(dev);
+ drm_pm_cleanup();
+
drm_put_head(&dev->primary);
if (drm_put_dev(dev))
DRM_ERROR("Cannot unload module\n");