diff options
author | Ajay Nandakumar <anandakumarm@nvidia.com> | 2014-01-29 15:15:22 +0530 |
---|---|---|
committer | Sachin Nikam <snikam@nvidia.com> | 2014-02-09 22:53:40 -0800 |
commit | f90bd3fe3ecee42c1f2db4b5325e31fe33ff39f3 (patch) | |
tree | 997140c5630cd127c601ad6e3c81368cdba5552c /arch/arm/mach-tegra/common.c | |
parent | 0802375a7853070ef45339703ad4bd9f5dfe091d (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.c | 65 |
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) { |