Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15224a59 authored by Rishabh Bhatnagar's avatar Rishabh Bhatnagar
Browse files

drivers: soc: Provide separate api for ramdump registration



Currently all clients registering to dump table framework are
implicitly registered for minidump framework. Provide an api to
exclusively register for ramdumps.

Change-Id: I0e8eee366d898699d0354c9abb326822ba452ef0
Signed-off-by: default avatarRishabh Bhatnagar <rishabhb@codeaurora.org>
parent a43a8828
Loading
Loading
Loading
Loading
+34 −5
Original line number Diff line number Diff line
@@ -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;
@@ -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;
+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
@@ -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