mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-26 06:33:19 -04:00
qcacld-3.0: Move FTM cmd/event handle to common code
- replace the ftm command/event handle with common interfaces - remove the event register from wma - reconfigure the target_if_handle for FTM mode - separate change will be raised to cleanup legacy code Change-Id: If8e2dfc4c6bb400406be5d0d3fa53422db5c6fb5 CRs-fixed: 2162168
This commit is contained in:
parent
4e514214e4
commit
c8b27a4352
7 changed files with 49 additions and 115 deletions
35
Kbuild
35
Kbuild
|
|
@ -891,6 +891,35 @@ UMAC_GREEN_AP_OBJS := $(UMAC_GREEN_AP_CORE_DIR)/wlan_green_ap_main.o \
|
|||
$(UMAC_GREEN_AP_DISP_DIR)/wlan_green_ap_api.o \
|
||||
$(UMAC_GREEN_AP_DISP_DIR)/wlan_green_ap_ucfg_api.o \
|
||||
$(WLAN_COMMON_ROOT)/target_if/green_ap/src/target_if_green_ap.o
|
||||
############# FTM CORE ############
|
||||
FTM_CORE_DIR := ftm
|
||||
TARGET_IF_FTM_DIR := target_if/ftm
|
||||
OS_IF_LINUX_FTM_DIR := os_if/linux/ftm
|
||||
|
||||
FTM_CORE_SRC := $(WLAN_COMMON_ROOT)/$(FTM_CORE_DIR)/core/src
|
||||
FTM_DISP_SRC := $(WLAN_COMMON_ROOT)/$(FTM_CORE_DIR)/dispatcher/src
|
||||
TARGET_IF_FTM_SRC := $(WLAN_COMMON_ROOT)/$(TARGET_IF_FTM_DIR)/src
|
||||
OS_IF_FTM_SRC := $(WLAN_COMMON_ROOT)/$(OS_IF_LINUX_FTM_DIR)/src
|
||||
|
||||
FTM_CORE_INC := $(WLAN_COMMON_INC)/$(FTM_CORE_DIR)/core/src
|
||||
FTM_DISP_INC := $(WLAN_COMMON_INC)/$(FTM_CORE_DIR)/dispatcher/inc
|
||||
TARGET_IF_FTM_INC := $(WLAN_COMMON_INC)/$(TARGET_IF_FTM_DIR)/inc
|
||||
OS_IF_FTM_INC := $(WLAN_COMMON_INC)/$(OS_IF_LINUX_FTM_DIR)/inc
|
||||
|
||||
FTM_INC := -I$(FTM_DISP_INC) \
|
||||
-I$(FTM_CORE_INC) \
|
||||
-I$(OS_IF_FTM_INC) \
|
||||
-I$(TARGET_IF_FTM_INC)
|
||||
|
||||
FTM_OBJS := $(FTM_DISP_SRC)/wlan_ftm_init_deinit.o \
|
||||
$(FTM_DISP_SRC)/wlan_ftm_ucfg_api.o \
|
||||
$(FTM_CORE_SRC)/wlan_ftm_svc.o \
|
||||
$(OS_IF_FTM_SRC)/wlan_cfg80211_ftm.o \
|
||||
$(TARGET_IF_FTM_SRC)/target_if_ftm.o
|
||||
|
||||
ifeq ($(CONFIG_LINUX_QCMBR),y)
|
||||
FTM_OBJS += $(OS_IF_FTM_SRC)/wlan_ioctl_ftm.o
|
||||
endif
|
||||
|
||||
############# UMAC_CMN_SERVICES ############
|
||||
UMAC_COMMON_INC := -I$(WLAN_COMMON_INC)/umac/cmn_services/cmn_defs/inc \
|
||||
|
|
@ -1517,7 +1546,8 @@ INCS := $(HDD_INC) \
|
|||
$(TARGET_IF_INC) \
|
||||
$(CLD_TARGET_IF_INC) \
|
||||
$(OS_IF_INC) \
|
||||
$(GLOBAL_LMAC_IF_INC)
|
||||
$(GLOBAL_LMAC_IF_INC) \
|
||||
$(FTM_INC)
|
||||
|
||||
INCS += $(WMA_INC) \
|
||||
$(UAPI_INC) \
|
||||
|
|
@ -1599,7 +1629,8 @@ OBJS := $(HDD_OBJS) \
|
|||
$(SYS_OBJS) \
|
||||
$(QDF_OBJS) \
|
||||
$(CDS_OBJS) \
|
||||
$(DFS_OBJS)
|
||||
$(DFS_OBJS) \
|
||||
$(FTM_OBJS)
|
||||
|
||||
OBJS += $(WMA_OBJS) \
|
||||
$(TXRX_OBJS) \
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@
|
|||
#endif
|
||||
#include <cdp_txrx_handle.h>
|
||||
#include <wlan_cfg80211_scan.h>
|
||||
#include <wlan_cfg80211_ftm.h>
|
||||
|
||||
#ifdef FEATURE_WLAN_EXTSCAN
|
||||
#include "wlan_hdd_ext_scan.h"
|
||||
|
|
@ -20427,38 +20428,17 @@ static int __wlan_hdd_cfg80211_testmode(struct wiphy *wiphy,
|
|||
#if defined(QCA_WIFI_FTM)
|
||||
case WLAN_HDD_TM_CMD_WLAN_FTM:
|
||||
{
|
||||
int buf_len;
|
||||
void *buf;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (hdd_get_conparam() != QDF_GLOBAL_FTM_MODE) {
|
||||
hdd_err("Device is not in FTM mode");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!tb[WLAN_HDD_TM_ATTR_DATA]) {
|
||||
hdd_err("WLAN_HDD_TM_ATTR_DATA attribute is invalid");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
buf = nla_data(tb[WLAN_HDD_TM_ATTR_DATA]);
|
||||
buf_len = nla_len(tb[WLAN_HDD_TM_ATTR_DATA]);
|
||||
|
||||
hdd_debug("****FTM Tx cmd len = %d*****", buf_len);
|
||||
|
||||
status = wlan_hdd_ftm_testmode_cmd(buf, buf_len);
|
||||
|
||||
if (status != QDF_STATUS_SUCCESS)
|
||||
err = -EBUSY;
|
||||
err = wlan_cfg80211_ftm_testmode_cmd(hdd_ctx->hdd_pdev,
|
||||
data, len);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
default:
|
||||
hdd_err("command: %d not supported",
|
||||
nla_get_u32(tb[WLAN_HDD_TM_ATTR_CMD]));
|
||||
nla_get_u32(tb[WLAN_HDD_TM_ATTR_CMD]));
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
EXIT();
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -54,6 +54,7 @@
|
|||
#include "ol_fw.h"
|
||||
#include "wlan_hdd_cfg80211.h"
|
||||
#include "hif.h"
|
||||
#include <wlan_ioctl_ftm.h>
|
||||
#endif
|
||||
|
||||
#define HDD_FTM_WMA_PRE_START_TIMEOUT (30000) /* 30 seconds */
|
||||
|
|
@ -180,50 +181,17 @@ static int wlan_hdd_qcmbr_command(struct hdd_adapter *adapter,
|
|||
struct qcmbr_data *pqcmbr_data)
|
||||
{
|
||||
int ret = 0;
|
||||
struct qcmbr_queue *qcmbr_buf = NULL;
|
||||
struct hdd_context *hdd_ctx;
|
||||
|
||||
switch (pqcmbr_data->cmd) {
|
||||
case ATH_XIOCTL_UNIFIED_UTF_CMD: {
|
||||
pqcmbr_data->copy_to_user = 0;
|
||||
if (pqcmbr_data->length &&
|
||||
pqcmbr_data->length <= sizeof(pqcmbr_data->buf)) {
|
||||
if (wlan_hdd_ftm_testmode_cmd(pqcmbr_data->buf,
|
||||
pqcmbr_data->
|
||||
length)
|
||||
!= QDF_STATUS_SUCCESS) {
|
||||
ret = -EBUSY;
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
ret = wlan_hdd_validate_context(hdd_ctx);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
case ATH_XIOCTL_UNIFIED_UTF_RSP: {
|
||||
pqcmbr_data->copy_to_user = 1;
|
||||
|
||||
spin_lock_bh(&qcmbr_queue_lock);
|
||||
if (!list_empty(&qcmbr_queue_head)) {
|
||||
qcmbr_buf = list_first_entry(&qcmbr_queue_head,
|
||||
struct qcmbr_queue,
|
||||
list);
|
||||
list_del(&qcmbr_buf->list);
|
||||
ret = 0;
|
||||
} else {
|
||||
ret = -1;
|
||||
}
|
||||
spin_unlock_bh(&qcmbr_queue_lock);
|
||||
|
||||
if (!ret) {
|
||||
memcpy(pqcmbr_data->buf, qcmbr_buf->utf_buf,
|
||||
(MAX_UTF_LENGTH + 4));
|
||||
qdf_mem_free(qcmbr_buf);
|
||||
} else {
|
||||
ret = -EAGAIN;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
ret = wlan_ioctl_ftm_testmode_cmd(hdd_ctx->hdd_pdev,
|
||||
pqcmbr_data->cmd,
|
||||
pqcmbr_data->buf,
|
||||
pqcmbr_data->length);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2623,11 +2623,6 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx,
|
|||
hdd_ctx->driver_status = DRIVER_MODULES_OPENED;
|
||||
hdd_info("Wlan transitioned (now OPENED)");
|
||||
|
||||
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
|
||||
sme_register_ftm_msg_processor(hdd_ctx->hHal,
|
||||
hdd_ftm_mc_process_msg);
|
||||
break;
|
||||
}
|
||||
if (unint) {
|
||||
hdd_debug("In phase-1 initialization don't enable modules");
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -485,9 +485,6 @@ static inline void sme_deregister_oem_data_rsp_callback(tHalHandle h_hal)
|
|||
|
||||
#endif
|
||||
|
||||
void sme_register_ftm_msg_processor(tHalHandle hal,
|
||||
hdd_ftm_msg_processor callback);
|
||||
|
||||
extern QDF_STATUS sme_enter_wowl(tHalHandle hHal,
|
||||
void (*enter_wowl_callback_routine)(void
|
||||
*callbackContext,
|
||||
|
|
|
|||
|
|
@ -4157,29 +4157,6 @@ QDF_STATUS sme_oem_get_capability(tHalHandle hal,
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sme_register_ftm_msg_processor() - registers hdd ftm message processor
|
||||
* function to MAC/SYS
|
||||
*
|
||||
* @hal: hal handle
|
||||
* @callback: hdd function that has to be registered
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void sme_register_ftm_msg_processor(tHalHandle hal,
|
||||
hdd_ftm_msg_processor callback)
|
||||
{
|
||||
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
|
||||
|
||||
if (mac_ctx == NULL) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("mac ctx is NULL"));
|
||||
return;
|
||||
}
|
||||
|
||||
mac_ctx->ftm_msg_processor_callback = callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* sme_enter_wowl(): SME API exposed to HDD to request enabling of WOWL mode.
|
||||
* @hal_ctx - The handle returned by mac_open.
|
||||
|
|
|
|||
|
|
@ -2580,11 +2580,6 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
|
|||
|
||||
wma_handle->tx_chain_mask_cck = cds_cfg->tx_chain_mask_cck;
|
||||
wma_handle->self_gen_frm_pwr = cds_cfg->self_gen_frm_pwr;
|
||||
|
||||
#if defined(QCA_WIFI_FTM)
|
||||
if (cds_get_conparam() == QDF_GLOBAL_FTM_MODE)
|
||||
wma_utf_attach(wma_handle);
|
||||
#endif /* QCA_WIFI_FTM */
|
||||
wma_init_max_no_of_peers(wma_handle, cds_cfg->max_station);
|
||||
cds_cfg->max_station = wma_get_number_of_peers_supported(wma_handle);
|
||||
|
||||
|
|
@ -2973,9 +2968,6 @@ err_event_init:
|
|||
qdf_mem_free(wma_handle->interfaces);
|
||||
|
||||
err_scn_context:
|
||||
#if defined(QCA_WIFI_FTM)
|
||||
wma_utf_detach(wma_handle);
|
||||
#endif /* QCA_WIFI_FTM */
|
||||
qdf_mem_free(((p_cds_contextType) cds_context)->cfg_ctx);
|
||||
OS_FREE(wmi_handle);
|
||||
|
||||
|
|
@ -4058,12 +4050,6 @@ QDF_STATUS wma_close(void)
|
|||
memctx));
|
||||
}
|
||||
|
||||
#if defined(QCA_WIFI_FTM)
|
||||
/* Detach UTF and unregister the handler */
|
||||
if (cds_get_conparam() == QDF_GLOBAL_FTM_MODE)
|
||||
wma_utf_detach(wma_handle);
|
||||
#endif /* QCA_WIFI_FTM */
|
||||
|
||||
if (NULL != wma_handle->pGetRssiReq) {
|
||||
qdf_mem_free(wma_handle->pGetRssiReq);
|
||||
wma_handle->pGetRssiReq = NULL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue