From 4c021b1dfbb5e422d82370087f0813997e864f00 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Fri, 27 Jun 2014 15:23:40 +0300 Subject: gpu: nvgpu: Replace allocator with bitmap alloc Replace gk20a allocator with Linux bitmap allocator. Change-Id: Iba5e28f68ab5cf19e2c033005efd7f9da6e4a5b6 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/554184 --- drivers/gpu/nvgpu/gk20a/gk20a_allocator.h | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_allocator.h') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h index 5621800e..154f953a 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h @@ -33,6 +33,8 @@ struct gk20a_allocator { u32 limit; /* max value = limit - 1 */ u32 align; /* alignment size, power of 2 */ + unsigned long *bitmap; /* bitmap */ + struct gk20a_alloc_block *block_first; /* first block in list */ struct gk20a_alloc_block *block_recent; /* last visited block */ @@ -62,29 +64,6 @@ struct gk20a_allocator { }; -/* a block of linear space range [start, end) */ -struct gk20a_alloc_block { - struct gk20a_allocator *allocator; /* parent allocator */ - struct rb_node rb; /* rb tree node */ - - u32 start; /* linear space range - [start, end) */ - u32 end; - - void *priv; /* backing structure for this - linear space block - page table, comp tag, etc */ - - struct gk20a_alloc_block *prev; /* prev block with lower address */ - struct gk20a_alloc_block *next; /* next block with higher address */ - - bool nc_block; - struct gk20a_alloc_block *nc_prev; /* prev block for - non-contiguous allocation */ - struct gk20a_alloc_block *nc_next; /* next block for - non-contiguous allocation */ -}; - int gk20a_allocator_init(struct gk20a_allocator *allocator, const char *name, u32 base, u32 size, u32 align); void gk20a_allocator_destroy(struct gk20a_allocator *allocator); -- cgit v1.2.2