Merge tag 'lsk-v3.10-android-15.01'
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / mm / init.c
index 109a0442b6a1766d182aea772e03f7d3e51ef1e6..ea0c0812ef8e6dd48da001737fb2d375c031f0ed 100644 (file)
@@ -143,6 +143,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;
@@ -183,6 +199,9 @@ void __init arm64_memblock_init(void)
        }
 
        early_init_fdt_scan_reserved_mem();
+#ifdef CONFIG_ARCH_ROCKCHIP
+       rockchip_ion_reserve_bit64();
+#endif
 
        /* 4GB maximum for 32-bit only capable devices */
        if (IS_ENABLED(CONFIG_ZONE_DMA))