drm_gem.c: Start using some drm_mm functions
authorFrançois Tigeot <ftigeot@wolfpond.org>
Sun, 8 Mar 2015 08:35:53 +0000 (09:35 +0100)
committerFrançois Tigeot <ftigeot@wolfpond.org>
Sun, 8 Mar 2015 13:12:06 +0000 (14:12 +0100)
sys/dev/drm/drm_gem.c
sys/dev/drm/include/drm/drmP.h

index ed2275b..4d1c533 100644 (file)
@@ -139,6 +139,8 @@ drm_gem_init(struct drm_device *dev)
        }
 
        mm->idxunr = new_unrhdr(0, DRM_GEM_MAX_IDX, NULL);
+       drm_mm_init(&mm->offset_manager, DRM_FILE_PAGE_OFFSET_START,
+                   DRM_FILE_PAGE_OFFSET_SIZE);
        return 0;
 }
 
@@ -147,6 +149,7 @@ drm_gem_destroy(struct drm_device *dev)
 {
        struct drm_gem_mm *mm = dev->mm_private;
 
+       drm_mm_takedown(&mm->offset_manager);
        drm_ht_remove(&mm->offset_hash);
        delete_unrhdr(mm->idxunr);
        kfree(mm);
index b7b5410..15ed524 100644 (file)
@@ -641,6 +641,7 @@ struct drm_ati_pcigart_info {
  * GEM specific mm private for tracking GEM objects
  */
 struct drm_gem_mm {
+       struct drm_mm offset_manager;   /**< Offset mgmt for buffer objects */
        struct drm_open_hash offset_hash; /**< User token hash table for maps */
        struct unrhdr *idxunr;
 };