dsp: update error handling for Doa Tracking Monitor

AFE callback payload response for param id FFV_DOA_TRACKING_MONITOR
is not handled properly. This is resulting in 2sec
of wait event timeout delay. Updating the state event and
status event based on the payload response. This decreases
hal load time by 2sec.

Change-Id: If960ee14e264b3fe444463b47878d29aaee5e63f
Signed-off-by: Surendar Karka <skarka@codeaurora.org>
This commit is contained in:
Surendar Karka 2019-02-22 17:21:13 +05:30 committed by Gerrit - the friendly Code Review server
parent e039f16fa4
commit 7bc942b640

View File

@ -345,6 +345,14 @@ static void doa_tracking_mon_afe_cb_handler(uint32_t opcode, uint32_t *payload,
size_t expected_size =
sizeof(u32) + sizeof(struct doa_tracking_mon_param);
if (payload[0]) {
atomic_set(&this_afe.status, payload[0]);
atomic_set(&this_afe.state, 0);
pr_err("%s: doa_tracking_mon_resp status: %d payload size %d\n",
__func__, payload[0], payload_size);
return;
}
switch (opcode) {
case AFE_PORT_CMDRSP_GET_PARAM_V2:
expected_size += sizeof(struct param_hdr_v1);
@ -378,13 +386,7 @@ static void doa_tracking_mon_afe_cb_handler(uint32_t opcode, uint32_t *payload,
return;
}
if (!this_afe.doa_tracking_mon_resp.status) {
atomic_set(&this_afe.state, 0);
} else {
pr_debug("%s: doa_tracking_mon_resp status: %d\n", __func__,
this_afe.doa_tracking_mon_resp.status);
atomic_set(&this_afe.state, -1);
}
atomic_set(&this_afe.state, 0);
}
static int32_t sp_make_afe_callback(uint32_t opcode, uint32_t *payload,