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

Commit d7f08923 authored by Avaneesh Kumar Dwivedi's avatar Avaneesh Kumar Dwivedi Committed by Isaac J. Manjarres
Browse files

soc: qcom: Create additional ramdump device node for SSR minidump



This change adds a new ramdump device node which is only used to collect
SSR minidump by ramdump process.

Change-Id: I197d135137ce76c09f9e08406cde67c45fd75409
Signed-off-by: default avatarAvaneesh Kumar Dwivedi <akdwived@codeaurora.org>
[isaacm@codeaurora.org: Resolve trivial merge conflicts]
Signed-off-by: default avatarIsaac J. Manjarres <isaacm@codeaurora.org>
parent 9b817971
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -213,7 +213,8 @@ static int pil_do_minidump(struct pil_desc *desc, void *ramdump_dev)
 * Calls the ramdump API with a list of segments generated from the addresses
 * that the descriptor corresponds to.
 */
int pil_do_ramdump(struct pil_desc *desc, void *ramdump_dev)
int pil_do_ramdump(struct pil_desc *desc,
		   void *ramdump_dev, void *minidump_dev)
{
	struct ramdump_segment *ramdump_segs, *s;
	struct pil_priv *priv = desc->priv;
@@ -244,7 +245,7 @@ int pil_do_ramdump(struct pil_desc *desc, void *ramdump_dev)
				MD_SS_ENCR_DONE) {
				pr_debug("Dumping Minidump for %s\n",
					desc->name);
				return pil_do_minidump(desc, ramdump_dev);
				return pil_do_minidump(desc, minidump_dev);
			}
			pr_debug("Minidump aborted for %s\n", desc->name);
			return -EINVAL;
+4 −2
Original line number Diff line number Diff line
@@ -112,7 +112,8 @@ extern void pil_shutdown(struct pil_desc *desc);
extern void pil_free_memory(struct pil_desc *desc);
extern void pil_desc_release(struct pil_desc *desc);
extern phys_addr_t pil_get_entry_addr(struct pil_desc *desc);
extern int pil_do_ramdump(struct pil_desc *desc, void *ramdump_dev);
extern int pil_do_ramdump(struct pil_desc *desc, void *ramdump_dev,
			  void *minidump_dev);
extern int pil_assign_mem_to_subsys(struct pil_desc *desc, phys_addr_t addr,
						size_t size);
extern int pil_assign_mem_to_linux(struct pil_desc *desc, phys_addr_t addr,
@@ -132,7 +133,8 @@ static inline phys_addr_t pil_get_entry_addr(struct pil_desc *desc)
{
	return 0;
}
static inline int pil_do_ramdump(struct pil_desc *desc, void *ramdump_dev)
static inline int pil_do_ramdump(struct pil_desc *desc,
		void *ramdump_dev, void *minidump_dev)
{
	return 0;
}
+2 −2
Original line number Diff line number Diff line
/* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -864,7 +864,7 @@ static int subsys_ramdump(int enable, const struct subsys_desc *subsys)
	if (!enable)
		return 0;

	return pil_do_ramdump(&d->desc, d->ramdump_dev);
	return pil_do_ramdump(&d->desc, d->ramdump_dev, NULL);
}

static void subsys_free_memory(const struct subsys_desc *subsys)