Commit 98399abd authored by Dave Airlie's avatar Dave Airlie
parent 5969793f
...@@ -1527,25 +1527,6 @@ void ttm_mem_type_manager_init(struct ttm_bo_device *bdev, ...@@ -1527,25 +1527,6 @@ void ttm_mem_type_manager_init(struct ttm_bo_device *bdev,
} }
EXPORT_SYMBOL(ttm_mem_type_manager_init); EXPORT_SYMBOL(ttm_mem_type_manager_init);
int ttm_bo_init_mm(struct ttm_bo_device *bdev, unsigned type,
unsigned long p_size)
{
int ret;
struct ttm_mem_type_manager *man;
BUG_ON(type >= TTM_NUM_MEM_TYPES);
ttm_mem_type_manager_init(bdev, &bdev->man[type], p_size);
if (type != TTM_PL_SYSTEM) {
ret = (*man->func->init)(man, p_size);
if (ret)
return ret;
}
ttm_mem_type_manager_set_used(man, true);
return 0;
}
EXPORT_SYMBOL(ttm_bo_init_mm);
static void ttm_bo_global_kobj_release(struct kobject *kobj) static void ttm_bo_global_kobj_release(struct kobject *kobj)
{ {
struct ttm_bo_global *glob = struct ttm_bo_global *glob =
......
...@@ -104,11 +104,18 @@ static void ttm_bo_man_put_node(struct ttm_mem_type_manager *man, ...@@ -104,11 +104,18 @@ static void ttm_bo_man_put_node(struct ttm_mem_type_manager *man,
} }
} }
static int ttm_bo_man_init_private(struct ttm_mem_type_manager *man, static const struct ttm_mem_type_manager_func ttm_bo_manager_func;
unsigned long p_size)
int ttm_range_man_init(struct ttm_bo_device *bdev,
struct ttm_mem_type_manager *man,
unsigned long p_size)
{ {
struct ttm_range_manager *rman; struct ttm_range_manager *rman;
man->func = &ttm_bo_manager_func;
ttm_mem_type_manager_init(bdev, man, p_size);
rman = kzalloc(sizeof(*rman), GFP_KERNEL); rman = kzalloc(sizeof(*rman), GFP_KERNEL);
if (!rman) if (!rman)
return -ENOMEM; return -ENOMEM;
...@@ -116,21 +123,7 @@ static int ttm_bo_man_init_private(struct ttm_mem_type_manager *man, ...@@ -116,21 +123,7 @@ static int ttm_bo_man_init_private(struct ttm_mem_type_manager *man,
drm_mm_init(&rman->mm, 0, p_size); drm_mm_init(&rman->mm, 0, p_size);
spin_lock_init(&rman->lock); spin_lock_init(&rman->lock);
man->priv = rman; man->priv = rman;
return 0;
}
int ttm_range_man_init(struct ttm_bo_device *bdev,
struct ttm_mem_type_manager *man,
unsigned long p_size)
{
int ret;
man->func = &ttm_bo_manager_func;
ttm_mem_type_manager_init(bdev, man, p_size);
ret = ttm_bo_man_init_private(man, p_size);
if (ret)
return ret;
ttm_mem_type_manager_set_used(man, true); ttm_mem_type_manager_set_used(man, true);
return 0; return 0;
} }
...@@ -163,11 +156,9 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man, ...@@ -163,11 +156,9 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
spin_unlock(&rman->lock); spin_unlock(&rman->lock);
} }
const struct ttm_mem_type_manager_func ttm_bo_manager_func = { static const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
.init = ttm_bo_man_init_private,
.takedown = ttm_bo_man_takedown, .takedown = ttm_bo_man_takedown,
.get_node = ttm_bo_man_get_node, .get_node = ttm_bo_man_get_node,
.put_node = ttm_bo_man_put_node, .put_node = ttm_bo_man_put_node,
.debug = ttm_bo_man_debug .debug = ttm_bo_man_debug
}; };
EXPORT_SYMBOL(ttm_bo_manager_func);
...@@ -546,24 +546,6 @@ void ttm_mem_type_manager_init(struct ttm_bo_device *bdev, ...@@ -546,24 +546,6 @@ void ttm_mem_type_manager_init(struct ttm_bo_device *bdev,
struct ttm_mem_type_manager *man, struct ttm_mem_type_manager *man,
unsigned long p_size); unsigned long p_size);
/**
* ttm_bo_init_mm
*
* @bdev: Pointer to a ttm_bo_device struct.
* @mem_type: The memory type.
* @p_size: size managed area in pages.
*
* Initialize a manager for a given memory type.
* Note: if part of driver firstopen, it must be protected from a
* potentially racing lastclose.
* Returns:
* -EINVAL: invalid size or memory type.
* -ENOMEM: Not enough memory.
* May also return driver-specified errors.
*/
int ttm_bo_init_mm(struct ttm_bo_device *bdev, unsigned type,
unsigned long p_size);
/** /**
* ttm_bo_clean_mm * ttm_bo_clean_mm
* *
......
...@@ -48,19 +48,6 @@ ...@@ -48,19 +48,6 @@
struct ttm_mem_type_manager; struct ttm_mem_type_manager;
struct ttm_mem_type_manager_func { struct ttm_mem_type_manager_func {
/**
* struct ttm_mem_type_manager member init
*
* @man: Pointer to a memory type manager.
* @p_size: Implementation dependent, but typically the size of the
* range to be managed in pages.
*
* Called to initialize a private range manager. The function is
* expected to initialize the man::priv member.
* Returns 0 on success, negative error code on failure.
*/
int (*init)(struct ttm_mem_type_manager *man, unsigned long p_size);
/** /**
* struct ttm_mem_type_manager member takedown * struct ttm_mem_type_manager member takedown
* *
...@@ -833,8 +820,6 @@ int ttm_range_man_init(struct ttm_bo_device *bdev, ...@@ -833,8 +820,6 @@ int ttm_range_man_init(struct ttm_bo_device *bdev,
struct ttm_mem_type_manager *man, struct ttm_mem_type_manager *man,
unsigned long p_size); unsigned long p_size);
extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
/** /**
* ttm_mem_type_manager_debug * ttm_mem_type_manager_debug
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment