From 8a339e8a870e68c7828d79bb314d92c82bedb543 Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Fri, 3 Aug 2018 12:00:12 +0530 Subject: [PATCH] qcacmn: Enable ML logging for wmi_control_rx Enable ML logging in wmi_control_rx and capture all responses from firmware. This would result in knowledge of whether the wmi_response or any wmi_event was received by the host. Change-Id: I0206a5b9bd357d06a8621747473dedecaa1779f2 CRs-Fixed: 2306047 --- wmi/src/wmi_unified.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index b273625d51..f070c17f2b 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -1966,6 +1966,33 @@ static struct wmi_unified *wmi_get_pdev_ep(struct wmi_soc *soc, return soc->wmi_pdev[i]; } +/** + * wmi_mtrace_rx() - Wrappper function for qdf_mtrace api + * @message_id: 32-Bit Wmi message ID + * @vdev_id: Vdev ID + * @data: Actual message contents + * + * This function converts the 32-bit WMI message ID in 15-bit message ID + * format for qdf_mtrace as in qdf_mtrace message there are only 15 + * bits reserved for message ID. + * out of these 15-bits, 8-bits (From LSB) specifies the WMI_GRP_ID + * and remaining 7-bits specifies the actual WMI command. With this + * notation there can be maximum 256 groups and each group can have + * max 128 commands can be supported. + * + * Return: None + */ +static void wmi_mtrace_rx(uint32_t message_id, uint16_t vdev_id, uint32_t data) +{ + uint16_t mtrace_message_id; + + mtrace_message_id = QDF_WMI_MTRACE_CMD_ID(message_id) | + (QDF_WMI_MTRACE_GRP_ID(message_id) << + QDF_WMI_MTRACE_CMD_NUM_BITS); + qdf_mtrace(QDF_MODULE_ID_WMI, QDF_MODULE_ID_WMA, + mtrace_message_id, vdev_id, data); +} + /** * wmi_control_rx() - process fw events callbacks * @ctx: handle to wmi @@ -2001,6 +2028,7 @@ static void wmi_control_rx(void *ctx, HTC_PACKET *htc_packet) qdf_nbuf_free(evt_buf); return; } + wmi_mtrace_rx(id, 0xFF, idx); qdf_spin_lock_bh(&soc->ctx_lock); exec_ctx = wmi_handle->ctx[idx]; qdf_spin_unlock_bh(&soc->ctx_lock);