diff options
author | Henry Zhao <xzhao10@marvell.com> | 2012-05-22 18:14:37 +0800 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2019-07-22 19:39:58 +0200 |
commit | e13c222629defd2a3631047a840e57d3a049611c (patch) | |
tree | e5cb963c4b6e29cc304e76d943bf7169356e6c53 | |
parent | 54096a28801efbd1994db2d4f91a259474f33f28 (diff) | |
download | linux-mmp3-dell-ariel-e13c222629defd2a3631047a840e57d3a049611c.tar.gz |
ZSP: align firmware loading address
1. ZSP firmware is merged with ACL and RENDER, and the layout changes.
The host driver should change the firmware address accoringly.
2. fix a potential memory leak.
3. reduce the delay time when sending more than one message.
Change-Id: I28d44453eb63e36c85376d948171f45ac09cbc8d
Signed-off-by: Henry Zhao <xzhao10@marvell.com>
Signed-off-by: nhcao <nhcao@marvell.com>
-rw-r--r-- | drivers/char/mmp_zmq.c | 14 | ||||
-rw-r--r-- | drivers/char/mmp_zsp.c | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/drivers/char/mmp_zmq.c b/drivers/char/mmp_zmq.c index d08eddc90345d3..d6bfb0ae5e4d14 100644 --- a/drivers/char/mmp_zmq.c +++ b/drivers/char/mmp_zmq.c @@ -61,6 +61,12 @@ int zmq_pool_init(int size) int ret = 0; void *ptr; ptr = kzalloc(size , GFP_KERNEL | GFP_ATOMIC); + if(!ptr) { + printk(KERN_ERR "%s, %s, failed to alloc mem.\n", __FILE__, __func__); + ret = -ENOMEM; + return ret; + } + g_zmq_packet_alc.zmq_pool = gen_pool_create(ilog2(MSG_POOL_GRANULARITY), -1); if (!g_zmq_packet_alc.zmq_pool) { ret = -ENOMEM; @@ -75,13 +81,17 @@ int zmq_pool_init(int size) } g_zmq_packet_alc.zmq_pool_total_size = size; g_zmq_packet_alc.zmq_pool_size = size; + g_zmq_packet_alc.ptr = ptr; return 0; } void zmq_pool_uninit(void) { gen_pool_destroy(g_zmq_packet_alc.zmq_pool); - kfree(g_zmq_packet_alc.ptr); + if(g_zmq_packet_alc.ptr) { + kfree(g_zmq_packet_alc.ptr); + g_zmq_packet_alc.ptr = NULL; + } return; } @@ -954,7 +964,7 @@ static int zmq_message_send( } /* no blocking for sending, delay some times */ - mdelay(50); + udelay(50); try_num--; } diff --git a/drivers/char/mmp_zsp.c b/drivers/char/mmp_zsp.c index 9b26736e17e03a..8fd754241a0a40 100644 --- a/drivers/char/mmp_zsp.c +++ b/drivers/char/mmp_zsp.c @@ -44,7 +44,7 @@ #include <linux/wakelock.h> #include <mach/sram.h> -#define SRAM_OFFSET_FOR_DTCM 0x7000 +#define SRAM_OFFSET_FOR_DTCM 0x6400 /* mmp PZIPC registers */ #define IPC_ISRW 0x0008 |