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

Commit 2b817fc0 authored by Preeti Nagar's avatar Preeti Nagar Committed by Gerrit - the friendly Code Review server
Browse files

seemp: Freeing el2 shared memory



Mechanism for QSSP kernel to notify QHEE that
shared memory is going to be freed.

Change-Id: I592b115b42f6b5b3afdcc6b5131da7f6ea380edc
Signed-off-by: default avatarPreeti Nagar <pnagar@codeaurora.org>
parent 31c09dc0
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -34,6 +34,8 @@
#define KP_EL2_REPORT_REVISION 0x01000101
#define INVALID_PID -1

#define EL2_SCM_ID2 0x02001905

static struct seemp_logk_dev *slogk_dev;

static unsigned int ring_sz = FOUR_MB;
@@ -780,8 +782,24 @@ __init int seemp_logk_init(void)

__exit void seemp_logk_cleanup(void)
{
	int ret;

	dev_t devno = MKDEV(slogk_dev->major, slogk_dev->minor);

	if (el2_shared_mem != NULL) {
		struct scm_desc desc = {0};

		desc.arginfo = SCM_ARGS(0);
		ret = scm_call2(EL2_SCM_ID2, &desc);
		if (ret || desc.ret[0] || desc.ret[1]) {
			pr_err("SCM call failed with ret val = %d %d %d\n",
			ret, (int)desc.ret[0], (int)desc.ret[1]);
		} else {
			free_page((unsigned long) el2_shared_mem);
			el2_shared_mem = NULL;
		}
	}

	if (rtic_thread) {
		kthread_stop(rtic_thread);
		rtic_thread = NULL;