|
@@ -3929,103 +3929,6 @@ int wma_rcpi_event_handler(void *handle, uint8_t *cmd_param_info,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-#ifndef ROAM_OFFLOAD_V1
|
|
|
-/**
|
|
|
- * wma_set_roam_offload_flag() - Set roam offload flag to fw
|
|
|
- * @wma: wma handle
|
|
|
- * @vdev_id: vdev id
|
|
|
- * @is_set: set or clear
|
|
|
- *
|
|
|
- * Return: none
|
|
|
- */
|
|
|
-static void wma_set_roam_offload_flag(tp_wma_handle wma, uint8_t vdev_id,
|
|
|
- bool is_set)
|
|
|
-{
|
|
|
- QDF_STATUS status;
|
|
|
- uint32_t flag = 0;
|
|
|
- bool disable_4way_hs_offload;
|
|
|
- bool bmiss_skip_full_scan;
|
|
|
-
|
|
|
- if (is_set) {
|
|
|
- flag = WMI_ROAM_FW_OFFLOAD_ENABLE_FLAG |
|
|
|
- WMI_ROAM_BMISS_FINAL_SCAN_ENABLE_FLAG;
|
|
|
-
|
|
|
- wlan_mlme_get_4way_hs_offload(wma->psoc,
|
|
|
- &disable_4way_hs_offload);
|
|
|
- /*
|
|
|
- * If 4-way HS offload is disabled then let supplicant handle
|
|
|
- * 4way HS and firmware will still do LFR3.0 till reassoc phase.
|
|
|
- */
|
|
|
- if (disable_4way_hs_offload)
|
|
|
- flag |= WMI_VDEV_PARAM_SKIP_ROAM_EAPOL_4WAY_HANDSHAKE;
|
|
|
-
|
|
|
- wlan_mlme_get_bmiss_skip_full_scan_value(wma->psoc,
|
|
|
- &bmiss_skip_full_scan);
|
|
|
- /*
|
|
|
- * If WMI_ROAM_BMISS_FINAL_SCAN_ENABLE_FLAG is set, then
|
|
|
- * WMI_ROAM_BMISS_FINAL_SCAN_TYPE_FLAG decides whether firmware
|
|
|
- * does channel map based partial scan or partial scan followed
|
|
|
- * by full scan in case no candidate is found in partial scan.
|
|
|
- */
|
|
|
- if (bmiss_skip_full_scan)
|
|
|
- flag |= WMI_ROAM_BMISS_FINAL_SCAN_TYPE_FLAG;
|
|
|
- }
|
|
|
-
|
|
|
- wma_debug("vdev_id:%d, is_set:%d, flag:%d", vdev_id, is_set, flag);
|
|
|
- status = wma_vdev_set_param(wma->wmi_handle, vdev_id,
|
|
|
- WMI_VDEV_PARAM_ROAM_FW_OFFLOAD, flag);
|
|
|
- if (QDF_IS_STATUS_ERROR(status))
|
|
|
- wma_err("Failed to set WMI_VDEV_PARAM_ROAM_FW_OFFLOAD");
|
|
|
-}
|
|
|
-
|
|
|
-void wma_update_roam_offload_flag(void *handle,
|
|
|
- struct roam_init_params *params)
|
|
|
-{
|
|
|
- tp_wma_handle wma = handle;
|
|
|
- struct wma_txrx_node *iface;
|
|
|
-
|
|
|
- if (!wma_is_vdev_valid(params->vdev_id)) {
|
|
|
- wma_err("vdev_id: %d is not active", params->vdev_id);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- iface = &wma->interfaces[params->vdev_id];
|
|
|
-
|
|
|
- if ((iface->type != WMI_VDEV_TYPE_STA) ||
|
|
|
- (iface->sub_type != 0)) {
|
|
|
- wma_err("this isn't a STA: %d", params->vdev_id);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- wma_set_roam_offload_flag(wma, params->vdev_id, params->enable);
|
|
|
-}
|
|
|
-
|
|
|
-void wma_set_roam_disable_cfg(void *handle, struct roam_disable_cfg *params)
|
|
|
-{
|
|
|
- tp_wma_handle wma = handle;
|
|
|
- struct wma_txrx_node *iface;
|
|
|
- QDF_STATUS status;
|
|
|
-
|
|
|
- if (!wma_is_vdev_valid(params->vdev_id)) {
|
|
|
- wma_err("vdev_id: %d is not active", params->vdev_id);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- iface = &wma->interfaces[params->vdev_id];
|
|
|
-
|
|
|
- if ((iface->type != WMI_VDEV_TYPE_STA) ||
|
|
|
- (iface->sub_type != 0)) {
|
|
|
- wma_err("this isn't a STA: %d", params->vdev_id);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- status = wma_vdev_set_param(wma->wmi_handle, params->vdev_id,
|
|
|
- WMI_VDEV_PARAM_ROAM_11KV_CTRL, params->cfg);
|
|
|
- if (QDF_IS_STATUS_ERROR(status))
|
|
|
- wma_err("Failed to set WMI_VDEV_PARAM_ROAM_11KV_CTRL");
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
QDF_STATUS wma_send_vdev_down_to_fw(t_wma_handle *wma, uint8_t vdev_id)
|
|
|
{
|
|
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|