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,
}
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)
{
struct ttm_bo_global *glob =
......
......@@ -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,
unsigned long p_size)
static const struct ttm_mem_type_manager_func ttm_bo_manager_func;
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;
man->func = &ttm_bo_manager_func;
ttm_mem_type_manager_init(bdev, man, p_size);
rman = kzalloc(sizeof(*rman), GFP_KERNEL);
if (!rman)
return -ENOMEM;
......@@ -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);
spin_lock_init(&rman->lock);
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);
return 0;
}
......@@ -163,11 +156,9 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
spin_unlock(&rman->lock);
}
const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
.init = ttm_bo_man_init_private,
static const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
.takedown = ttm_bo_man_takedown,
.get_node = ttm_bo_man_get_node,
.put_node = ttm_bo_man_put_node,
.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,
struct ttm_mem_type_manager *man,
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
*
......
......@@ -48,19 +48,6 @@
struct ttm_mem_type_manager;
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
*
......@@ -833,8 +820,6 @@ int ttm_range_man_init(struct ttm_bo_device *bdev,
struct ttm_mem_type_manager *man,
unsigned long p_size);
extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
/**
* 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