From 0632b77be9923b446acec98f8e83f8c92e91756e Mon Sep 17 00:00:00 2001 From: "Isaac J. Manjarres" Date: Tue, 15 Oct 2019 15:41:00 -0700 Subject: [PATCH] ion: msm: Remove [cma/dma]_get_[base/size] usage Remove the usage of [cma/dma]_get_[base/size], as they serve no functional purpose in the MSM ION driver at the moment. Change-Id: I1f2c25a0e53a5470be2b8cd8467acc0428cd215a Signed-off-by: Isaac J. Manjarres --- drivers/staging/android/ion/heaps/msm_ion.c | 96 ++++++++++----------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/drivers/staging/android/ion/heaps/msm_ion.c b/drivers/staging/android/ion/heaps/msm_ion.c index 73451c032e1e..b4c37411b7b5 100644 --- a/drivers/staging/android/ion/heaps/msm_ion.c +++ b/drivers/staging/android/ion/heaps/msm_ion.c @@ -267,9 +267,41 @@ static void free_pdata(const struct ion_platform_data *pdata) kfree(pdata); } -static int init_reserved_memory(struct device *dev, struct device_node *pnode) +static int msm_ion_get_heap_base_size(struct ion_platform_heap *heap, + struct device_node *pnode) +{ + const __be32 *basep; + u64 base, size; + int ret = 0; + + basep = of_get_address(pnode, 0, &size, NULL); + if (basep) { + base = of_translate_address(pnode, basep); + if (base != OF_BAD_ADDR) { + heap->base = base; + heap->size = size; + } else { + ret = -EINVAL; + } + } + + return ret; +} + +static void release_reserved_memory(struct device *dev, + struct device_node *pnode) +{ + struct reserved_mem *rmem = of_reserved_mem_lookup(pnode); + + if (rmem && rmem->ops) + of_reserved_mem_device_release(dev); +} + +static int init_reserved_memory(struct ion_platform_heap *heap, + struct device_node *pnode) { int ret = 0; + struct device *dev = heap->priv; struct reserved_mem *rmem = of_reserved_mem_lookup(pnode); if (!rmem) { @@ -286,22 +318,23 @@ static int init_reserved_memory(struct device *dev, struct device_node *pnode) */ if (rmem->ops) { ret = of_reserved_mem_device_init_by_idx(dev, dev->of_node, 0); - if (ret) - dev_err(dev, "Failed to initialize memory region\n"); + if (ret) { + dev_err(dev, + "Failed to initialize memory region rc: %d\n", + ret); + return ret; + } + } + + ret = msm_ion_get_heap_base_size(heap, pnode); + if (ret) { + dev_err(dev, "Failed to get heap base/size\n"); + release_reserved_memory(dev, pnode); } return ret; } -static void release_reserved_memory(struct device *dev, - struct device_node *pnode) -{ - struct reserved_mem *rmem = of_reserved_mem_lookup(pnode); - - if (rmem && rmem->ops) - of_reserved_mem_device_release(dev); -} - static void release_reserved_memory_regions(struct ion_platform_heap *heaps, int idx) { @@ -323,45 +356,12 @@ static int msm_ion_get_heap_dt_data(struct device_node *node, struct ion_platform_heap *heap) { struct device_node *pnode; - struct device *dev = heap->priv; - int ret = -EINVAL; + int ret = 0; pnode = of_parse_phandle(node, "memory-region", 0); - if (pnode) { - const __be32 *basep; - u64 size = 0; - u64 base = 0; + if (pnode) + ret = init_reserved_memory(heap, pnode); - ret = init_reserved_memory(dev, pnode); - if (ret) - goto out; - - basep = of_get_address(pnode, 0, &size, NULL); - if (!basep) { - if (dev->cma_area) { - base = cma_get_base(dev->cma_area); - size = cma_get_size(dev->cma_area); - ret = 0; - } else if (dev->dma_mem) { - base = dma_get_device_base(dev, dev->dma_mem); - size = dma_get_size(dev->dma_mem); - ret = 0; - } - } else { - base = of_translate_address(pnode, basep); - if (base != OF_BAD_ADDR) - ret = 0; - } - - if (!ret) { - heap->base = base; - heap->size = size; - } - } else { - ret = 0; - } - -out: of_node_put(pnode); WARN(ret, "Failed to parse DT node for heap %s\n", heap->name); return ret;