Merge "ASoC: apr: Add separate initial boot flag for ADSP and Modem"

This commit is contained in:
Linux Build Service Account 2018-06-18 16:40:17 -07:00 committed by Gerrit - the friendly Code Review server
commit 753ed36d6a

View file

@ -45,7 +45,8 @@ static void *apr_pkt_ctx;
static wait_queue_head_t dsp_wait;
static wait_queue_head_t modem_wait;
static bool is_modem_up;
static bool is_initial_boot;
static bool is_initial_modem_boot;
static bool is_initial_adsp_boot;
/* Subsystem restart: QDSP6 data, functions */
static struct workqueue_struct *apr_reset_workqueue;
static void apr_reset_deregister(struct work_struct *work);
@ -909,21 +910,28 @@ static int apr_notifier_service_cb(struct notifier_block *this,
* recovery notifications during initial boot
* up since everything is expected to be down.
*/
if (is_initial_boot) {
is_initial_boot = false;
break;
}
if (cb_data->domain == AUDIO_NOTIFIER_MODEM_DOMAIN)
if (cb_data->domain == AUDIO_NOTIFIER_MODEM_DOMAIN) {
if (is_initial_modem_boot) {
is_initial_modem_boot = false;
break;
}
apr_modem_down(opcode);
else
} else {
if (is_initial_adsp_boot) {
is_initial_adsp_boot = false;
break;
}
apr_adsp_down(opcode);
}
break;
case AUDIO_NOTIFIER_SERVICE_UP:
is_initial_boot = false;
if (cb_data->domain == AUDIO_NOTIFIER_MODEM_DOMAIN)
if (cb_data->domain == AUDIO_NOTIFIER_MODEM_DOMAIN) {
is_initial_modem_boot = false;
apr_modem_up();
else
} else {
is_initial_adsp_boot = false;
apr_adsp_up();
}
break;
default:
break;
@ -965,7 +973,8 @@ static int __init apr_init(void)
if (!apr_pkt_ctx)
pr_err("%s: Unable to create ipc log context\n", __func__);
is_initial_boot = true;
is_initial_modem_boot = true;
is_initial_adsp_boot = true;
subsys_notif_register("apr_adsp", AUDIO_NOTIFIER_ADSP_DOMAIN,
&adsp_service_nb);
subsys_notif_register("apr_modem", AUDIO_NOTIFIER_MODEM_DOMAIN,