ion: ino reserve
authorhjc <hjc@rock-chips.com>
Sat, 13 Dec 2014 09:37:08 +0000 (17:37 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Sat, 13 Dec 2014 10:02:46 +0000 (18:02 +0800)
Signed-off-by: hjc <hjc@rock-chips.com>
arch/arm64/mm/init.c

index a725447ec8e003f090de16f40988c57ef8c9039f..1adb46528fb27246a5417e3ceb970341c8c575aa 100644 (file)
@@ -134,6 +134,22 @@ static void arm64_memory_present(void)
 }
 #endif
 
+#ifdef CONFIG_ARCH_ROCKCHIP
+extern struct ion_platform_data ion_pdata;
+extern void __init ion_reserve(struct ion_platform_data *data);
+extern int __init rockchip_ion_find_heap(unsigned long node,
+                               const char *uname, int depth, void *data);
+
+void __init rockchip_ion_reserve_bit64(void)
+{
+#ifdef CONFIG_ION_ROCKCHIP
+       printk("%s\n", __func__);
+       of_scan_flat_dt(rockchip_ion_find_heap, (void*)&ion_pdata);
+       ion_reserve(&ion_pdata);
+#endif
+}
+#endif
+
 void __init arm64_memblock_init(void)
 {
        u64 *reserve_map, base, size;
@@ -173,6 +189,9 @@ void __init arm64_memblock_init(void)
        }
 
        early_init_fdt_scan_reserved_mem();
+#ifdef CONFIG_ARCH_ROCKCHIP
+       rockchip_ion_reserve_bit64();
+#endif
        dma_contiguous_reserve(0);
 
        memblock_allow_resize();