Browse Source

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
Subrat Mishra 7 years ago
parent
commit
7c9427eb57
3 changed files with 66 additions and 1 deletions
  1. 34 0
      wmi_unified_api.h
  2. 23 0
      wmi_unified_param.h
  3. 9 1
      wmi_unified_priv.h

+ 34 - 0
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);
 			struct nan_datapath_end_indication_event **ind);
 
 
 #endif
 #endif
+
 /**
 /**
  * wmi_unified_send_btm_config() - Send BTM config to fw
  * wmi_unified_send_btm_config() - Send BTM config to fw
  * @wmi_hdl:  wmi handle
  * @wmi_hdl:  wmi handle
@@ -1929,4 +1930,37 @@ QDF_STATUS wmi_unified_extract_obss_detection_info(void *wmi_hdl,
 						   struct wmi_obss_detect_info
 						   struct wmi_obss_detect_info
 						   *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_ */
 #endif /* _WMI_UNIFIED_API_H_ */

+ 23 - 0
wmi_unified_param.h

@@ -1028,6 +1028,18 @@ struct beacon_params {
 	bool is_high_latency;
 	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
  * struct bcn_prb_template_params - beacon probe template parameter
  * @vdev_id: vdev id
  * @vdev_id: vdev id
@@ -3926,6 +3938,16 @@ struct config_ratemask_params {
 	uint32_t higher32;
 	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
  * struct peer_add_wds_entry_params - WDS peer entry add params
  * @dest_addr: Pointer to destination macaddr
  * @dest_addr: Pointer to destination macaddr
@@ -5641,6 +5663,7 @@ typedef enum {
 	wmi_report_stats_event_id,
 	wmi_report_stats_event_id,
 	wmi_dma_buf_release_event_id,
 	wmi_dma_buf_release_event_id,
 	wmi_sap_obss_detection_report_event_id,
 	wmi_sap_obss_detection_report_event_id,
+	wmi_host_swfda_event_id,
 
 
 	wmi_events_max,
 	wmi_events_max,
 } wmi_conv_event_id;
 } wmi_conv_event_id;

+ 9 - 1
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);
 		uint8_t *data, struct nan_datapath_end_rsp_event **rsp);
 QDF_STATUS (*extract_ndp_end_ind)(wmi_unified_t wmi_handle,
 QDF_STATUS (*extract_ndp_end_ind)(wmi_unified_t wmi_handle,
 		uint8_t *data, struct nan_datapath_end_indication_event **ind);
 		uint8_t *data, struct nan_datapath_end_indication_event **ind);
-
 #endif
 #endif
 QDF_STATUS (*send_btm_config)(wmi_unified_t wmi_handle,
 QDF_STATUS (*send_btm_config)(wmi_unified_t wmi_handle,
 			      struct wmi_btm_config *params);
 			      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);
 		struct wmi_obss_detection_cfg_param *obss_cfg_param);
 QDF_STATUS (*extract_obss_detection_info)(uint8_t *evt_buf,
 QDF_STATUS (*extract_obss_detection_info)(uint8_t *evt_buf,
 					  struct wmi_obss_detect_info *info);
 					  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*/
 /* Forward declartion for psoc*/