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

Commit b2108864 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: soc: enable SSR and selective registration of services"

parents bcf06677 149ed49f
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -327,9 +327,12 @@ struct apr_svc *apr_register(char *dest, char *svc_name, apr_fn svc_fn,

	if (!strcmp(dest, "ADSP"))
		domain_id = APR_DOMAIN_ADSP;
	else if (!strcmp(dest, "MODEM"))
	else if (!strcmp(dest, "MODEM")) {
		/* Register voice services if destination permits */
		if (!apr_register_voice_svc())
			goto done;
		domain_id = APR_DOMAIN_MODEM;
	else {
	} else {
		pr_err("APR: wrong destination\n");
		goto done;
	}
@@ -671,7 +674,7 @@ void apr_reset(void *handle)
}

/* Dispatch the Reset events to Modem and audio clients */
void dispatch_event(unsigned long code, unsigned short proc)
void dispatch_event(unsigned long code, uint16_t proc)
{
	struct apr_client *apr_client;
	struct apr_client_data data;
@@ -681,7 +684,9 @@ void dispatch_event(unsigned long code, unsigned short proc)

	data.opcode = RESET_EVENTS;
	data.reset_event = code;
	data.reset_proc = proc;

	/* Service domain can be different from the processor */
	data.reset_proc = apr_get_reset_domain(proc);

	clnt = APR_CLIENT_AUDIO;
	apr_client = &client[proc][clnt];
+11 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2012, 2013 The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2014 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
@@ -58,3 +58,13 @@ void subsys_notif_register(struct notifier_block *mod_notif,
	subsys_notif_register_notifier("modem", mod_notif);
	subsys_notif_register_notifier(apr_get_lpass_subsys_name(), lp_notif);
}

uint16_t apr_get_reset_domain(uint16_t proc)
{
	return proc;
}

bool apr_register_voice_svc()
{
	return true;
}
+9 −0
Original line number Diff line number Diff line
@@ -42,3 +42,12 @@ void subsys_notif_register(struct notifier_block *mod_notif,
	subsys_notif_register_notifier("modem", mod_notif);
}

uint16_t apr_get_reset_domain(uint16_t proc)
{
	return APR_DEST_QDSP6;
}

bool apr_register_voice_svc()
{
	return false;
}
+2 −0
Original line number Diff line number Diff line
@@ -174,4 +174,6 @@ enum apr_subsys_state apr_get_q6_state(void);
int apr_set_q6_state(enum apr_subsys_state state);
void apr_set_subsys_state(void);
const char *apr_get_lpass_subsys_name(void);
bool apr_register_voice_svc(void);
uint16_t apr_get_reset_domain(uint16_t proc);
#endif