rk: mem_reserve: workaround for RGA driver, which may overflow on physical memory...
author黄涛 <huangtao@rock-chips.com>
Sat, 3 Aug 2013 06:58:02 +0000 (14:58 +0800)
committer黄涛 <huangtao@rock-chips.com>
Sat, 3 Aug 2013 06:58:02 +0000 (14:58 +0800)
arch/arm/plat-rk/mem_reserve.c

index 3e8b50e89d009dae7e3bd9aeaabd8a28f8af0bf4..4017cb122d779526b2b533b89f744c10a489641f 100644 (file)
@@ -13,8 +13,12 @@ phys_addr_t __init board_mem_reserve_add(char *name, size_t size)
     phys_addr_t base = 0;
     size_t align_size = ALIGN_SZ(size, SZ_1M);
 
-    if(reserved_base_end == 0)
+    if (reserved_base_end == 0) {
         reserved_base_end = meminfo.bank[meminfo.nr_banks - 1].start + meminfo.bank[meminfo.nr_banks - 1].size;
+        /* Workaround for RGA driver, which may overflow on physical memory address parameter */
+        if (reserved_base_end > 0xA0000000)
+            reserved_base_end = 0xA0000000;
+    }
 
     reserved_size += align_size;
     base  = reserved_base_end - reserved_size;