diff options
author | David Airlie <airlied@asimov.stargames.com.au> | 2007-04-13 16:43:55 +1000 |
---|---|---|
committer | Dave Airlie <airlied@airlied2.(none)> | 2007-04-18 10:39:27 +1000 |
commit | 7c9e19ba55dcdf212845253648194115639fe7b6 (patch) | |
tree | bca096bc3989c7192fc827122aa136c707d16acd /linux-core | |
parent | 73b031df613b58c4462a65818b88200bed0a97de (diff) |
clean up ring buffer and TTM in i915_driver_unload
I've commented out the framebuffer for now
Diffstat (limited to 'linux-core')
-rw-r--r-- | linux-core/drm_drv.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c index 7bb8c659..5aa7137b 100644 --- a/linux-core/drm_drv.c +++ b/linux-core/drm_drv.c @@ -375,9 +375,6 @@ static void drm_cleanup(drm_device_t * dev) drm_lastclose(dev); drm_fence_manager_takedown(dev); - if (!drm_fb_loaded) - pci_disable_device(dev->pdev); - drm_ctxbitmap_cleanup(dev); if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && dev->agp @@ -389,15 +386,16 @@ static void drm_cleanup(drm_device_t * dev) DRM_DEBUG("mtrr_del=%d\n", retval); } - // drm_bo_driver_finish(dev); - + if (dev->driver->unload) + dev->driver->unload(dev); + if (drm_core_has_AGP(dev) && dev->agp) { drm_free(dev->agp, sizeof(*dev->agp), DRM_MEM_AGPLISTS); dev->agp = NULL; } - if (dev->driver->unload) - dev->driver->unload(dev); + + // drm_bo_driver_finish(dev); if (dev->maplist) { drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS); dev->maplist = NULL; @@ -406,6 +404,9 @@ static void drm_cleanup(drm_device_t * dev) drm_ht_remove(&dev->object_hash); } + if (!drm_fb_loaded) + pci_disable_device(dev->pdev); + drm_put_head(&dev->primary); if (drm_put_dev(dev)) DRM_ERROR("Cannot unload module\n"); |