From bd72984e166c6149386ad6193258ae386dd06844 Mon Sep 17 00:00:00 2001 From: Xinyu Chen Date: Fri, 28 Oct 2011 15:25:21 +0800 Subject: ENGR00159773-2 mx53smd: Remove normal zone, make pmem size configurable Remove the normal zone by set CONFIG_DMA_ZONE_SIZE = 0. Add pmem=, commandline for set the GPU and VPU pmem size on boot. Signed-off-by: Xinyu Chen --- arch/arm/configs/imx5_android_defconfig | 10 +++++----- arch/arm/mach-mx5/mx53_smd.c | 15 ++++++++++++++- arch/arm/plat-mxc/include/mach/memory.h | 6 ++++-- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/arch/arm/configs/imx5_android_defconfig b/arch/arm/configs/imx5_android_defconfig index 521bf2a92196..a9fd09c519e8 100644 --- a/arch/arm/configs/imx5_android_defconfig +++ b/arch/arm/configs/imx5_android_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.35.3 -# Mon Sep 5 10:02:38 2011 +# Fri Oct 28 15:14:28 2011 # CONFIG_ARM=y CONFIG_HAVE_PWM=y @@ -289,7 +289,7 @@ CONFIG_ARCH_MXC_HAS_NFC_V3=y CONFIG_ARCH_MXC_HAS_NFC_V3_2=y CONFIG_MXC_BLUETOOTH_RFKILL=y CONFIG_IRAM_ALLOC=y -CONFIG_DMA_ZONE_SIZE=96 +CONFIG_DMA_ZONE_SIZE=0 CONFIG_ISP1504_MXC=y CONFIG_UTMI_MXC=y # CONFIG_MXC_IRQ_PRIOR is not set @@ -348,10 +348,10 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -# CONFIG_VMSPLIT_3G is not set -CONFIG_VMSPLIT_2G=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0x80000000 +CONFIG_PAGE_OFFSET=0xC0000000 # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y diff --git a/arch/arm/mach-mx5/mx53_smd.c b/arch/arm/mach-mx5/mx53_smd.c index 8b78744c1077..c568d56f9afc 100644 --- a/arch/arm/mach-mx5/mx53_smd.c +++ b/arch/arm/mach-mx5/mx53_smd.c @@ -957,7 +957,7 @@ static struct platform_device mxc_sgtl5000_device = { static struct android_pmem_platform_data android_pmem_data = { .name = "pmem_adsp", - .size = SZ_32M, + .size = SZ_64M, }; static struct android_pmem_platform_data android_pmem_gpu_data = { @@ -1492,6 +1492,19 @@ static void __init fixup_android_board(struct machine_desc *desc, struct tag *ta gpu_mem = memparse(str, &str); } + str = t->u.cmdline.cmdline; + str = strstr(str, "pmem="); + if (str != NULL) { + str += 5; + pmem_gpu_size = memparse(str, &str); + android_pmem_gpu_data.size = pmem_gpu_size; + if (*str == ',') { + str++; + pmem_adsp_size = memparse(str, &str); + android_pmem_data.size = pmem_adsp_size; + } + } + str = t->u.cmdline.cmdline; if (strstr(str, "di0_primary")) reserve_2ndisp = 0; diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h index 83532f6f7c71..45e8784306c9 100644 --- a/arch/arm/plat-mxc/include/mach/memory.h +++ b/arch/arm/plat-mxc/include/mach/memory.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved. */ /* @@ -62,7 +62,7 @@ #define CONSISTENT_DMA_SIZE SZ_4M #else -#ifdef CONFIG_ARCH_MX5 +#if defined(CONFIG_ARCH_MX5) && (CONFIG_DMA_ZONE_SIZE > 0) #define CONSISTENT_DMA_SIZE (96 * SZ_1M) #else #define CONSISTENT_DMA_SIZE (32 * SZ_1M) @@ -72,6 +72,7 @@ #ifndef __ASSEMBLY__ +#if CONFIG_DMA_ZONE_SIZE > 0 #ifdef CONFIG_DMA_ZONE_SIZE #define MXC_DMA_ZONE_SIZE ((CONFIG_DMA_ZONE_SIZE * SZ_1M) >> PAGE_SHIFT) #else @@ -94,5 +95,6 @@ static inline void __arch_adjust_zones(int node, unsigned long *zone_size, __arch_adjust_zones(node, size, holes) #endif +#endif #endif /* __ASM_ARCH_MXC_MEMORY_H__ */ -- cgit v1.2.3