summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/common.c
diff options
context:
space:
mode:
authorAjay Nandakumar <anandakumarm@nvidia.com>2014-01-29 15:15:22 +0530
committerSachin Nikam <snikam@nvidia.com>2014-02-09 22:53:40 -0800
commitf90bd3fe3ecee42c1f2db4b5325e31fe33ff39f3 (patch)
tree997140c5630cd127c601ad6e3c81368cdba5552c /arch/arm/mach-tegra/common.c
parent0802375a7853070ef45339703ad4bd9f5dfe091d (diff)
ARM: tegra: reserve memory for ramoops by default
Reserving memory of 1MB for ramoops by default in tegra_reserve when PSTORE configs are enabled. This way we can enable ramoops on all platforms by just enabling the configs. Bug 1258617 Change-Id: I2074c553cc9c32bca133bc8eb36eb03dc12fbbe1 Signed-off-by: Sumit Singh <sumsingh@nvidia.com> Reviewed-on: http://git-master/r/361425 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com> Tested-by: Sachin Nikam <snikam@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/common.c')
-rw-r--r--arch/arm/mach-tegra/common.c65
1 files changed, 35 insertions, 30 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 5d3912b226a2..b69f447f26b0 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -1825,6 +1825,38 @@ void __tegra_clear_framebuffer(struct platform_device *pdev,
iounmap(to_io);
}
+#ifdef CONFIG_PSTORE_RAM
+static struct ramoops_platform_data ramoops_data;
+
+static struct platform_device ramoops_dev = {
+ .name = "ramoops",
+ .dev = {
+ .platform_data = &ramoops_data,
+ },
+};
+
+
+static void __init tegra_reserve_ramoops_memory(unsigned long reserve_size)
+{
+ ramoops_data.mem_size = reserve_size;
+ ramoops_data.mem_address = memblock_end_of_4G() - reserve_size;
+ ramoops_data.console_size = reserve_size;
+ ramoops_data.dump_oops = 1;
+ memblock_reserve(ramoops_data.mem_address, ramoops_data.mem_size);
+}
+
+static int __init tegra_register_ramoops_device(void)
+{
+ int ret = platform_device_register(&ramoops_dev);
+ if (ret) {
+ pr_info("Unable to register ramoops platform device\n");
+ return ret;
+ }
+ return ret;
+}
+core_initcall(tegra_register_ramoops_device);
+#endif
+
void __init tegra_reserve(unsigned long carveout_size, unsigned long fb_size,
unsigned long fb2_size)
{
@@ -2116,6 +2148,9 @@ void __init tegra_reserve(unsigned long carveout_size, unsigned long fb_size,
#endif
tegra_fb_linear_set(map);
+#ifdef CONFIG_PSTORE_RAM
+ tegra_reserve_ramoops_memory(SZ_1M);
+#endif
}
void tegra_get_fb_resource(struct resource *fb_res)
@@ -2132,37 +2167,7 @@ void tegra_get_fb2_resource(struct resource *fb2_res)
(resource_size_t) tegra_fb2_size - 1;
}
-#ifdef CONFIG_PSTORE_RAM
-static struct ramoops_platform_data ramoops_data;
-
-static struct platform_device ramoops_dev = {
- .name = "ramoops",
- .dev = {
- .platform_data = &ramoops_data,
- },
-};
-
-void __init tegra_reserve_ramoops_memory(unsigned long reserve_size)
-{
- ramoops_data.mem_size = reserve_size;
- ramoops_data.mem_address = memblock_end_of_4G() - reserve_size;
- ramoops_data.console_size = reserve_size;
- ramoops_data.dump_oops = 1;
- memblock_reserve(ramoops_data.mem_address, ramoops_data.mem_size);
-}
-
-static int __init tegra_register_ramoops_device(void)
-{
- int ret = platform_device_register(&ramoops_dev);
- if (ret) {
- pr_info("Unable to register ramoops platform device\n");
- return ret;
- }
- return ret;
-}
-core_initcall(tegra_register_ramoops_device);
-#endif
int __init tegra_register_fuse(void)
{