rk: ion: rk3288/fpga reserve cma memory for ion from dts
authorCMY <cmy@rock-chips.com>
Thu, 13 Mar 2014 03:05:00 +0000 (11:05 +0800)
committerCMY <cmy@rock-chips.com>
Thu, 13 Mar 2014 03:23:34 +0000 (11:23 +0800)
arch/arm/boot/dts/rk3188.dtsi
arch/arm/boot/dts/rk3288-fpga.dts
arch/arm/boot/dts/rk3288.dtsi
arch/arm/mach-rockchip/common.c [changed mode: 0644->0755]
arch/arm/mach-rockchip/rk3188.c
arch/arm/mach-rockchip/rk3288.c [changed mode: 0644->0755]
include/linux/rockchip/common.h

index 95580910032c0dac3049f32ecc0d47bb9ca12d5f..70880db67d48a88ea4f529d18de0bb62a0950785 100755 (executable)
                        };
                };
        };
-       ion: ion{
+       ion{
                compatible = "rockchip,ion";
                #address-cells = <1>;
                #size-cells = <0>;
index 6a7639f89604254e5f95e1f73990ceeab0e4a1bc..73c5487f2e47c57ffdfac97aa10393dab1e95aac 100755 (executable)
                pa_enable_time = <1000>;
        };
 
+       ion {
+               compatible = "rockchip,ion";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               rockchip,ion-heap@1 { /* CMA HEAP */
+                       compatible = "rockchip,ion-reserve";
+                       reg = <1>;
+                       memory-reservation = <0x00000000 0x04000000>; /* 64MB */
+               };
+               rockchip,ion-heap@3 { /* SYSTEM HEAP */
+                       reg = <3>;
+               };
+       };
 };
 
 &fb {
index fa5e0c16543bda7cb2c1be9b9968ef300b95f5ac..974388867b40d5bab29f9a78028e08108b3c1fde 100755 (executable)
        //      pinctrl-0 = <&spdif_tx>;
        };
 
-       ion: ion {
+       ion {
                compatible = "rockchip,ion";
                #address-cells = <1>;
                #size-cells = <0>;
old mode 100644 (file)
new mode 100755 (executable)
index 9ab4d18..14dfcf7
@@ -19,6 +19,7 @@
 #include <linux/kernel.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
+#include <linux/of_fdt.h>
 #include <asm/hardware/cache-l2x0.h>
 #include <linux/rockchip/common.h>
 #include "cpu_axi.h"
@@ -220,3 +221,11 @@ int (*ddr_change_freq)(uint32_t nMHz) = NULL;
 long (*ddr_round_rate)(uint32_t nMHz) = NULL;
 void (*ddr_set_auto_self_refresh)(bool en) = NULL;
 
+extern int __init rockchip_ion_find_reserve_mem(unsigned long node,
+                               const char *uname, int depth, void *data);
+void __init rockchip_ion_reserve(void)
+{
+       printk("%s\n", __func__);
+       of_scan_flat_dt(rockchip_ion_find_reserve_mem, NULL);
+}
+
index 1871cf6dd9aeddbc13e724232faa447070e19f61..ebcb004b7a92c25ed2707cb25e8219f408bf24b0 100755 (executable)
@@ -21,7 +21,6 @@
 #include <linux/kernel.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
-#include <linux/of_fdt.h>
 #include <linux/rockchip/dvfs.h>
 #include <linux/rockchip/common.h>
 #include <linux/rockchip/cpu.h>
@@ -263,12 +262,10 @@ static void __init rk3188_dt_init_timer(void)
        of_dvfs_init();
 }
 
-extern int __init rockchip_ion_find_reserve_mem(unsigned long node,
-                               const char *uname, int depth, void *data);
 static void __init rk3188_reserve(void)
 {
-       printk("%s\n", __func__);
-       of_scan_flat_dt(rockchip_ion_find_reserve_mem, NULL);
+       /* reserve memory for ION */
+       rockchip_ion_reserve();
 }
 
 static const char * const rk3188_dt_compat[] __initconst = {
old mode 100644 (file)
new mode 100755 (executable)
index d1aaeab..c67ad63
@@ -216,6 +216,12 @@ static void __init rk3288_dt_init_timer(void)
        of_dvfs_init();
 }
 
+static void __init rk3288_reserve(void)
+{
+       /* reserve memory for ION */
+       rockchip_ion_reserve();
+}
+
 static const char * const rk3288_dt_compat[] __initconst = {
        "rockchip,rk3288",
        NULL,
@@ -241,6 +247,7 @@ DT_MACHINE_START(RK3288_DT, "RK30board")
        .init_time      = rk3288_dt_init_timer,
        .dt_compat      = rk3288_dt_compat,
        .init_late      = rockchip_suspend_init,
+       .reserve        = rk3288_reserve,
        .restart        = rk3288_restart,
 MACHINE_END
 
index 31b00d6479cbe7b728c6f8e4e4a00c3c12fa8bec..9dbbe4ef8a2f2e482ff4707f8385b1c566a54aa6 100644 (file)
@@ -35,5 +35,6 @@ extern int rockchip_boot_mode(void);
 extern void __init rockchip_boot_mode_init(u32 flag, u32 mode);
 extern void rockchip_restart_get_boot_mode(const char *cmd, u32 *flag, u32 *mode);
 extern void __init rockchip_suspend_init(void);
+extern void __init rockchip_ion_reserve(void);
 
 #endif