summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorXinyu Chen <xinyu.chen@freescale.com>2012-11-09 15:45:19 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2012-11-09 17:21:48 +0800
commit77a6676764e76c6ede9f4360e32fbedc6c803a50 (patch)
treec1d141f3573f87443ac2c0029c5a52abcb1d38a5 /arch
parentad29adf4cdc6d0a68247697256fd6ef603b38658 (diff)
ENGR00233062-1 mx6 sabresd: make ion reserved memory configurable
Add ionmem kernel parameter for setting the ION device reserved memory size. Do not register ion device, if it's size is zero. Reduce the gpu default reserved size to 180MB. Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index 2dce89868888..8972013f0781 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -1209,7 +1209,7 @@ static const struct flexcan_platform_data
};
static struct viv_gpu_platform_data imx6q_gpu_pdata __initdata = {
- .reserved_mem_size = SZ_128M + SZ_64M,
+ .reserved_mem_size = SZ_128M + SZ_64M - SZ_16M,
};
static struct imx_asrc_platform_data imx_asrc_data = {
@@ -1376,7 +1376,7 @@ static struct ion_platform_data imx_ion_data = {
.id = 0,
.type = ION_HEAP_TYPE_CARVEOUT,
.name = "vpu_ion",
- .size = SZ_64M,
+ .size = SZ_16M,
},
},
};
@@ -1684,6 +1684,13 @@ static void __init fixup_mxc_board(struct machine_desc *desc, struct tag *tags,
pdata_fb[i++].res_size[0] = memparse(str, &str);
}
}
+ /* ION reserved memory */
+ str = t->u.cmdline.cmdline;
+ str = strstr(str, "ionmem=");
+ if (str != NULL) {
+ str += 7;
+ imx_ion_data.heaps[0].size = memparse(str, &str);
+ }
/* Primary framebuffer base address */
str = t->u.cmdline.cmdline;
str = strstr(str, "fb0base=");
@@ -1911,8 +1918,9 @@ static void __init mx6_sabresd_board_init(void)
mx6_cpu_regulator_init();
#endif
- imx6q_add_ion(0, &imx_ion_data,
- sizeof(imx_ion_data) + sizeof(struct ion_platform_heap));
+ if (imx_ion_data.heaps[0].size)
+ imx6q_add_ion(0, &imx_ion_data,
+ sizeof(imx_ion_data) + sizeof(struct ion_platform_heap));
imx6q_add_device_buttons();
/* enable sensor 3v3 and 1v8 */