Esempio n. 1
0
static struct rproc_mem_pool *omap_rproc_get_pool(const char *name)
{
	struct rproc_mem_pool *pool = NULL;
	phys_addr_t paddr1;
	phys_addr_t paddr2;
	u32 len1;
	u32 len2;

	/* get ipu mempool  */
	if (!strcmp("ipu", name)) {
		paddr1 = omap_ipu_get_mempool_base(
						OMAP_RPROC_MEMPOOL_STATIC);
		paddr2 = omap_ipu_get_mempool_base(
						OMAP_RPROC_MEMPOOL_DYNAMIC);
		len1 = omap_ipu_get_mempool_size(OMAP_RPROC_MEMPOOL_STATIC);
		len2 = omap_ipu_get_mempool_size(OMAP_RPROC_MEMPOOL_DYNAMIC);
	/* get dsp mempool*/
	} else if (!strcmp("dsp", name)) {
		paddr1 = omap_dsp_get_mempool_tbase(
						OMAP_RPROC_MEMPOOL_STATIC);
		paddr2 = omap_dsp_get_mempool_tbase(
						OMAP_RPROC_MEMPOOL_DYNAMIC);
		len1 = omap_dsp_get_mempool_tsize(OMAP_RPROC_MEMPOOL_STATIC);
		len2 = omap_dsp_get_mempool_tsize(OMAP_RPROC_MEMPOOL_DYNAMIC);
	} else
		return pool;

	if (!paddr1 && !paddr2) {
		pr_err("%s - no carveout memory is available at all\n", name);
		return pool;
	}
	if (!paddr1 || !len1)
		pr_warn("%s - static memory is unavailable: 0x%x, 0x%x\n",
			name, paddr1, len1);
	if (!paddr2 || !len2)
		pr_warn("%s - carveout memory is unavailable: 0x%x, 0x%x\n",
			name, paddr2, len2);

	pool = kzalloc(sizeof(*pool), GFP_KERNEL);
	if (pool) {
		pool->st_base = paddr1;
		pool->st_size = len1;
		pool->mem_base = paddr2;
		pool->mem_size = len2;
		pool->cur_base = paddr2;
		pool->cur_size = len2;
	}

	return pool;
}
Esempio n. 2
0
static struct rproc_mem_pool *omap_rproc_get_pool(const char *name)
{
	struct rproc_mem_pool *pool = NULL;
	phys_addr_t paddr1;
	phys_addr_t paddr2;
	u32 len1;
	u32 len2;

	/* get ipu mempool  */
	if (!strcmp("ipu", name)) {
		paddr1 = omap_ipu_get_mempool_base(
						OMAP_RPROC_MEMPOOL_STATIC);
		paddr2 = omap_ipu_get_mempool_base(
						OMAP_RPROC_MEMPOOL_DYNAMIC);
		len1 = omap_ipu_get_mempool_size(OMAP_RPROC_MEMPOOL_STATIC);
		len2 = omap_ipu_get_mempool_size(OMAP_RPROC_MEMPOOL_DYNAMIC);
	/* get dsp mempool*/
	} else if (!strcmp("dsp", name)) {
		paddr1 = omap_dsp_get_mempool_tbase(
						OMAP_RPROC_MEMPOOL_STATIC);
		paddr2 = omap_dsp_get_mempool_tbase(
						OMAP_RPROC_MEMPOOL_DYNAMIC);
		len1 = omap_dsp_get_mempool_tsize(OMAP_RPROC_MEMPOOL_STATIC);
		len2 = omap_dsp_get_mempool_tsize(OMAP_RPROC_MEMPOOL_DYNAMIC);
	} else
		return pool;

	pool = kzalloc(sizeof(*pool), GFP_KERNEL);
	if (pool) {
		pool->st_base = paddr1;
		pool->st_size = len1;
		pool->mem_base = paddr2;
		pool->mem_size = len2;
		pool->cur_base = paddr2;
		pool->cur_size = len2;
	}

	return pool;
}