Loading drivers/soc/qcom/memory_dump_v2.c +34 −5 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ static int msm_dump_data_add_minidump(struct msm_dump_entry *entry) return msm_minidump_add_region(&md_entry); } int msm_dump_data_register(enum msm_dump_table_ids id, static int register_dump_table_entry(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { struct msm_dump_entry *e; Loading @@ -131,13 +131,42 @@ int msm_dump_data_register(enum msm_dump_table_ids id, table->num_entries++; dmac_flush_range(table, (void *)table + sizeof(struct msm_dump_table)); return 0; } /** * msm_dump_data_register - register to dump data and minidump framework * @id: ID of the dump table. * @entry: dump entry to be registered * This api will register the entry passed to dump table and minidump table */ int msm_dump_data_register(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { int ret; ret = register_dump_table_entry(id, entry); if (!ret) if (msm_dump_data_add_minidump(entry)) pr_err("Failed to add entry in Minidump table\n"); return 0; return ret; } EXPORT_SYMBOL(msm_dump_data_register); /** * msm_dump_data_register_nominidump - register to dump data framework * @id: ID of the dump table. * @entry: dump entry to be registered * This api will register the entry passed to dump table only */ int msm_dump_data_register_nominidump(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { return register_dump_table_entry(id, entry); } EXPORT_SYMBOL(msm_dump_data_register_nominidump); static int __init init_memory_dump(void) { struct msm_dump_table *table; Loading include/soc/qcom/memory_dump.h +8 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2012, 2014-2017, The Linux Foundation. All rights reserved. * Copyright (c) 2012, 2014-2017, 2019, The Linux Foundation. All rights reserved. */ #ifndef __MSM_MEMORY_DUMP_H Loading Loading @@ -114,12 +114,19 @@ struct msm_dump_entry { #ifdef CONFIG_QCOM_MEMORY_DUMP_V2 extern int msm_dump_data_register(enum msm_dump_table_ids id, struct msm_dump_entry *entry); extern int msm_dump_data_register_nominidump(enum msm_dump_table_ids id, struct msm_dump_entry *entry); #else static inline int msm_dump_data_register(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { return -EINVAL; } static inline int msm_dump_data_register_nominidump(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { return -EINVAL; } #endif #endif Loading
drivers/soc/qcom/memory_dump_v2.c +34 −5 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ static int msm_dump_data_add_minidump(struct msm_dump_entry *entry) return msm_minidump_add_region(&md_entry); } int msm_dump_data_register(enum msm_dump_table_ids id, static int register_dump_table_entry(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { struct msm_dump_entry *e; Loading @@ -131,13 +131,42 @@ int msm_dump_data_register(enum msm_dump_table_ids id, table->num_entries++; dmac_flush_range(table, (void *)table + sizeof(struct msm_dump_table)); return 0; } /** * msm_dump_data_register - register to dump data and minidump framework * @id: ID of the dump table. * @entry: dump entry to be registered * This api will register the entry passed to dump table and minidump table */ int msm_dump_data_register(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { int ret; ret = register_dump_table_entry(id, entry); if (!ret) if (msm_dump_data_add_minidump(entry)) pr_err("Failed to add entry in Minidump table\n"); return 0; return ret; } EXPORT_SYMBOL(msm_dump_data_register); /** * msm_dump_data_register_nominidump - register to dump data framework * @id: ID of the dump table. * @entry: dump entry to be registered * This api will register the entry passed to dump table only */ int msm_dump_data_register_nominidump(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { return register_dump_table_entry(id, entry); } EXPORT_SYMBOL(msm_dump_data_register_nominidump); static int __init init_memory_dump(void) { struct msm_dump_table *table; Loading
include/soc/qcom/memory_dump.h +8 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2012, 2014-2017, The Linux Foundation. All rights reserved. * Copyright (c) 2012, 2014-2017, 2019, The Linux Foundation. All rights reserved. */ #ifndef __MSM_MEMORY_DUMP_H Loading Loading @@ -114,12 +114,19 @@ struct msm_dump_entry { #ifdef CONFIG_QCOM_MEMORY_DUMP_V2 extern int msm_dump_data_register(enum msm_dump_table_ids id, struct msm_dump_entry *entry); extern int msm_dump_data_register_nominidump(enum msm_dump_table_ids id, struct msm_dump_entry *entry); #else static inline int msm_dump_data_register(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { return -EINVAL; } static inline int msm_dump_data_register_nominidump(enum msm_dump_table_ids id, struct msm_dump_entry *entry) { return -EINVAL; } #endif #endif