From ff074e95c0e34d30e7aa7c816de07cf048ed9aed Mon Sep 17 00:00:00 2001 From: Gyanranjan Hazarika Date: Thu, 4 Oct 2018 11:26:20 -0700 Subject: [PATCH] qcacmn: changes for BSS Color Enahancement FR40903 Added WMI extract API for beacon_tx_status_event Change-Id: I8516184d5734672d56553fb232bd8e84d89ded58 CRs-fixed: 2242109 --- wmi_unified_api.c | 14 ++++++++++++++ wmi_unified_tlv.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/wmi_unified_api.c b/wmi_unified_api.c index 096437887f..362b1eecd0 100644 --- a/wmi_unified_api.c +++ b/wmi_unified_api.c @@ -6165,6 +6165,20 @@ wmi_extract_roam_scan_stats_res_evt(wmi_unified_t wmi, void *evt_buf, return QDF_STATUS_E_FAILURE; } +QDF_STATUS +wmi_extract_offload_bcn_tx_status_evt(void *wmi_hdl, void *evt_buf, + uint32_t *vdev_id, + uint32_t *tx_status) { + wmi_unified_t wmi = (wmi_unified_t)wmi_hdl; + + if (wmi->ops->extract_offload_bcn_tx_status_evt) + return wmi->ops->extract_offload_bcn_tx_status_evt(wmi, + evt_buf, + vdev_id, tx_status); + + return QDF_STATUS_E_FAILURE; +} + #ifdef OBSS_PD QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_cmd(void *wmi_hdl, diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c index 66edc27eeb..906d805bc8 100644 --- a/wmi_unified_tlv.c +++ b/wmi_unified_tlv.c @@ -18939,6 +18939,35 @@ extract_roam_scan_stats_res_evt_tlv(wmi_unified_t wmi_handle, void *evt_buf, return QDF_STATUS_SUCCESS; } +/** + * extract_offload_bcn_tx_status_evt() - Extract beacon-tx status event + * @wmi_handle: wmi handle + * @evt_buf: pointer to event buffer + * @vdev_id: output pointer to hold vdev id + * @tx_status: output pointer to hold the tx_status + * + * Return: QDF_STATUS + */ +static QDF_STATUS extract_offload_bcn_tx_status_evt(wmi_unified_t wmi_handle, + void *evt_buf, + uint32_t *vdev_id, + uint32_t *tx_status) { + WMI_OFFLOAD_BCN_TX_STATUS_EVENTID_param_tlvs *param_buf; + wmi_offload_bcn_tx_status_event_fixed_param *bcn_tx_status_event; + + param_buf = (WMI_OFFLOAD_BCN_TX_STATUS_EVENTID_param_tlvs *)evt_buf; + if (!param_buf) { + WMI_LOGE("Invalid offload bcn tx status event buffer"); + return QDF_STATUS_E_INVAL; + } + + bcn_tx_status_event = param_buf->fixed_param; + *vdev_id = bcn_tx_status_event->vdev_id; + *tx_status = bcn_tx_status_event->tx_status; + + return QDF_STATUS_SUCCESS; +} + /** * send_offload_11k_cmd_tlv() - send wmi cmd with 11k offload params * @wmi_handle: wmi handler @@ -19214,6 +19243,13 @@ static QDF_STATUS send_obss_color_collision_cfg_cmd_tlv( return QDF_STATUS_E_FAILURE; } + WMI_LOGD("%s: evt_type: %d vdev id: %d current_bss_color: %d\n" + "detection_period_ms: %d scan_period_ms: %d\n" + "free_slot_expiry_timer_ms: %d", + __func__, cmd->evt_type, cmd->vdev_id, cmd->current_bss_color, + cmd->detection_period_ms, cmd->scan_period_ms, + cmd->free_slot_expiry_time_ms); + wmi_mtrace(WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID, cmd->vdev_id, 0); if (wmi_unified_cmd_send(wmi_handle, buf, len, WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID)) { @@ -19254,9 +19290,10 @@ static QDF_STATUS extract_obss_color_collision_info_tlv(uint8_t *evt_buf, fix_param = param_buf->fixed_param; info->vdev_id = fix_param->vdev_id; - info->obss_color_bitmap_bit0to31 = fix_param->bss_color_bitmap_bit0to31; + info->obss_color_bitmap_bit0to31 = + fix_param->bss_color_bitmap_bit0to31; info->obss_color_bitmap_bit32to63 = - fix_param->bss_color_bitmap_bit32to63; + fix_param->bss_color_bitmap_bit32to63; switch (fix_param->evt_type) { case WMI_BSS_COLOR_COLLISION_DISABLE: @@ -19859,6 +19896,7 @@ struct wmi_ops tlv_ops = { #ifdef OBSS_PD .send_obss_spatial_reuse_set = send_obss_spatial_reuse_set_cmd_tlv, #endif + .extract_offload_bcn_tx_status_evt = extract_offload_bcn_tx_status_evt, }; /**