drm/ttm: move fpfn and lpfn into each placement v2
This allows us to more fine grained specify where to place the buffer object. v2: rebased on drm-next, add bochs changes as well Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -45,12 +45,24 @@ struct ttm_bo_device;
|
||||
|
||||
struct drm_mm_node;
|
||||
|
||||
/**
|
||||
* struct ttm_place
|
||||
*
|
||||
* @fpfn: first valid page frame number to put the object
|
||||
* @lpfn: last valid page frame number to put the object
|
||||
* @flags: memory domain and caching flags for the object
|
||||
*
|
||||
* Structure indicating a possible place to put an object.
|
||||
*/
|
||||
struct ttm_place {
|
||||
unsigned fpfn;
|
||||
unsigned lpfn;
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ttm_placement
|
||||
*
|
||||
* @fpfn: first valid page frame number to put the object
|
||||
* @lpfn: last valid page frame number to put the object
|
||||
* @num_placement: number of preferred placements
|
||||
* @placement: preferred placements
|
||||
* @num_busy_placement: number of preferred placements when need to evict buffer
|
||||
@@ -59,12 +71,10 @@ struct drm_mm_node;
|
||||
* Structure indicating the placement you request for an object.
|
||||
*/
|
||||
struct ttm_placement {
|
||||
unsigned fpfn;
|
||||
unsigned lpfn;
|
||||
unsigned num_placement;
|
||||
const uint32_t *placement;
|
||||
unsigned num_busy_placement;
|
||||
const uint32_t *busy_placement;
|
||||
unsigned num_placement;
|
||||
const struct ttm_place *placement;
|
||||
unsigned num_busy_placement;
|
||||
const struct ttm_place *busy_placement;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -518,20 +528,6 @@ extern int ttm_bo_create(struct ttm_bo_device *bdev,
|
||||
struct file *persistent_swap_storage,
|
||||
struct ttm_buffer_object **p_bo);
|
||||
|
||||
/**
|
||||
* ttm_bo_check_placement
|
||||
*
|
||||
* @bo: the buffer object.
|
||||
* @placement: placements
|
||||
*
|
||||
* Performs minimal validity checking on an intended change of
|
||||
* placement flags.
|
||||
* Returns
|
||||
* -EINVAL: Intended change is invalid or not allowed.
|
||||
*/
|
||||
extern int ttm_bo_check_placement(struct ttm_buffer_object *bo,
|
||||
struct ttm_placement *placement);
|
||||
|
||||
/**
|
||||
* ttm_bo_init_mm
|
||||
*
|
||||
|
||||
@@ -208,8 +208,7 @@ struct ttm_mem_type_manager_func {
|
||||
*/
|
||||
int (*get_node)(struct ttm_mem_type_manager *man,
|
||||
struct ttm_buffer_object *bo,
|
||||
struct ttm_placement *placement,
|
||||
uint32_t flags,
|
||||
const struct ttm_place *place,
|
||||
struct ttm_mem_reg *mem);
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user