From 7df8ca1c082a174e40aed0d9cefb6fa5dc7502ad Mon Sep 17 00:00:00 2001 From: Keyur Parekh Date: Sun, 7 May 2017 08:54:47 -0700 Subject: [PATCH] qcacmn: Packet log changes for wifi3.0 Change-Id: I82462f426e4e449c5bc65331e39f07a062e8e242 --- wmi_unified_api.c | 9 +++--- wmi_unified_non_tlv.c | 7 +++-- wmi_unified_tlv.c | 72 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 77 insertions(+), 11 deletions(-) diff --git a/wmi_unified_api.c b/wmi_unified_api.c index 2835a37bfb..3d7192fd5a 100644 --- a/wmi_unified_api.c +++ b/wmi_unified_api.c @@ -648,13 +648,13 @@ QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, - WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT) + WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id) { wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; if (wmi_handle->ops->send_packet_log_enable_cmd) return wmi_handle->ops->send_packet_log_enable_cmd(wmi_handle, - PKTLOG_EVENT); + PKTLOG_EVENT, mac_id); return QDF_STATUS_E_FAILURE; } @@ -666,12 +666,13 @@ QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, * @param PKTLOG_EVENT : packet log event * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl) +QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl, uint8_t mac_id) { wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; if (wmi_handle->ops->send_packet_log_disable_cmd) - return wmi_handle->ops->send_packet_log_disable_cmd(wmi_handle); + return wmi_handle->ops->send_packet_log_disable_cmd(wmi_handle, + mac_id); return QDF_STATUS_E_FAILURE; } diff --git a/wmi_unified_non_tlv.c b/wmi_unified_non_tlv.c index f96eb49d18..224d15dd4b 100644 --- a/wmi_unified_non_tlv.c +++ b/wmi_unified_non_tlv.c @@ -1446,10 +1446,11 @@ static QDF_STATUS send_bss_chan_info_request_cmd_non_tlv(wmi_unified_t wmi_handl * * @param wmi_handle : handle to WMI. * @param PKTLOG_EVENT : packet log event + * @mac_id: mac id to have radio context * @return QDF_STATUS_SUCCESS on success and -ve on failure. */ static QDF_STATUS send_packet_log_enable_cmd_non_tlv(wmi_unified_t wmi_handle, - WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT) + WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id) { wmi_pdev_pktlog_enable_cmd *cmd; int len = 0; @@ -1474,9 +1475,11 @@ static QDF_STATUS send_packet_log_enable_cmd_non_tlv(wmi_unified_t wmi_handle, * send_packet_log_disable_cmd_non_tlv() - WMI disable packet log send function * * @param wmi_handle : handle to WMI. + * @mac_id: mac id to have radio context * @return QDF_STATUS_SUCCESS on success and -ve on failure. */ -static QDF_STATUS send_packet_log_disable_cmd_non_tlv(wmi_unified_t wmi_handle) +static QDF_STATUS send_packet_log_disable_cmd_non_tlv(wmi_unified_t wmi_handle, + uint8_t mac_id) { int len = 0; wmi_buf_t buf; diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c index 37330c066f..621369f24d 100644 --- a/wmi_unified_tlv.c +++ b/wmi_unified_tlv.c @@ -1575,17 +1575,79 @@ static QDF_STATUS send_stats_request_cmd_tlv(wmi_unified_t wmi_handle, #ifdef CONFIG_WIN /** - * send_packet_log_enable_cmd_tlv() - WMI request stats function + * send_packet_log_enable_cmd_tlv() - Send WMI command to enable packet-log * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to hold stats request parameter + * @param PKTLOG_EVENT : packet log event + * @mac_id: mac id to have radio context * * Return: 0 on success and -ve on failure. */ static QDF_STATUS send_packet_log_enable_cmd_tlv(wmi_unified_t wmi_handle, - WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT) + WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id) { - return 0; + int32_t ret; + wmi_pdev_pktlog_enable_cmd_fixed_param *cmd; + wmi_buf_t buf; + uint16_t len = sizeof(wmi_pdev_pktlog_enable_cmd_fixed_param); + + buf = wmi_buf_alloc(wmi_handle, len); + if (!buf) { + WMI_LOGE("%s: wmi_buf_alloc failed", __func__); + return -QDF_STATUS_E_NOMEM; + } + + cmd = (wmi_pdev_pktlog_enable_cmd_fixed_param *) wmi_buf_data(buf); + WMITLV_SET_HDR(&cmd->tlv_header, + WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param, + WMITLV_GET_STRUCT_TLVLEN + (wmi_pdev_pktlog_enable_cmd_fixed_param)); + cmd->evlist = PKTLOG_EVENT; + cmd->pdev_id = mac_id; + ret = wmi_unified_cmd_send(wmi_handle, buf, len, + WMI_PDEV_PKTLOG_ENABLE_CMDID); + if (ret) { + WMI_LOGE("Failed to send pktlog enable cmd to FW =%d", ret); + wmi_buf_free(buf); + } + + return ret; +} + +/** + * send_packet_log_disable_cmd_tlv() - Send WMI command to disable packet-log + * @param wmi_handle : handle to WMI. + * @mac_id: mac id to have radio context + * + * Return: 0 on success and -ve on failure. + */ +static QDF_STATUS send_packet_log_disable_cmd_tlv(wmi_unified_t wmi_handle, + WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id) +{ + int32_t ret; + wmi_pdev_pktlog_disable_cmd_fixed_param *cmd; + wmi_buf_t buf; + uint16_t len = sizeof(wmi_pdev_pktlog_disable_cmd_fixed_param); + + buf = wmi_buf_alloc(wmi_handle, len); + if (!buf) { + WMI_LOGE("%s: wmi_buf_alloc failed", __func__); + return -QDF_STATUS_E_NOMEM; + } + + cmd = (wmi_pdev_pktlog_disable_cmd_fixed_param *) wmi_buf_data(buf); + WMITLV_SET_HDR(&cmd->tlv_header, + WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param, + WMITLV_GET_STRUCT_TLVLEN + (wmi_pdev_pktlog_disable_cmd_fixed_param)); + cmd->pdev_id = mac_id; + ret = wmi_unified_cmd_send(wmi_handle, buf, len, + WMI_PDEV_PKTLOG_DISABLE_CMDID); + if (ret) { + WMI_LOGE("Failed to send pktlog disable cmd to FW =%d", ret); + wmi_buf_free(buf); + } + + return ret; } #else /**