drm/ttm: use a static ttm_mem_global instance

As the name says we only need one global instance of ttm_mem_global.

Drop all the driver initialization and just use a single exported
instance which is initialized during BO global initialization.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Christian König
2018-10-19 13:49:05 +02:00
committed by Alex Deucher
parent 7e07834c12
commit 27eb1fa913
29 changed files with 32 additions and 380 deletions

View File

@ -570,8 +570,7 @@ void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
struct ttm_mem_reg *mem);
void ttm_bo_global_release(struct ttm_bo_global *glob);
int ttm_bo_global_init(struct ttm_bo_global *glob,
struct ttm_mem_global *mem_glob);
int ttm_bo_global_init(struct ttm_bo_global *glob);
int ttm_bo_device_release(struct ttm_bo_device *bdev);
@ -895,7 +894,6 @@ extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
struct ttm_bo_global_ref {
struct drm_global_reference ref;
struct ttm_mem_global *mem_glob;
};
/**
@ -909,9 +907,7 @@ struct ttm_bo_global_ref {
*/
static inline int ttm_bo_global_ref_init(struct drm_global_reference *ref)
{
struct ttm_bo_global_ref *bo_ref =
container_of(ref, struct ttm_bo_global_ref, ref);
return ttm_bo_global_init(ref->object, bo_ref->mem_glob);
return ttm_bo_global_init(ref->object);
}
/**

View File

@ -63,7 +63,7 @@
#define TTM_MEM_MAX_ZONES 2
struct ttm_mem_zone;
struct ttm_mem_global {
extern struct ttm_mem_global {
struct kobject kobj;
struct ttm_bo_global *bo_glob;
struct workqueue_struct *swap_queue;
@ -78,7 +78,7 @@ struct ttm_mem_global {
#else
struct ttm_mem_zone *zone_dma32;
#endif
};
} ttm_mem_glob;
extern int ttm_mem_global_init(struct ttm_mem_global *glob);
extern void ttm_mem_global_release(struct ttm_mem_global *glob);