mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 04:42:04 -04:00
Merge "shmbridge: Change the bridge size according to dtsi entry"
This commit is contained in:
commit
ddb3f3dfff
1 changed files with 19 additions and 8 deletions
|
|
@ -23,6 +23,7 @@
|
|||
#include "qtee_shmbridge_internal.h"
|
||||
|
||||
#define DEFAULT_BRIDGE_SIZE SZ_4M /*4M*/
|
||||
#define MIN_BRIDGE_SIZE SZ_4K /*4K*/
|
||||
|
||||
#define MAXSHMVMS 4
|
||||
#define PERM_BITS 3
|
||||
|
|
@ -280,18 +281,19 @@ int32_t qtee_shmbridge_allocate_shm(size_t size, struct qtee_shm *shm)
|
|||
int32_t ret = 0;
|
||||
unsigned long va;
|
||||
|
||||
if (size > DEFAULT_BRIDGE_SIZE) {
|
||||
pr_err("requestd size %zu is larger than bridge size %d\n",
|
||||
size, DEFAULT_BRIDGE_SIZE);
|
||||
ret = -EINVAL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (IS_ERR_OR_NULL(shm)) {
|
||||
pr_err("qtee_shm is NULL\n");
|
||||
ret = -EINVAL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (size > default_bridge.size) {
|
||||
pr_err("requestd size %zu is larger than bridge size %d\n",
|
||||
size, default_bridge.size);
|
||||
ret = -EINVAL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
size = roundup(size, 1 << default_bridge.min_alloc_order);
|
||||
|
||||
va = gen_pool_alloc(default_bridge.genpool, size);
|
||||
|
|
@ -350,6 +352,7 @@ EXPORT_SYMBOL(qtee_shmbridge_inv_shm_buf);
|
|||
static int qtee_shmbridge_init(struct platform_device *pdev)
|
||||
{
|
||||
int ret = 0;
|
||||
uint32_t custom_bridge_size;
|
||||
uint32_t *ns_vm_ids;
|
||||
uint32_t ns_vm_ids_hlos[] = {VMID_HLOS};
|
||||
uint32_t ns_vm_ids_hyp[] = {};
|
||||
|
|
@ -367,8 +370,16 @@ static int qtee_shmbridge_init(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* allocate a contiguous page aligned buffer */
|
||||
default_bridge.size = DEFAULT_BRIDGE_SIZE;
|
||||
ret = of_property_read_u32((&pdev->dev)->of_node,
|
||||
"qcom,custom-bridge-size", &custom_bridge_size);
|
||||
if (ret)
|
||||
default_bridge.size = DEFAULT_BRIDGE_SIZE;
|
||||
else
|
||||
default_bridge.size = custom_bridge_size * MIN_BRIDGE_SIZE;
|
||||
|
||||
pr_debug("qtee shmbridge registered default bridge with size %x bytes\n",
|
||||
default_bridge.size);
|
||||
|
||||
default_bridge.vaddr = (void *)__get_free_pages(GFP_KERNEL|__GFP_COMP,
|
||||
get_order(default_bridge.size));
|
||||
if (!default_bridge.vaddr)
|
||||
|
|
@ -432,7 +443,7 @@ static int qtee_shmbridge_init(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
pr_debug("qtee shmbridge registered default bridge with size %d bytes\n",
|
||||
DEFAULT_BRIDGE_SIZE);
|
||||
default_bridge.size);
|
||||
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue