|
@@ -5068,79 +5068,6 @@ QDF_STATUS wma_extscan_get_capabilities(tp_wma_handle wma,
|
|
|
¶ms);
|
|
|
}
|
|
|
|
|
|
-QDF_STATUS wma_ipa_offload_enable_disable(tp_wma_handle wma,
|
|
|
- struct sir_ipa_offload_enable_disable *ipa_offload)
|
|
|
-{
|
|
|
- struct cdp_vdev *vdev;
|
|
|
- int32_t intra_bss_fwd = 0;
|
|
|
- struct ipa_offload_control_params params = {0};
|
|
|
- QDF_STATUS status;
|
|
|
- uint8_t rx_fwd_disabled;
|
|
|
-
|
|
|
- if (!wma || !wma->wmi_handle) {
|
|
|
- WMA_LOGE("%s: WMA is closed, can not issue cmd",
|
|
|
- __func__);
|
|
|
- return QDF_STATUS_E_INVAL;
|
|
|
- }
|
|
|
-
|
|
|
- if (!wmi_service_enabled(wma->wmi_handle,
|
|
|
- ((ipa_offload->offload_type == AP_RX_DATA_OFFLOAD) ?
|
|
|
- wmi_service_hsoffload :
|
|
|
- wmi_service_sta_rx_ipa_offload_support))) {
|
|
|
- WMA_LOGE("%s: %s not supported", __func__,
|
|
|
- ((ipa_offload->offload_type == AP_RX_DATA_OFFLOAD) ?
|
|
|
- "WMI_SERVICE_HSOFFLOAD" :
|
|
|
- "WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT"));
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- if (ipa_offload->offload_type > STA_RX_DATA_OFFLOAD)
|
|
|
- return QDF_STATUS_E_INVAL;
|
|
|
-
|
|
|
- params.offload_type = ipa_offload->offload_type;
|
|
|
- params.vdev_id = ipa_offload->vdev_id;
|
|
|
- params.enable = ipa_offload->enable;
|
|
|
-
|
|
|
- WMA_LOGI("%s: offload_type=%d, vdev_id=%d, enable=%d",
|
|
|
- __func__,
|
|
|
- ipa_offload->offload_type, ipa_offload->vdev_id,
|
|
|
- ipa_offload->enable);
|
|
|
-
|
|
|
- status = wmi_unified_ipa_offload_control_cmd(wma->wmi_handle,
|
|
|
- ¶ms);
|
|
|
- if (QDF_IS_STATUS_ERROR(status))
|
|
|
- return status;
|
|
|
-
|
|
|
- /*
|
|
|
- * Check if VDEV is already deleted. If deleted, don't
|
|
|
- * send INTRA BSS FWD WMI command
|
|
|
- */
|
|
|
- vdev = wma_find_vdev_by_id(wma, ipa_offload->vdev_id);
|
|
|
- if (!vdev)
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
-
|
|
|
- /* Disable Intra-BSS FWD offload when gDisableIntraBssFwd=1 in INI */
|
|
|
- rx_fwd_disabled = cdp_cfg_is_rx_fwd_disabled(
|
|
|
- cds_get_context(QDF_MODULE_ID_SOC), vdev);
|
|
|
- if (!ipa_offload->enable || rx_fwd_disabled) {
|
|
|
- WMA_LOGI("%s: ipa_offload->enable=%d, rx_fwd_disabled=%d",
|
|
|
- __func__,
|
|
|
- ipa_offload->enable, rx_fwd_disabled);
|
|
|
- intra_bss_fwd = 1;
|
|
|
- }
|
|
|
-
|
|
|
- /* Disable/enable WMI_VDEV_PARAM_INTRA_BSS_FWD */
|
|
|
- status = wma_vdev_set_param(wma->wmi_handle,
|
|
|
- ipa_offload->vdev_id, WMI_VDEV_PARAM_INTRA_BSS_FWD,
|
|
|
- intra_bss_fwd);
|
|
|
- if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
- WMA_LOGE("Failed to disable WMI_VDEV_PARAM_INTRA_BSS_FWD");
|
|
|
- return status;
|
|
|
- }
|
|
|
-
|
|
|
- return status;
|
|
|
-}
|
|
|
-
|
|
|
/** wma_set_epno_network_list() - set epno network list
|
|
|
* @wma: WMA handle
|
|
|
* @req: epno config params request structure
|