aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s5p/reserve_mem.c
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.com>2012-09-17 17:53:57 +0200
committercodeworkx <codeworkx@cyanogenmod.com>2012-09-18 16:31:59 +0200
commitc28265764ec6ad9995eb0c761a376ffc9f141fcd (patch)
tree3ad899757480d47deb2be6011509a4243e8e0dc2 /arch/arm/plat-s5p/reserve_mem.c
parent0ddbcb39c0dc0318f68d858f25a96a074142af2f (diff)
downloadkernel_samsung_smdk4412-c28265764ec6ad9995eb0c761a376ffc9f141fcd.zip
kernel_samsung_smdk4412-c28265764ec6ad9995eb0c761a376ffc9f141fcd.tar.gz
kernel_samsung_smdk4412-c28265764ec6ad9995eb0c761a376ffc9f141fcd.tar.bz2
applied patches from i9305 jb sources, updated mali to r3p0
Change-Id: Iec4bc4e2fb59e2cf5b4d25568a644d4e3719565e
Diffstat (limited to 'arch/arm/plat-s5p/reserve_mem.c')
-rw-r--r--arch/arm/plat-s5p/reserve_mem.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/arch/arm/plat-s5p/reserve_mem.c b/arch/arm/plat-s5p/reserve_mem.c
index 5b91823..a103ec9 100644
--- a/arch/arm/plat-s5p/reserve_mem.c
+++ b/arch/arm/plat-s5p/reserve_mem.c
@@ -155,14 +155,49 @@ void __init s5p_cma_region_reserve(struct cma_region *regions_normal,
}
if (paddr_last) {
+#ifndef CONFIG_DMA_CMA
while (memblock_reserve(paddr_last, size_secure))
paddr_last -= align_secure;
+#else
+ if (!reg->start) {
+ while (memblock_reserve(paddr_last,
+ size_secure))
+ paddr_last -= align_secure;
+ }
+#endif
do {
+#ifndef CONFIG_DMA_CMA
reg->start = paddr_last;
reg->reserved = 1;
paddr_last += reg->size;
-
+#else
+ if (reg->start) {
+ reg->reserved = 1;
+#if defined(CONFIG_USE_MFC_CMA) && defined(CONFIG_MACH_M0)
+ if (reg->start == 0x5C100000) {
+ if (memblock_reserve(0x5C100000,
+ 0x700000))
+ panic("memblock\n");
+ if (memblock_reserve(0x5F000000,
+ 0x200000))
+ panic("memblock\n");
+ } else {
+ if (memblock_reserve(reg->start,
+ reg->size))
+ panic("memblock\n");
+ }
+#else
+ if (memblock_reserve(reg->start,
+ reg->size))
+ panic("memblock\n");
+#endif
+ } else {
+ reg->start = paddr_last;
+ reg->reserved = 1;
+ paddr_last += reg->size;
+ }
+#endif
pr_info("S5P/CMA: "
"Reserved 0x%08x/0x%08x for '%s'\n",
reg->start, reg->size, reg->name);