drm/lima: support heap buffer creation
heap buffer is used as output of GP and input of PP for Mali Utgard GPU. Size of heap buffer depends on the task so is a runtime variable. Previously we just create a large enough buffer as heap buffer. Now we add a heap buffer type to be able to increase the backup memory dynamically when GP fail due to lack of heap memory. Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com> Tested-by: Andreas Baierl <ichgeh@imkreisrum.de> Signed-off-by: Qiang Yu <yuq825@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200116131157.13346-4-yuq825@gmail.com
This commit is contained in:
@@ -155,6 +155,7 @@ err_out0:
|
||||
void lima_vm_bo_del(struct lima_vm *vm, struct lima_bo *bo)
|
||||
{
|
||||
struct lima_bo_va *bo_va;
|
||||
u32 size;
|
||||
|
||||
mutex_lock(&bo->lock);
|
||||
|
||||
@@ -166,8 +167,9 @@ void lima_vm_bo_del(struct lima_vm *vm, struct lima_bo *bo)
|
||||
|
||||
mutex_lock(&vm->lock);
|
||||
|
||||
size = bo->heap_size ? bo->heap_size : bo_va->node.size;
|
||||
lima_vm_unmap_range(vm, bo_va->node.start,
|
||||
bo_va->node.start + bo_va->node.size - 1);
|
||||
bo_va->node.start + size - 1);
|
||||
|
||||
drm_mm_remove_node(&bo_va->node);
|
||||
|
||||
|
Reference in New Issue
Block a user