From 7bc942b64025b92574f140f27fee68b3cb27ddf5 Mon Sep 17 00:00:00 2001 From: Surendar Karka Date: Fri, 22 Feb 2019 17:21:13 +0530 Subject: [PATCH] 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 --- dsp/q6afe.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/dsp/q6afe.c b/dsp/q6afe.c index 0002d82a125c..5f953ae7ab2d 100644 --- a/dsp/q6afe.c +++ b/dsp/q6afe.c @@ -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,