diff options
Diffstat (limited to 'linux-core/drm_drv.c')
-rw-r--r-- | linux-core/drm_drv.c | 6 |
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"); |