From 7c9427eb57989cdee578d017a705f745ad0fe346 Mon Sep 17 00:00:00 2001 From: Subrat Mishra Date: Wed, 27 Sep 2017 14:41:20 +0530 Subject: [PATCH] qcacmn: Support for SWFDA Event & FD Frame tx Add new WMI EVENT, SW FILS Discovery Alert Event, to get firmware trigger to transmit FILS Discovery Frames. Add WMI command to send FD frame buffer to firwmare. Add WMI command to set FD period interval in mili seconds. Change-Id: I8cb6279ec4431b9236bd32c548228a0dc6598664 CRs-Fixed: 2118098 --- wmi_unified_api.h | 34 ++++++++++++++++++++++++++++++++++ wmi_unified_param.h | 23 +++++++++++++++++++++++ wmi_unified_priv.h | 10 +++++++++- 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/wmi_unified_api.h b/wmi_unified_api.h index 9aa0c512b2..f41feac19f 100644 --- a/wmi_unified_api.h +++ b/wmi_unified_api.h @@ -1888,6 +1888,7 @@ QDF_STATUS wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data, struct nan_datapath_end_indication_event **ind); #endif + /** * wmi_unified_send_btm_config() - Send BTM config to fw * @wmi_hdl: wmi handle @@ -1929,4 +1930,37 @@ QDF_STATUS wmi_unified_extract_obss_detection_info(void *wmi_hdl, struct wmi_obss_detect_info *info); +#ifdef WLAN_SUPPORT_FILS +/** + * wmi_unified_fils_vdev_config_send_cmd() - send FILS config cmd to fw + * @wmi_hdl: wmi handle + * @param: fils config params + * + * Return: QDF_STATUS_SUCCESS for success or error code + */ +QDF_STATUS +wmi_unified_fils_vdev_config_send_cmd(void *wmi_hdl, + struct config_fils_params *param); + +/** + * wmi_extract_swfda_vdev_id() - api to extract vdev id + * @wmi_hdl: wmi handle + * @evt_buf: pointer to event buffer + * @vdev_id: pointer to vdev id + * + * Return: QDF_STATUS_SUCCESS for success or error code + */ +QDF_STATUS wmi_extract_swfda_vdev_id(void *wmi_hdl, void *evt_buf, + uint32_t *vdev_id); + +/** + * wmi_unified_fils_discovery_send_cmd() - send FILS discovery cmd to fw + * @wmi_hdl: wmi handle + * @param: fils discovery params + * + * Return: QDF_STATUS_SUCCESS for success or error code + */ +QDF_STATUS wmi_unified_fils_discovery_send_cmd(void *wmi_hdl, + struct fd_params *param); +#endif /* WLAN_SUPPORT_FILS */ #endif /* _WMI_UNIFIED_API_H_ */ diff --git a/wmi_unified_param.h b/wmi_unified_param.h index a84d9e95ce..844792e80b 100644 --- a/wmi_unified_param.h +++ b/wmi_unified_param.h @@ -1028,6 +1028,18 @@ struct beacon_params { bool is_high_latency; }; +/** + * struct fd_params - FD cmd parameter + * @vdev_id: vdev id + * @wbuf: FD buffer + * @frame_ctrl: frame control field + */ +struct fd_params { + uint8_t vdev_id; + qdf_nbuf_t wbuf; + uint16_t frame_ctrl; +}; + /** * struct bcn_prb_template_params - beacon probe template parameter * @vdev_id: vdev id @@ -3926,6 +3938,16 @@ struct config_ratemask_params { uint32_t higher32; }; +/** + * struct config_fils_params - FILS config params + * @vdev_id: vdev id + * @fd_period: 0 - Disabled, non-zero - Period in ms (mili seconds) + */ +struct config_fils_params { + uint8_t vdev_id; + uint32_t fd_period; +}; + /** * struct peer_add_wds_entry_params - WDS peer entry add params * @dest_addr: Pointer to destination macaddr @@ -5641,6 +5663,7 @@ typedef enum { wmi_report_stats_event_id, wmi_dma_buf_release_event_id, wmi_sap_obss_detection_report_event_id, + wmi_host_swfda_event_id, wmi_events_max, } wmi_conv_event_id; diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h index 5f426c7b87..2136123d00 100644 --- a/wmi_unified_priv.h +++ b/wmi_unified_priv.h @@ -1490,7 +1490,6 @@ QDF_STATUS (*extract_ndp_end_rsp)(wmi_unified_t wmi_handle, uint8_t *data, struct nan_datapath_end_rsp_event **rsp); QDF_STATUS (*extract_ndp_end_ind)(wmi_unified_t wmi_handle, uint8_t *data, struct nan_datapath_end_indication_event **ind); - #endif QDF_STATUS (*send_btm_config)(wmi_unified_t wmi_handle, struct wmi_btm_config *params); @@ -1498,6 +1497,15 @@ QDF_STATUS (*send_obss_detection_cfg_cmd)(wmi_unified_t wmi_handle, struct wmi_obss_detection_cfg_param *obss_cfg_param); QDF_STATUS (*extract_obss_detection_info)(uint8_t *evt_buf, struct wmi_obss_detect_info *info); + +#ifdef WLAN_SUPPORT_FILS +QDF_STATUS (*send_vdev_fils_enable_cmd)(wmi_unified_t wmi_handle, + struct config_fils_params *param); +QDF_STATUS (*extract_swfda_vdev_id)(wmi_unified_t wmi_handle, void *evt_buf, + uint32_t *vdev_id); +QDF_STATUS (*send_fils_discovery_send_cmd)(wmi_unified_t wmi_handle, + struct fd_params *param); +#endif /* WLAN_SUPPORT_FILS */ }; /* Forward declartion for psoc*/