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>
Этот коммит содержится в:

коммит произвёл
Gerrit - the friendly Code Review server

родитель
e039f16fa4
Коммит
7bc942b640
16
dsp/q6afe.c
16
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 =
|
size_t expected_size =
|
||||||
sizeof(u32) + sizeof(struct doa_tracking_mon_param);
|
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) {
|
switch (opcode) {
|
||||||
case AFE_PORT_CMDRSP_GET_PARAM_V2:
|
case AFE_PORT_CMDRSP_GET_PARAM_V2:
|
||||||
expected_size += sizeof(struct param_hdr_v1);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this_afe.doa_tracking_mon_resp.status) {
|
atomic_set(&this_afe.state, 0);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t sp_make_afe_callback(uint32_t opcode, uint32_t *payload,
|
static int32_t sp_make_afe_callback(uint32_t opcode, uint32_t *payload,
|
||||||
|
Ссылка в новой задаче
Block a user