summaryrefslogtreecommitdiff
path: root/linux-core/drm_stub.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2006-10-02 14:03:15 +0200
committerThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2006-10-02 14:03:15 +0200
commita31046b8734f12ed22127ef5f6ca4fc33df72ec1 (patch)
tree53e452177b9f263fe1c5d52e4522e5448348926b /linux-core/drm_stub.c
parentd85b99435f0ea7a17b3b7be31b53c00632c07177 (diff)
Add a buffer object manager for TTM maps.
Diffstat (limited to 'linux-core/drm_stub.c')
-rw-r--r--linux-core/drm_stub.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c
index 5d28284c..1b406fef 100644
--- a/linux-core/drm_stub.c
+++ b/linux-core/drm_stub.c
@@ -83,14 +83,21 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,
if (dev->maplist == NULL)
return -ENOMEM;
INIT_LIST_HEAD(&dev->maplist->head);
- if (drm_ht_create(&dev->map_hash, 12)) {
+ if (drm_ht_create(&dev->map_hash, DRM_MAP_HASH_ORDER)) {
drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS);
return -ENOMEM;
}
+ if (drm_mm_init(&dev->offset_manager, DRM_FILE_PAGE_OFFSET_START,
+ DRM_FILE_PAGE_OFFSET_SIZE)) {
+ drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS);
+ drm_ht_remove(&dev->map_hash);
+ return -ENOMEM;
+ }
- if (drm_ht_create(&dev->object_hash, 12)) {
+ if (drm_ht_create(&dev->object_hash, DRM_OBJECT_HASH_ORDER)) {
drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS);
drm_ht_remove(&dev->map_hash);
+ drm_mm_takedown(&dev->offset_manager);
return -ENOMEM;
}