import OT_8063_20170412 mali driver
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / gpu / mt8127 / mali / ump / linux / ump_kernel_memory_backend_dedicated.c
index 4f41d1b24db421ce3559ef91e1db4314505e9f8b..6b6192ca283b6716f867b7c8fbf5a6f77915e2a0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This confidential and proprietary software may be used only as
  * authorised by a licensing agreement from ARM Limited
- * (C) COPYRIGHT 2008-2011, 2013 ARM Limited
+ * (C) COPYRIGHT 2008-2011, 2013-2015 ARM Limited
  * ALL RIGHTS RESERVED
  * The entire notice above must be reproduced on all authorised
  * copies and copies may only be made to the extent permitted
 
 
 typedef struct block_info {
-       struct block_info * next;
+       struct block_info *next;
 } block_info;
 
 
 
 typedef struct block_allocator {
        struct semaphore mutex;
-       block_info * all_blocks;
-       block_info * first_free;
+       block_info *all_blocks;
+       block_info *first_free;
        u32 base;
        u32 num_blocks;
        u32 num_free;
 } block_allocator;
 
 
-static void block_allocator_shutdown(ump_memory_backend * backend);
-static int block_allocator_allocate(void* ctx, ump_dd_mem * mem);
-static void block_allocator_release(void * ctx, ump_dd_mem * handle);
-static inline u32 get_phys(block_allocator * allocator, block_info * block);
+static void block_allocator_shutdown(ump_memory_backend *backend);
+static int block_allocator_allocate(void *ctx, ump_dd_mem *mem);
+static void block_allocator_release(void *ctx, ump_dd_mem *handle);
+static inline u32 get_phys(block_allocator *allocator, block_info *block);
 static u32 block_allocator_stat(struct ump_memory_backend *backend);
 
 
@@ -57,10 +57,10 @@ static u32 block_allocator_stat(struct ump_memory_backend *backend);
 /*
  * Create dedicated memory backend
  */
-ump_memory_backend * ump_block_allocator_create(u32 base_address, u32 size)
+ump_memory_backend *ump_block_allocator_create(u32 base_address, u32 size)
 {
-       ump_memory_backend * backend;
-       block_allocator * allocator;
+       ump_memory_backend *backend;
+       block_allocator *allocator;
        u32 usable_size;
        u32 num_blocks;
 
@@ -117,14 +117,14 @@ ump_memory_backend * ump_block_allocator_create(u32 base_address, u32 size)
 /*
  * Destroy specified dedicated memory backend
  */
-static void block_allocator_shutdown(ump_memory_backend * backend)
+static void block_allocator_shutdown(ump_memory_backend *backend)
 {
-       block_allocator * allocator;
+       block_allocator *allocator;
 
        BUG_ON(!backend);
        BUG_ON(!backend->ctx);
 
-       allocator = (block_allocator*)backend->ctx;
+       allocator = (block_allocator *)backend->ctx;
 
        DBG_MSG_IF(1, allocator->num_free != allocator->num_blocks, ("%u blocks still in use during shutdown\n", allocator->num_blocks - allocator->num_free));
 
@@ -135,24 +135,24 @@ static void block_allocator_shutdown(ump_memory_backend * backend)
 
 
 
-static int block_allocator_allocate(void* ctx, ump_dd_mem * mem)
+static int block_allocator_allocate(void *ctx, ump_dd_mem *mem)
 {
-       block_allocator * allocator;
+       block_allocator *allocator;
        u32 left;
-       block_info * last_allocated = NULL;
+       block_info *last_allocated = NULL;
        int i = 0;
 
        BUG_ON(!ctx);
        BUG_ON(!mem);
 
-       allocator = (block_allocator*)ctx;
+       allocator = (block_allocator *)ctx;
        left = mem->size_bytes;
 
        BUG_ON(!left);
        BUG_ON(!&allocator->mutex);
 
        mem->nr_blocks = ((left + UMP_BLOCK_SIZE - 1) & ~(UMP_BLOCK_SIZE - 1)) / UMP_BLOCK_SIZE;
-       mem->block_array = (ump_dd_physical_block*)vmalloc(sizeof(ump_dd_physical_block) * mem->nr_blocks);
+       mem->block_array = (ump_dd_physical_block *)vmalloc(sizeof(ump_dd_physical_block) * mem->nr_blocks);
        if (NULL == mem->block_array) {
                MSG_ERR(("Failed to allocate block array\n"));
                return 0;
@@ -166,7 +166,7 @@ static int block_allocator_allocate(void* ctx, ump_dd_mem * mem)
        mem->size_bytes = 0;
 
        while ((left > 0) && (allocator->first_free)) {
-               block_info * block;
+               block_info *block;
 
                block = allocator->first_free;
                allocator->first_free = allocator->first_free->next;
@@ -185,7 +185,7 @@ static int block_allocator_allocate(void* ctx, ump_dd_mem * mem)
        }
 
        if (left) {
-               block_info * block;
+               block_info *block;
                /* release all memory back to the pool */
                while (last_allocated) {
                        block = last_allocated->next;
@@ -208,23 +208,23 @@ static int block_allocator_allocate(void* ctx, ump_dd_mem * mem)
        mem->backend_info = last_allocated;
 
        up(&allocator->mutex);
-       mem->is_cached=0;
+       mem->is_cached = 0;
 
        return 1;
 }
 
 
 
-static void block_allocator_release(void * ctx, ump_dd_mem * handle)
+static void block_allocator_release(void *ctx, ump_dd_mem *handle)
 {
-       block_allocator * allocator;
-       block_info * block, * next;
+       block_allocator *allocator;
+       block_info *block, * next;
 
        BUG_ON(!ctx);
        BUG_ON(!handle);
 
-       allocator = (block_allocator*)ctx;
-       block = (block_info*)handle->backend_info;
+       allocator = (block_allocator *)ctx;
+       block = (block_info *)handle->backend_info;
        BUG_ON(!block);
 
        if (down_interruptible(&allocator->mutex)) {
@@ -235,7 +235,7 @@ static void block_allocator_release(void * ctx, ump_dd_mem * handle)
        while (block) {
                next = block->next;
 
-               BUG_ON( (block < allocator->all_blocks) || (block > (allocator->all_blocks + allocator->num_blocks)));
+               BUG_ON((block < allocator->all_blocks) || (block > (allocator->all_blocks + allocator->num_blocks)));
 
                block->next = allocator->first_free;
                allocator->first_free = block;
@@ -255,7 +255,7 @@ static void block_allocator_release(void * ctx, ump_dd_mem * handle)
 /*
  * Helper function for calculating the physical base adderss of a memory block
  */
-static inline u32 get_phys(block_allocator * allocator, block_info * block)
+static inline u32 get_phys(block_allocator *allocator, block_info *block)
 {
        return allocator->base + ((block - allocator->all_blocks) * UMP_BLOCK_SIZE);
 }
@@ -264,8 +264,8 @@ static u32 block_allocator_stat(struct ump_memory_backend *backend)
 {
        block_allocator *allocator;
        BUG_ON(!backend);
-       allocator = (block_allocator*)backend->ctx;
+       allocator = (block_allocator *)backend->ctx;
        BUG_ON(!allocator);
 
-       return (allocator->num_blocks - allocator->num_free)* UMP_BLOCK_SIZE;
+       return (allocator->num_blocks - allocator->num_free) * UMP_BLOCK_SIZE;
 }