summaryrefslogtreecommitdiff
path: root/gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c')
-rw-r--r--gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c b/gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c
index 3e18051..564991b 100644
--- a/gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c
+++ b/gcip-kernel-driver/drivers/gcip/gcip-mem-pool.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0
+// SPDX-License-Identifier: GPL-2.0-only
/*
* A simple memory allocator to help allocating reserved memory pools.
*
@@ -12,21 +12,21 @@
#include <gcip/gcip-mem-pool.h>
-int gcip_mem_pool_init(struct gcip_mem_pool *pool, struct device *dev, phys_addr_t base_paddr,
+int gcip_mem_pool_init(struct gcip_mem_pool *pool, struct device *dev, unsigned long base_addr,
size_t size, size_t granule)
{
int ret;
- if (!base_paddr || granule == 0)
+ if (!base_addr || granule == 0)
return -EINVAL;
- if (base_paddr % granule || size % granule)
+ if (base_addr % granule || size % granule)
return -EINVAL;
pool->gen_pool = gen_pool_create(ilog2(granule), -1);
if (!pool->gen_pool) {
dev_err(dev, "gcip memory pool allocate gen_pool failed");
return -ENOMEM;
}
- ret = gen_pool_add(pool->gen_pool, base_paddr, size, -1);
+ ret = gen_pool_add(pool->gen_pool, base_addr, size, -1);
if (ret) {
gen_pool_destroy(pool->gen_pool);
pool->gen_pool = NULL;
@@ -35,7 +35,7 @@ int gcip_mem_pool_init(struct gcip_mem_pool *pool, struct device *dev, phys_addr
}
pool->dev = dev;
pool->granule = granule;
- pool->base_paddr = base_paddr;
+ pool->base_addr = base_addr;
return 0;
}
@@ -47,23 +47,20 @@ void gcip_mem_pool_exit(struct gcip_mem_pool *pool)
pool->gen_pool = NULL;
}
-phys_addr_t gcip_mem_pool_alloc(struct gcip_mem_pool *pool, size_t size)
+unsigned long gcip_mem_pool_alloc(struct gcip_mem_pool *pool, size_t size)
{
unsigned long addr;
- size_t aligned_size = ALIGN(size, pool->granule);
- addr = gen_pool_alloc(pool->gen_pool, aligned_size);
+ addr = gen_pool_alloc(pool->gen_pool, size);
if (!addr)
return 0;
- dev_dbg(pool->dev, "%s @ size = %#zx paddr=%#lx", __func__, size, addr);
- return (phys_addr_t)addr;
+ dev_dbg(pool->dev, "%s @ size = %#zx addr=%#lx", __func__, size, addr);
+ return addr;
}
-void gcip_mem_pool_free(struct gcip_mem_pool *pool, phys_addr_t paddr, size_t size)
+void gcip_mem_pool_free(struct gcip_mem_pool *pool, unsigned long addr, size_t size)
{
- unsigned long addr = paddr;
-
- dev_dbg(pool->dev, "%s @ size = %#zx paddr=%#lx", __func__, size, addr);
+ dev_dbg(pool->dev, "%s @ size = %#zx addr=%#lx", __func__, size, addr);
size = ALIGN(size, pool->granule);
gen_pool_free(pool->gen_pool, addr, size);
}