vidc: Select board specific memory heap id.
Allocates ION memory from the heap id specified
in the board file.
Change-Id: If701972a632fa336c6447e95b79484739593f1da
Signed-off-by: Deepak Kotur <dkotur@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index 0765251..2ea1f47 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -15,6 +15,7 @@
#include <linux/list.h>
#include <linux/platform_device.h>
#include <linux/msm_rotator.h>
+#include <linux/ion.h>
#include <linux/gpio.h>
#include <asm/clkdev.h>
#include <linux/msm_kgsl.h>
@@ -537,10 +538,11 @@
#ifdef CONFIG_MSM_BUS_SCALING
.vidc_bus_client_pdata = &vidc_bus_client_data,
#endif
- .memtype = MEMTYPE_EBI1,
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
+ .memtype = ION_HEAP_EBI_ID,
.enable_ion = 1,
#else
+ .memtype = MEMTYPE_EBI1,
.enable_ion = 0,
#endif
};
diff --git a/arch/arm/mach-msm/devices-msm8x60.c b/arch/arm/mach-msm/devices-msm8x60.c
index 52c62fd..0ab9811 100644
--- a/arch/arm/mach-msm/devices-msm8x60.c
+++ b/arch/arm/mach-msm/devices-msm8x60.c
@@ -15,6 +15,7 @@
#include <linux/platform_device.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/consumer.h>
+#include <linux/ion.h>
#include <mach/irqs.h>
#include <mach/dma.h>
#include <asm/mach/mmc.h>
@@ -2150,10 +2151,11 @@
#ifdef CONFIG_MSM_BUS_SCALING
.vidc_bus_client_pdata = &vidc_bus_client_data,
#endif
- .memtype = MEMTYPE_SMI_KERNEL,
#ifdef CONFIG_MSM_MULTIMEDIA_USE_ION
+ .memtype = ION_HEAP_SMI_ID,
.enable_ion = 1,
#else
+ .memtype = MEMTYPE_SMI_KERNEL,
.enable_ion = 0,
#endif
};
diff --git a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_utils.c b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_utils.c
index a0637aa..df65d26 100644
--- a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_utils.c
+++ b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_utils.c
@@ -64,7 +64,7 @@
}
addr->alloc_handle = ion_alloc(
ddl_context->video_ion_client, alloc_size, SZ_4K,
- (1<<ION_HEAP_EBI_ID));
+ (1<<res_trk_get_mem_type()));
if (!addr->alloc_handle) {
DDL_MSG_ERROR("%s() :DDL ION alloc failed\n",
__func__);
diff --git a/drivers/video/msm/vidc/common/vcd/vcd_sub.c b/drivers/video/msm/vidc/common/vcd/vcd_sub.c
index 35ee946..3924088 100644
--- a/drivers/video/msm/vidc/common/vcd/vcd_sub.c
+++ b/drivers/video/msm/vidc/common/vcd/vcd_sub.c
@@ -57,8 +57,8 @@
pr_err("%s() map table is full", __func__);
goto bailout;
}
+ memtype = res_trk_get_mem_type();
if (!cctxt->vcd_enable_ion) {
- memtype = res_trk_get_mem_type();
map_buffer->phy_addr = (phys_addr_t)
allocate_contiguous_memory_nomap(sz, memtype, SZ_4K);
if (!map_buffer->phy_addr) {
@@ -68,7 +68,7 @@
} else {
map_buffer->alloc_handle = ion_alloc(
cctxt->vcd_ion_client, sz, SZ_4K,
- (1<<ION_HEAP_EBI_ID));
+ (1<<memtype));
if (!map_buffer->alloc_handle) {
pr_err("%s() ION alloc failed", __func__);
goto bailout;