ソースを参照

qcacmn: Add tlv formation of wmi main commands in common wmi layer

Move tlv formation of wmi main commands from umac to
common wmi layer.

Change-Id: I010396bfc94020e1eee7baa3ab46b9a35b101b92
CRs-Fixed: 983619
Govind Singh 9 年 前
コミット
a2e792e924

+ 71 - 0
wmi/inc/wmi_unified_api.h

@@ -657,4 +657,75 @@ CDF_STATUS wmi_unified_send_init_cmd(void *wmi_hdl,
 		bool action);
 
 CDF_STATUS wmi_unified_send_saved_init_cmd(void *wmi_hdl);
+
+CDF_STATUS wmi_unified_set_base_macaddr_indicate_cmd(void *wmi_hdl,
+					 uint8_t *custom_addr);
+
+CDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl,
+		uint8_t *event,
+		uint32_t len);
+
+CDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl,
+		struct wmi_wifi_start_log *start_log);
+
+CDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl);
+
+CDF_STATUS wmi_unified_soc_set_pcl_cmd(void *wmi_hdl,
+				struct wmi_pcl_list *msg);
+
+CDF_STATUS wmi_unified_soc_set_hw_mode_cmd(void *wmi_hdl,
+				uint32_t hw_mode_index);
+
+CDF_STATUS wmi_unified_soc_set_dual_mac_config_cmd(void *wmi_hdl,
+		struct wmi_dual_mac_config *msg);
+
+CDF_STATUS wmi_unified_enable_arp_ns_offload_cmd(void *wmi_hdl,
+			   struct host_offload_req_param *param, bool arp_only,
+			   uint8_t vdev_id);
+
+CDF_STATUS wmi_unified_set_led_flashing_cmd(void *wmi_hdl,
+				struct flashing_req_params *flashing);
+
+CDF_STATUS wmi_unified_app_type1_params_in_fw_cmd(void *wmi_hdl,
+				   struct app_type1_params *app_type1_params);
+
+CDF_STATUS wmi_unified_set_ssid_hotlist_cmd(void *wmi_hdl,
+		     struct ssid_hotlist_request_params *request);
+
+CDF_STATUS wmi_unified_roam_synch_complete_cmd(void *wmi_hdl,
+		 uint8_t vdev_id);
+
+CDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl,
+			       struct wmi_unit_test_cmd *wmi_utest);
+
+CDF_STATUS wmi_unified_roam_invoke_cmd(void *wmi_hdl,
+		struct wmi_roam_invoke_cmd *roaminvoke,
+		uint32_t ch_hz);
+
+CDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl,
+					 uint32_t command, uint32_t vdev_id);
+
+CDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl,
+					    wmi_ap_profile *ap_profile_p,
+					    uint32_t vdev_id);
+
+CDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
+					     uint32_t scan_period,
+					     uint32_t scan_age,
+					     uint32_t vdev_id);
+
+CDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl,
+				   uint8_t chan_count,
+				   uint8_t *chan_list,
+				   uint8_t list_type, uint32_t vdev_id);
+
+CDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,
+			  uint32_t vdev_id,
+			  int32_t rssi_change_thresh,
+			  uint32_t bcn_rssi_weight,
+			  uint32_t hirssi_delay_btw_scans);
+
+CDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl,
+				   struct ext_scan_setbssi_hotlist_params *
+				   photlist, int *buf_len);
 #endif /* _WMI_UNIFIED_API_H_ */

+ 73 - 0
wmi/inc/wmi_unified_priv.h

@@ -498,6 +498,79 @@ CDF_STATUS (*save_fw_version_cmd)(wmi_unified_t wmi_handle, void *evt_buf);
 CDF_STATUS (*check_and_update_fw_version_cmd)(wmi_unified_t wmi_hdl, void *ev);
 
 CDF_STATUS (*send_saved_init_cmd)(wmi_unified_t wmi_handle);
+
+CDF_STATUS (*send_set_base_macaddr_indicate_cmd)(wmi_unified_t wmi_handle,
+					 uint8_t *custom_addr);
+
+CDF_STATUS (*send_log_supported_evt_cmd)(wmi_unified_t wmi_handle,
+		uint8_t *event,
+		uint32_t len);
+
+CDF_STATUS (*send_enable_specific_fw_logs_cmd)(wmi_unified_t wmi_handle,
+		struct wmi_wifi_start_log *start_log);
+
+CDF_STATUS (*send_flush_logs_to_fw_cmd)(wmi_unified_t wmi_handle);
+
+CDF_STATUS (*send_soc_set_pcl_cmd)(wmi_unified_t wmi_handle,
+				struct wmi_pcl_list *msg);
+
+CDF_STATUS (*send_soc_set_hw_mode_cmd)(wmi_unified_t wmi_handle,
+				uint32_t hw_mode_index);
+
+CDF_STATUS (*send_soc_set_dual_mac_config_cmd)(wmi_unified_t wmi_handle,
+		struct wmi_dual_mac_config *msg);
+
+CDF_STATUS (*send_enable_arp_ns_offload_cmd)(wmi_unified_t wmi_handle,
+			   struct host_offload_req_param *param, bool arp_only,
+			   uint8_t vdev_id);
+
+CDF_STATUS (*send_set_led_flashing_cmd)(wmi_unified_t wmi_handle,
+				struct flashing_req_params *flashing);
+
+CDF_STATUS (*send_app_type1_params_in_fw_cmd)(wmi_unified_t wmi_handle,
+				   struct app_type1_params *app_type1_params);
+
+CDF_STATUS (*send_set_ssid_hotlist_cmd)(wmi_unified_t wmi_handle,
+		     struct ssid_hotlist_request_params *request);
+
+CDF_STATUS (*send_process_roam_synch_complete_cmd)(wmi_unified_t wmi_handle,
+		 uint8_t vdev_id);
+
+CDF_STATUS (*send_unit_test_cmd)(wmi_unified_t wmi_handle,
+			       struct wmi_unit_test_cmd *wmi_utest);
+
+CDF_STATUS (*send_roam_invoke_cmd)(wmi_unified_t wmi_handle,
+		struct wmi_roam_invoke_cmd *roaminvoke,
+		uint32_t ch_hz);
+
+CDF_STATUS (*send_roam_scan_offload_cmd)(wmi_unified_t wmi_handle,
+				 uint32_t command, uint32_t vdev_id);
+
+CDF_STATUS (*send_roam_scan_offload_ap_profile_cmd)(wmi_unified_t wmi_handle,
+				    wmi_ap_profile *ap_profile_p,
+				    uint32_t vdev_id);
+
+CDF_STATUS (*send_roam_scan_offload_scan_period_cmd)(wmi_unified_t wmi_handle,
+				     uint32_t scan_period,
+				     uint32_t scan_age,
+				     uint32_t vdev_id);
+
+CDF_STATUS (*send_roam_scan_offload_chan_list_cmd)(wmi_unified_t wmi_handle,
+				   uint8_t chan_count,
+				   uint8_t *chan_list,
+				   uint8_t list_type, uint32_t vdev_id);
+
+CDF_STATUS (*send_roam_scan_offload_rssi_change_cmd)(wmi_unified_t wmi_handle,
+	uint32_t vdev_id,
+	int32_t rssi_change_thresh,
+	uint32_t bcn_rssi_weight,
+	uint32_t hirssi_delay_btw_scans);
+
+CDF_STATUS (*send_get_buf_extscan_hotlist_cmd)(wmi_unified_t wmi_handle,
+				   struct ext_scan_setbssi_hotlist_params *
+				   photlist, int *buf_len);
+};
+
 /**
  * struct wmi_init_cmd - Saved wmi INIT command
  * @buf: Buffer containing the wmi INIT command

+ 76 - 0
wmi/inc/wmi_unified_tlv.h

@@ -458,3 +458,79 @@ CDF_STATUS send_init_cmd_tlv(wmi_unified_t wmi_handle,
 CDF_STATUS send_saved_init_cmd_tlv(wmi_unified_t wmi_handle);
 
 CDF_STATUS save_fw_version_cmd_tlv(wmi_unified_t wmi_handle, void *evt_buf);
+
+CDF_STATUS check_and_update_fw_version_cmd_tlv(wmi_unified_t wmi_hdl, void *ev);
+
+CDF_STATUS send_set_base_macaddr_indicate_cmd_tlv(wmi_unified_t wmi_handle,
+					 uint8_t *custom_addr);
+
+CDF_STATUS send_log_supported_evt_cmd_tlv(wmi_unified_t wmi_handle,
+		uint8_t *event,
+		uint32_t len);
+
+CDF_STATUS send_enable_specific_fw_logs_cmd_tlv(wmi_unified_t wmi_handle,
+		struct wmi_wifi_start_log *start_log);
+
+CDF_STATUS send_flush_logs_to_fw_cmd_tlv(wmi_unified_t wmi_handle);
+
+CDF_STATUS send_soc_set_pcl_cmd_tlv(wmi_unified_t wmi_handle,
+				struct wmi_pcl_list *msg);
+
+CDF_STATUS send_soc_set_hw_mode_cmd_tlv(wmi_unified_t wmi_handle,
+				uint32_t hw_mode_index);
+
+CDF_STATUS send_soc_set_dual_mac_config_cmd_tlv(wmi_unified_t wmi_handle,
+		struct wmi_dual_mac_config *msg);
+
+CDF_STATUS send_enable_arp_ns_offload_cmd_tlv(wmi_unified_t wmi_handle,
+			   struct host_offload_req_param *param, bool arp_only,
+			   uint8_t vdev_id);
+
+CDF_STATUS send_set_led_flashing_cmd_tlv(wmi_unified_t wmi_handle,
+				struct flashing_req_params *flashing);
+
+CDF_STATUS send_app_type1_params_in_fw_cmd_tlv(wmi_unified_t wmi_handle,
+				   struct app_type1_params *app_type1_params);
+
+CDF_STATUS
+send_set_ssid_hotlist_cmd_tlv(wmi_unified_t wmi_handle,
+		     struct ssid_hotlist_request_params *request);
+
+CDF_STATUS send_process_roam_synch_complete_cmd_tlv(wmi_unified_t wmi_handle,
+		 uint8_t vdev_id);
+
+CDF_STATUS send_unit_test_cmd_tlv(wmi_unified_t wmi_handle,
+			       struct wmi_unit_test_cmd *wmi_utest);
+
+CDF_STATUS send_roam_invoke_cmd_tlv(wmi_unified_t wmi_handle,
+		struct wmi_roam_invoke_cmd *roaminvoke,
+		uint32_t ch_hz);
+
+CDF_STATUS send_roam_scan_offload_cmd_tlv(wmi_unified_t wmi_handle,
+					 uint32_t command, uint32_t vdev_id);
+
+CDF_STATUS send_roam_scan_offload_ap_profile_cmd_tlv(wmi_unified_t wmi_handle,
+					    wmi_ap_profile *ap_profile_p,
+					    uint32_t vdev_id);
+
+CDF_STATUS send_roam_scan_offload_scan_period_cmd_tlv(wmi_unified_t wmi_handle,
+					     uint32_t scan_period,
+					     uint32_t scan_age,
+					     uint32_t vdev_id);
+
+CDF_STATUS send_roam_scan_offload_chan_list_cmd_tlv(wmi_unified_t wmi_handle,
+				   uint8_t chan_count,
+				   uint8_t *chan_list,
+				   uint8_t list_type, uint32_t vdev_id);
+
+CDF_STATUS send_roam_scan_offload_rssi_change_cmd_tlv(wmi_unified_t wmi_handle,
+	uint32_t vdev_id,
+	int32_t rssi_change_thresh,
+	uint32_t bcn_rssi_weight,
+	uint32_t hirssi_delay_btw_scans);
+
+CDF_STATUS send_get_buf_extscan_hotlist_cmd_tlv(wmi_unified_t wmi_handle,
+				   struct ext_scan_setbssi_hotlist_params *
+				   photlist, int *buf_len);
+#endif
+

+ 453 - 0
wmi/src/wmi_unified_api.c

@@ -2678,3 +2678,456 @@ CDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl,
 
 	return CDF_STATUS_E_FAILURE;
 }
+
+/**
+ * send_set_base_macaddr_indicate_cmd() - set base mac address in fw
+ * @wmi_hdl: wmi handle
+ * @custom_addr: base mac address
+ *
+ * Return: 0 for success or error code
+ */
+CDF_STATUS wmi_unified_set_base_macaddr_indicate_cmd(void *wmi_hdl,
+					 uint8_t *custom_addr)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_set_base_macaddr_indicate_cmd)
+		return wmi_handle->ops->send_set_base_macaddr_indicate_cmd(wmi_handle,
+			    custom_addr);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_log_supported_evt_cmd() - Enable/Disable FW diag/log events
+ * @wmi_hdl: wmi handle
+ * @event:  Event received from FW
+ * @len:    Length of the event
+ *
+ * Enables the low frequency events and disables the high frequency
+ * events. Bit 17 indicates if the event if low/high frequency.
+ * 1 - high frequency, 0 - low frequency
+ *
+ * Return: 0 on successfully enabling/disabling the events
+ */
+CDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl,
+		uint8_t *event,
+		uint32_t len)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_log_supported_evt_cmd)
+		return wmi_handle->ops->send_log_supported_evt_cmd(wmi_handle,
+			    event, len);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_enable_specific_fw_logs_cmd() - Start/Stop logging of diag log id
+ * @wmi_hdl: wmi handle
+ * @start_log: Start logging related parameters
+ *
+ * Send the command to the FW based on which specific logging of diag
+ * event/log id can be started/stopped
+ *
+ * Return: None
+ */
+CDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl,
+		struct wmi_wifi_start_log *start_log)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_enable_specific_fw_logs_cmd)
+		return wmi_handle->ops->send_enable_specific_fw_logs_cmd(wmi_handle,
+			    start_log);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_flush_logs_to_fw_cmd() - Send log flush command to FW
+ * @wmi_hdl: WMI handle
+ *
+ * This function is used to send the flush command to the FW,
+ * that will flush the fw logs that are residue in the FW
+ *
+ * Return: None
+ */
+CDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_flush_logs_to_fw_cmd)
+		return wmi_handle->ops->send_flush_logs_to_fw_cmd(wmi_handle);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_soc_set_pcl_cmd() - Send WMI_SOC_SET_PCL_CMDID to FW
+ * @wmi_hdl: wmi handle
+ * @msg: PCL structure containing the PCL and the number of channels
+ *
+ * WMI_SOC_SET_PCL_CMDID provides a Preferred Channel List (PCL) to the WLAN
+ * firmware. The DBS Manager is the consumer of this information in the WLAN
+ * firmware. The channel list will be used when a Virtual DEVice (VDEV) needs
+ * to migrate to a new channel without host driver involvement. An example of
+ * this behavior is Legacy Fast Roaming (LFR 3.0). Generally, the host will
+ * manage the channel selection without firmware involvement.
+ *
+ * Return: Success if the cmd is sent successfully to the firmware
+ */
+CDF_STATUS wmi_unified_soc_set_pcl_cmd(void *wmi_hdl,
+				struct wmi_pcl_list *msg)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_soc_set_pcl_cmd)
+		return wmi_handle->ops->send_soc_set_pcl_cmd(wmi_handle, msg);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_soc_set_hw_mode_cmd() - Send WMI_SOC_SET_HW_MODE_CMDID to FW
+ * @wmi_hdl: wmi handle
+ * @msg: Structure containing the following parameters
+ *
+ * - hw_mode_index: The HW_Mode field is a enumerated type that is selected
+ * from the HW_Mode table, which is returned in the WMI_SERVICE_READY_EVENTID.
+ *
+ * Provides notification to the WLAN firmware that host driver is requesting a
+ * HardWare (HW) Mode change. This command is needed to support iHelium in the
+ * configurations that include the Dual Band Simultaneous (DBS) feature.
+ *
+ * Return: Success if the cmd is sent successfully to the firmware
+ */
+CDF_STATUS wmi_unified_soc_set_hw_mode_cmd(void *wmi_hdl,
+				uint32_t hw_mode_index)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_soc_set_hw_mode_cmd)
+		return wmi_handle->ops->send_soc_set_hw_mode_cmd(wmi_handle,
+				  hw_mode_index);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_soc_set_dual_mac_config_cmd() - Set dual mac config to FW
+ * @wmi_hdl: wmi handle
+ * @msg: Dual MAC config parameters
+ *
+ * Configures WLAN firmware with the dual MAC features
+ *
+ * Return: CDF_STATUS. 0 on success.
+ */
+CDF_STATUS wmi_unified_soc_set_dual_mac_config_cmd(void *wmi_hdl,
+		struct wmi_dual_mac_config *msg)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_soc_set_dual_mac_config_cmd)
+		return wmi_handle->ops->send_soc_set_dual_mac_config_cmd(wmi_handle,
+				  msg);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_enable_arp_ns_offload_cmd() - enable ARP NS offload
+ * @wmi_hdl: wmi handle
+ * @param: offload request
+ * @arp_only: flag
+ *
+ * To configure ARP NS off load data to firmware
+ * when target goes to wow mode.
+ *
+ * Return: CDF Status
+ */
+CDF_STATUS wmi_unified_enable_arp_ns_offload_cmd(void *wmi_hdl,
+			   struct host_offload_req_param *param, bool arp_only,
+			   uint8_t vdev_id)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_enable_arp_ns_offload_cmd)
+		return wmi_handle->ops->send_enable_arp_ns_offload_cmd(wmi_handle,
+				  param, arp_only,
+				  vdev_id);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_set_led_flashing_cmd() - set led flashing in fw
+ * @wmi_hdl: wmi handle
+ * @flashing: flashing request
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_set_led_flashing_cmd(void *wmi_hdl,
+				struct flashing_req_params *flashing)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_set_led_flashing_cmd)
+		return wmi_handle->ops->send_set_led_flashing_cmd(wmi_handle,
+				  flashing);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_app_type1_params_in_fw_cmd() - set app type1 params in fw
+ * @wmi_hdl: wmi handle
+ * @appType1Params: app type1 params
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_app_type1_params_in_fw_cmd(void *wmi_hdl,
+				   struct app_type1_params *app_type1_params)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_app_type1_params_in_fw_cmd)
+		return wmi_handle->ops->send_app_type1_params_in_fw_cmd(wmi_handle,
+				  app_type1_params);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_set_ssid_hotlist_cmd() - Handle an SSID hotlist set request
+ * @wmi_hdl: wmi handle
+ * @request: SSID hotlist set request
+ *
+ * Return: CDF_STATUS enumeration
+ */
+CDF_STATUS
+wmi_unified_set_ssid_hotlist_cmd(void *wmi_hdl,
+		     struct ssid_hotlist_request_params *request)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_set_ssid_hotlist_cmd)
+		return wmi_handle->ops->send_set_ssid_hotlist_cmd(wmi_handle,
+				  request);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_roam_synch_complete_cmd() - roam synch complete command to fw.
+ * @wmi_hdl: wmi handle
+ * @vdev_id: vdev id
+ *
+ * This function sends roam synch complete event to fw.
+ *
+ * Return: CDF STATUS
+ */
+CDF_STATUS wmi_unified_roam_synch_complete_cmd(void *wmi_hdl,
+		 uint8_t vdev_id)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_process_roam_synch_complete_cmd)
+		return wmi_handle->ops->send_process_roam_synch_complete_cmd(wmi_handle,
+				  vdev_id);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_unit_test_cmd() - send unit test command to fw.
+ * @wmi_hdl: wmi handle
+ * @wmi_utest: unit test command
+ *
+ * This function send unit test command to fw.
+ *
+ * Return: CDF STATUS
+ */
+CDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl,
+			       struct wmi_unit_test_cmd *wmi_utest)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_unit_test_cmd)
+		return wmi_handle->ops->send_unit_test_cmd(wmi_handle,
+				  wmi_utest);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified__roam_invoke_cmd() - send roam invoke command to fw.
+ * @wmi_hdl: wmi handle
+ * @roaminvoke: roam invoke command
+ *
+ * Send roam invoke command to fw for fastreassoc.
+ *
+ * Return: none
+ */
+CDF_STATUS wmi_unified_roam_invoke_cmd(void *wmi_hdl,
+		struct wmi_roam_invoke_cmd *roaminvoke,
+		uint32_t ch_hz)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_roam_invoke_cmd)
+		return wmi_handle->ops->send_roam_invoke_cmd(wmi_handle,
+				  roaminvoke, ch_hz);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_roam_scan_offload_cmd() - set roam offload command
+ * @wmi_hdl: wmi handle
+ * @command: command
+ * @vdev_id: vdev id
+ *
+ * This function set roam offload command to fw.
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl,
+					 uint32_t command, uint32_t vdev_id)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_roam_scan_offload_cmd)
+		return wmi_handle->ops->send_roam_scan_offload_cmd(wmi_handle,
+				  command, vdev_id);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_send_roam_scan_offload_ap_cmd() - set roam ap profile in fw
+ * @wmi_hdl: wmi handle
+ * @ap_profile_p: ap profile
+ * @vdev_id: vdev id
+ *
+ * Send WMI_ROAM_AP_PROFILE to firmware
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl,
+					    wmi_ap_profile *ap_profile_p,
+					    uint32_t vdev_id)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd)
+		return wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd(wmi_handle,
+				  ap_profile_p, vdev_id);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_roam_scan_offload_scan_period() - set roam offload scan period
+ * @wmi_handle: wmi handle
+ * @scan_period: scan period
+ * @scan_age: scan age
+ * @vdev_id: vdev id
+ *
+ * Send WMI_ROAM_SCAN_PERIOD parameters to fw.
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
+					     uint32_t scan_period,
+					     uint32_t scan_age,
+					     uint32_t vdev_id)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_roam_scan_offload_scan_period_cmd)
+		return wmi_handle->ops->send_roam_scan_offload_scan_period_cmd(wmi_handle,
+				  scan_period, scan_age, vdev_id);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_roam_scan_offload_chan_list_cmd() - set roam offload channel list
+ * @wmi_handle: wmi handle
+ * @chan_count: channel count
+ * @chan_list: channel list
+ * @list_type: list type
+ * @vdev_id: vdev id
+ *
+ * Set roam offload channel list.
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl,
+				   uint8_t chan_count,
+				   uint8_t *chan_list,
+				   uint8_t list_type, uint32_t vdev_id)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_roam_scan_offload_chan_list_cmd)
+		return wmi_handle->ops->send_roam_scan_offload_chan_list_cmd(wmi_handle,
+				  chan_count, chan_list,
+				  list_type, vdev_id);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_roam_scan_offload_rssi_change_cmd() - set roam offload RSSI th
+ * @wmi_hdl: wmi handle
+ * @rssi_change_thresh: RSSI Change threshold
+ * @bcn_rssi_weight: beacon RSSI weight
+ * @vdev_id: vdev id
+ *
+ * Send WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD parameters to fw.
+ *
+ * Return: CDF status
+ */
+CDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,
+	uint32_t vdev_id,
+	int32_t rssi_change_thresh,
+	uint32_t bcn_rssi_weight,
+	uint32_t hirssi_delay_btw_scans)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd)
+		return wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd(wmi_handle,
+				  vdev_id, rssi_change_thresh,
+				  bcn_rssi_weight, hirssi_delay_btw_scans);
+
+	return CDF_STATUS_E_FAILURE;
+}
+
+/**
+ * wmi_unified_get_buf_extscan_hotlist_cmd() - prepare hotlist command
+ * @wmi_hdl: wmi handle
+ * @photlist: hotlist command params
+ * @buf_len: buffer length
+ *
+ * This function fills individual elements for  hotlist request and
+ * TLV for bssid entries
+ *
+ * Return: CDF Status.
+ */
+CDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl,
+				   struct ext_scan_setbssi_hotlist_params *
+				   photlist, int *buf_len)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->send_get_buf_extscan_hotlist_cmd)
+		return wmi_handle->ops->send_get_buf_extscan_hotlist_cmd(wmi_handle,
+				  photlist, buf_len);
+
+	return CDF_STATUS_E_FAILURE;
+}
+

ファイルの差分が大きいため隠しています
+ 1371 - 0
wmi/src/wmi_unified_tlv.c


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません