summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Qian <zhangq@codeaurora.org>2018-11-07 03:21:59 -0800
committerQian Zhang <zhangq@codeaurora.org>2018-11-09 11:09:32 +0800
commite31bab2e5361296c9e5a04ed1fb4283dc73e31a8 (patch)
tree360558040bd2d5d185488eacbcc9f0cfc63ff000
parentdd3ce456e46af6d6a5c89cf4704fed5c364a59c8 (diff)
Revert "qcacld-2.0: HL: Obtain CFR data via HTT and send to user"
This reverts Change I6d1e67d2eea5117fb8c8b2e191c47c41326f4755 WLAN_OPEN_SOURCE cannot be used as a compile MACRO for different platforms. Change-Id: Idba7708e0e7da5abd379e5f2f7521aed34014120 CRs-Fixed: 2346040
-rw-r--r--CORE/CLD_TXRX/HTT/htt.h91
-rw-r--r--CORE/CLD_TXRX/HTT/htt_t2h.c134
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_txrx_types.h9
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg80211.h143
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c178
-rw-r--r--CORE/MAC/src/include/sirParams.h2
-rw-r--r--CORE/SERVICES/COMMON/dbglog_host.h5
-rw-r--r--CORE/SERVICES/WMA/wma.c121
-rw-r--r--CORE/SERVICES/WMA/wma.h10
-rw-r--r--CORE/SERVICES/WMI/wmi_unified_priv.h2
-rw-r--r--CORE/SME/inc/sme_Api.h11
-rw-r--r--CORE/SME/src/sme_common/sme_Api.c55
-rw-r--r--CORE/UTILS/FWLOG/dbglog_host.c312
-rw-r--r--CORE/WDA/inc/wlan_qct_wda.h3
14 files changed, 36 insertions, 1040 deletions
diff --git a/CORE/CLD_TXRX/HTT/htt.h b/CORE/CLD_TXRX/HTT/htt.h
index edc7da33cd84..59c5864b0fc9 100644
--- a/CORE/CLD_TXRX/HTT/htt.h
+++ b/CORE/CLD_TXRX/HTT/htt.h
@@ -4068,14 +4068,7 @@ enum htt_t2h_msg_type {
HTT_T2H_MSG_TYPE_FLOW_POOL_MAP = 0x18,
HTT_T2H_MSG_TYPE_FLOW_POOL_UNMAP = 0x19,
HTT_T2H_MSG_TYPE_SRING_SETUP_DONE = 0x1a,
- HTT_T2H_MSG_TYPE_MAP_FLOW_INFO = 0x1b,
- HTT_T2H_MSG_TYPE_EXT_STATS_CONF = 0x1c,
- HTT_T2H_MSG_TYPE_PPDU_STATS_IND = 0x1d,
- HTT_T2H_MSG_TYPE_PEER_MAP_V2 = 0x1e,
- HTT_T2H_MSG_TYPE_PEER_UNMAP_V2 = 0x1f,
HTT_T2H_MSG_TYPE_MONITOR_MAC_HEADER_IND = 0x20,
- HTT_T2H_MSG_TYPE_FLOW_POOL_RESIZE = 0x21,
- HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND = 0x22,
HTT_T2H_MSG_TYPE_TEST,
/* keep this last */
@@ -4089,9 +4082,6 @@ enum htt_t2h_msg_type {
#define HTT_T2H_MSG_TYPE_M 0xff
#define HTT_T2H_MSG_TYPE_S 0
-#define HTT_T2H_PAYLOAD_PRESENT_M 0x100
-#define HTT_T2H_PAYLOAD_PRESENT_S 0x8
-
#define HTT_T2H_MSG_TYPE_SET(word, msg_type) \
do { \
HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE, msg_type); \
@@ -4100,9 +4090,6 @@ enum htt_t2h_msg_type {
#define HTT_T2H_MSG_TYPE_GET(word) \
(((word) & HTT_T2H_MSG_TYPE_M) >> HTT_T2H_MSG_TYPE_S)
-#define HTT_T2H_PAYLOAD_PRESENT_GET(word) \
- (((word) & HTT_T2H_PAYLOAD_PRESENT_M) >> HTT_T2H_PAYLOAD_PRESENT_S)
-
/**
* @brief target -> host version number confirmation message definition
*
@@ -8274,82 +8261,4 @@ enum htt_ring_setup_status {
(((word) & HTT_T2H_MONITOR_MAC_HEADER_NUM_MPDU_M) >> \
HTT_T2H_MONITOR_MAC_HEADER_NUM_MPDU_S)
-typedef struct {
- /** upper 4 bytes of MAC address */
- A_UINT32 mac_addr31to0;
- /** lower 2 bytes of MAC address */
- A_UINT32 mac_addr47to32;
-} htt_mac_addr;
-
-
-struct htt_rfs_cfr_hdr {
- u32 head_magic_num;
- u8 mac_addr[6];
- u8 status;
- u8 capture_bw;
- u8 channel_bw;
- u8 phy_mode;
- u16 prim20_chan;
- u16 center_freq1;
- u16 center_freq2;
- u8 capture_mode;
- u8 capture_type;
- u8 sts_count;
- u8 num_rx_chain;
- u32 timestamp;
- u32 length;
-} __packed;
-
-struct htt_rfs_cfr_dump {
- struct htt_rfs_cfr_hdr cfr_hdr;
- u16 cfr_dump[256];
- u32 tail_magic_num;
-} __packed;
-
-PREPACK struct htt_chan_change_msg {
- A_UINT32 chan_mhz; /* frequency in mhz */
- A_UINT32 band_center_freq1; /* Center frequency 1 in MHz*/
- A_UINT32 band_center_freq2; /* Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
- A_UINT32 chan_mode; /* WLAN_PHY_MODE of the channel defined in wlan_defs.h */
-} POSTPACK;
-
-PREPACK struct htt_cfr_dump_ind_type_1 {
- A_UINT32 mem_req_id:7,
- status:1,
- capture_bw:3,
- mode:3,
- sts_count:3,
- channel_bw:3,
- cap_type:4,
- vdev_id:8;
- htt_mac_addr mac_addr;
- A_UINT32 index;
- A_UINT32 length;
- A_UINT32 timestamp;
- A_UINT32 counter;
- struct htt_chan_change_msg chan;
-} POSTPACK;
-
-enum htt_cfr_capture_msg_type {
- HTT_PEER_CFR_CAPTURE_MSG_TYPE_LEGACY = 0x1,
- HTT_PEER_CFR_CAPTURE_MSG_TYPE_MAX,
-};
-
-PREPACK struct htt_cfr_dump_compl_ind {
- A_UINT32 msg_type; /* HTT_PEER_CFR_CAPTURE_MSG_TYPE */
- union {
- /* Message format when msg_type = HTT_PEER_CFR_CAPTURE_MSG_TYPE_1 */
- struct htt_cfr_dump_ind_type_1 cfr_dump_legacy;
- /* If there is a need to change the memory layout and its associated
- * HTT indication format, a new CFR capture message type can be
- * introduced and added into this union.
- */
- };
-} POSTPACK;
-
-#ifdef WLAN_OPEN_SOURCE
-void cfr_dump_to_rfs(const void *buf, const int length);
-void cfr_finalalize_relay(void);
-#endif /* WLAN_OPEN_SOURCE */
-
#endif
diff --git a/CORE/CLD_TXRX/HTT/htt_t2h.c b/CORE/CLD_TXRX/HTT/htt_t2h.c
index 99c2abe350c5..d6110c366db8 100644
--- a/CORE/CLD_TXRX/HTT/htt_t2h.c
+++ b/CORE/CLD_TXRX/HTT/htt_t2h.c
@@ -143,113 +143,6 @@ static void HTT_RX_FRAG_SET_LAST_MSDU(
#define MAX_TARGET_TX_CREDIT 204800
-#define CFR_MAGIC_NUM_HEAD 0xDEADBEAF
-#define CFR_MAGIC_NUM_TAIL 0xBEAFDEAD
-
-static void
-htt_populate_n_relay_cfr_data(struct htt_cfr_dump_ind_type_1 *cfr_ind,
- struct htt_rfs_cfr_dump *rfs_cfr_dump)
-{
- int i,j;
- u32 *cfr_data;
- u32 msg_len = __le32_to_cpu(cfr_ind->length);
-
- cfr_data= (u32*)((void *)cfr_ind + sizeof(struct htt_cfr_dump_ind_type_1));
-
- if (msg_len > sizeof(rfs_cfr_dump->cfr_dump))
- msg_len = sizeof(rfs_cfr_dump->cfr_dump);
-
- for (i=0,j=0;i < msg_len/4; i++,j+=2) {
- rfs_cfr_dump->cfr_dump[j] = (u16)(cfr_data[i] & 0xFFFF);
- rfs_cfr_dump->cfr_dump[j+1] = (u16)((cfr_data[i] >> 16) & 0xFFFF);
-#ifdef CFR_DATA_DBG
- adf_os_print("%d 0x%4x %d 0x%4x\n",j, rfs_cfr_dump->cfr_dump[j], j+1,
- rfs_cfr_dump->cfr_dump[j+1]);
-#endif
- }
-#ifdef WLAN_OPEN_SOURCE
- if (msg_len)
- cfr_dump_to_rfs(rfs_cfr_dump->cfr_dump, msg_len);
-#endif /* WLAN_OPEN_SOURCE */
-}
-
-static void
-htt_populate_rfs_cfr_header(struct htt_rfs_cfr_hdr *cfr_hdr,
- struct htt_cfr_dump_ind_type_1 *cfr_ind)
-{
- cfr_hdr->head_magic_num = CFR_MAGIC_NUM_HEAD;
- memcpy(&cfr_hdr->mac_addr, &cfr_ind->mac_addr, HTT_MAC_ADDR_LEN);
- cfr_hdr->status = cfr_ind->status;
- cfr_hdr->capture_bw = cfr_ind->capture_bw;
- cfr_hdr->channel_bw = cfr_ind->channel_bw;
- cfr_hdr->capture_mode = cfr_ind->mode;
- cfr_hdr->capture_type = cfr_ind->cap_type;
- cfr_hdr->sts_count = cfr_ind->sts_count;
-
- cfr_hdr->prim20_chan = __le32_to_cpu(cfr_ind->chan.chan_mhz);
- cfr_hdr->center_freq1 = __le32_to_cpu(cfr_ind->chan.band_center_freq1);
- cfr_hdr->center_freq2 = __le32_to_cpu(cfr_ind->chan.band_center_freq2);
- cfr_hdr->phy_mode = __le32_to_cpu(cfr_ind->chan.chan_mode);
-
- cfr_hdr->num_rx_chain = 0; /* TODO */
-
- cfr_hdr->length = __le32_to_cpu(cfr_ind->length);
-
- cfr_hdr->timestamp = __le32_to_cpu(cfr_ind->timestamp);
-
-#ifdef WLAN_OPEN_SOURCE
- cfr_dump_to_rfs(cfr_hdr, sizeof(struct htt_rfs_cfr_hdr));
-#endif /* WLAN_OPEN_SOURCE */
-}
-
-static void htt_peer_cfr_compl_ind(u_int32_t *data)
-{
- struct htt_rfs_cfr_dump rfs_cfr_dump = { };
- enum htt_cfr_capture_msg_type cfr_msg_type;
- struct htt_cfr_dump_compl_ind *cfr_dump_ind;
- u32 msg_len = 0;
-
- cfr_dump_ind = (struct htt_cfr_dump_compl_ind *)data;
-
- cfr_msg_type = __le32_to_cpu(cfr_dump_ind->msg_type);
-
- switch (cfr_msg_type) {
- case HTT_PEER_CFR_CAPTURE_MSG_TYPE_LEGACY:
- {
- msg_len = __le32_to_cpu(cfr_dump_ind->cfr_dump_legacy.length);
- /* Skip if msg_len is 0 */
- if (!msg_len)
- break;
-
-#ifdef CFR_DATA_DBG
- /* Discard if no of tones doesnt belong to 20MHz BW */
- if (msg_len != (54*4)) {
- if(msg_len)
- adf_os_print("WARN: Currently supported 53 tones "
- "in 20MHz got %d\n", msg_len/4);
- }
-#endif
- htt_populate_rfs_cfr_header(&rfs_cfr_dump.cfr_hdr,
- &cfr_dump_ind->cfr_dump_legacy);
-
- htt_populate_n_relay_cfr_data(&cfr_dump_ind->cfr_dump_legacy,
- &rfs_cfr_dump);
-
- rfs_cfr_dump.tail_magic_num = CFR_MAGIC_NUM_TAIL;
-
-#ifdef WLAN_OPEN_SOURCE
- cfr_dump_to_rfs(&rfs_cfr_dump.tail_magic_num, sizeof(u32));
-
- cfr_finalalize_relay();
-#endif /* WLAN_OPEN_SOURCE */
- break;
- }
- default:
- adf_os_print("Unsupported CFR capture method %d\n",cfr_msg_type);
- break;
- }
-}
-
/* Target to host Msg/event handler for low priority messages*/
void
htt_t2h_lp_msg_handler(void *context, adf_nbuf_t htt_t2h_msg )
@@ -257,12 +150,9 @@ htt_t2h_lp_msg_handler(void *context, adf_nbuf_t htt_t2h_msg )
struct htt_pdev_t *pdev = (struct htt_pdev_t *) context;
u_int32_t *msg_word;
enum htt_t2h_msg_type msg_type;
- u_int32_t payload_present;
msg_word = (u_int32_t *) adf_nbuf_data(htt_t2h_msg);
msg_type = HTT_T2H_MSG_TYPE_GET(*msg_word);
- payload_present = HTT_T2H_PAYLOAD_PRESENT_GET(*msg_word);
-
switch (msg_type) {
case HTT_T2H_MSG_TYPE_VERSION_CONF:
{
@@ -723,30 +613,6 @@ htt_t2h_lp_msg_handler(void *context, adf_nbuf_t htt_t2h_msg )
adf_os_mem_free(report);
break;
}
- case HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND:
- {
-#ifdef CFR_DATA_DBG
- int i;
- struct htt_cfr_dump_ind_type_1 *cfr_dump;
-#endif
- if (!payload_present)
- return;
- msg_word++;
- htt_peer_cfr_compl_ind(msg_word);
-#ifdef CFR_DATA_DBG
- msg_word++;
- cfr_dump = (struct htt_cfr_dump_ind_type_1 *) msg_word;
- adf_os_print("CFR Dump: Length=%d Counter=%d Mode=%d BW=%d\n",
- cfr_dump->length, cfr_dump->counter, cfr_dump->mode,
- cfr_dump->capture_bw);
- msg_word += sizeof(struct htt_cfr_dump_ind_type_1)/4;
- for (i=0; i<cfr_dump->length/4; i++) {
- adf_os_print("\n%d 0x%04x ",i, (u16)(*(msg_word+i) & 0xFFFF));
- adf_os_print("0x%04x ", (u16)((*(msg_word+i) >>16) & 0xFFFF));
- }
- adf_os_print("\n");
-#endif
- }
default:
break;
};
diff --git a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h
index 14107b6aec28..9fb239d9f9ad 100644
--- a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h
+++ b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h
@@ -1144,13 +1144,6 @@ struct ol_rx_reorder_history {
struct ol_rx_reorder_record record[OL_MAX_RX_REORDER_HISTORY];
};
-struct peer_cfr_capture {
- u32 cfr_enable;
- u32 cfr_period;
- u32 cfr_bandwidth;
- u32 cfr_method;
- void *priv;
-};
struct ol_txrx_peer_t {
struct ol_txrx_vdev_t *vdev;
@@ -1259,8 +1252,6 @@ struct ol_txrx_peer_t {
adf_os_time_t last_assoc_rcvd;
adf_os_time_t last_disassoc_deauth_rcvd;
struct ol_rx_reorder_history * reorder_history;
- struct peer_cfr_capture cfr_capture;
- struct dentry *cfr_peer_mac;
};
struct ol_fw_data {
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index 9def269d5537..87c7684747c0 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -273,55 +273,44 @@ enum qca_nl80211_vendor_subcmds {
/* NS Offload enable/disable cmd */
QCA_NL80211_VENDOR_SUBCMD_ND_OFFLOAD = 82,
- QCA_NL80211_VENDOR_SUBCMD_PACKET_FILTER = 83,
- QCA_NL80211_VENDOR_SUBCMD_GET_BUS_SIZE = 84,
-
- QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS = 85,
-
- /* OCB commands */
- QCA_NL80211_VENDOR_SUBCMD_OCB_SET_CONFIG = 92,
- QCA_NL80211_VENDOR_SUBCMD_OCB_SET_UTC_TIME = 93,
- QCA_NL80211_VENDOR_SUBCMD_OCB_START_TIMING_ADVERT = 94,
- QCA_NL80211_VENDOR_SUBCMD_OCB_STOP_TIMING_ADVERT = 95,
- QCA_NL80211_VENDOR_SUBCMD_OCB_GET_TSF_TIMER = 96,
- QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS = 97,
- QCA_NL80211_VENDOR_SUBCMD_DCC_CLEAR_STATS = 98,
- QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL = 99,
- QCA_NL80211_VENDOR_SUBCMD_DCC_STATS_EVENT = 100,
-
- /* subcommand to get link properties */
- QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES = 101,
- QCA_NL80211_VENDOR_SUBCMD_SETBAND = 105,
- QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE = 109,
- QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE_DECR_DB = 115,
- QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY = 116,
- QCA_NL80211_VENDOR_SUBCMD_STA_CONNECT_ROAM_POLICY = 117,
- QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG = 118,
- QCA_NL80211_VENDOR_SUBCMD_GET_STATION = 121,
-
- /* subcommand for link layer statistics extension */
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_EXT = 127,
- /* subcommand to get chain rssi value */
- QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI = 138,
- QCA_NL80211_VENDOR_SUBCMD_CHIP_PWRSAVE_FAILURE = 148,
- /* subcommand to flush peer tids */
- QCA_NL80211_VENDOR_SUBCMD_PEER_FLUSH_PENDING = 162,
- QCA_NL80211_VENDOR_SUBCMD_GET_RROP_INFO = 163,
- QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS = 164,
- QCA_NL80211_VENDOR_SUBCMD_WLAN_MAC_INFO = 165,
- QCA_NL80211_VENDOR_SUBCMD_SET_QDEPTH_THRESH = 166,
+ QCA_NL80211_VENDOR_SUBCMD_PACKET_FILTER = 83,
+ QCA_NL80211_VENDOR_SUBCMD_GET_BUS_SIZE = 84,
+
+ QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS = 85,
+
+ /* OCB commands */
+ QCA_NL80211_VENDOR_SUBCMD_OCB_SET_CONFIG = 92,
+ QCA_NL80211_VENDOR_SUBCMD_OCB_SET_UTC_TIME = 93,
+ QCA_NL80211_VENDOR_SUBCMD_OCB_START_TIMING_ADVERT = 94,
+ QCA_NL80211_VENDOR_SUBCMD_OCB_STOP_TIMING_ADVERT = 95,
+ QCA_NL80211_VENDOR_SUBCMD_OCB_GET_TSF_TIMER = 96,
+ QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS = 97,
+ QCA_NL80211_VENDOR_SUBCMD_DCC_CLEAR_STATS = 98,
+ QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL = 99,
+ QCA_NL80211_VENDOR_SUBCMD_DCC_STATS_EVENT = 100,
+
+ /* subcommand to get link properties */
+ QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES = 101,
+ QCA_NL80211_VENDOR_SUBCMD_SETBAND = 105,
+ QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE = 109,
+ QCA_NL80211_VENDOR_SUBCMD_SET_TXPOWER_SCALE_DECR_DB = 115,
+ QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY = 116,
+ QCA_NL80211_VENDOR_SUBCMD_STA_CONNECT_ROAM_POLICY = 117,
+ QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG = 118,
+ QCA_NL80211_VENDOR_SUBCMD_GET_STATION = 121,
+
+ /* subcommand for link layer statistics extension */
+ QCA_NL80211_VENDOR_SUBCMD_LL_STATS_EXT = 127,
+ /* subcommand to get chain rssi value */
+ QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI = 138,
+ QCA_NL80211_VENDOR_SUBCMD_CHIP_PWRSAVE_FAILURE = 148,
+ /* subcommand to flush peer tids */
+ QCA_NL80211_VENDOR_SUBCMD_PEER_FLUSH_PENDING = 162,
#ifdef FEATURE_WLAN_THERMAL_SHUTDOWN
- /* Thermal Shutdown cmds to protect chip */
- QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD = 167,
- QCA_NL80211_VENDOR_SUBCMD_THERMAL_EVENT = 168,
+ /* Thermal Shutdown cmds to protect chip */
+ QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD = 167,
+ QCA_NL80211_VENDOR_SUBCMD_THERMAL_EVENT = 168,
#endif /* FEATURE_WLAN_THERMAL_SHUTDOWN */
- /* Wi-Fi test configuration subcommand */
- QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION = 169,
- /* Frame filter operations for other BSSs/unassociated STAs */
- QCA_NL80211_VENDOR_SUBCMD_BSS_FILTER = 170,
- QCA_NL80211_VENDOR_SUBCMD_NAN_EXT = 171,
- QCA_NL80211_VENDOR_SUBCMD_ROAM_SCAN_EVENT = 172,
- QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG = 173,
};
/**
@@ -2835,66 +2824,6 @@ enum qca_wlan_vendor_attr_thermal_cmd {
#endif /* FEATURE_WLAN_THERMAL_SHUTDOWN */
-/**
- * enum qca_wlan_vendor_cfr_method - QCA Vendor CFR methods used by
- * attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
- * command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG
- */
-enum qca_wlan_vendor_cfr_method {
- /* CFR Method using QOS Null frame */
- QCA_WLAN_VENDOR_CFR_METHOD_QOS_NULL = 0,
-};
-
-/**
- * enum qca_wlan_vendor_peer_cfr_capture_attr - Used by the vendor command
- * QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG to configure PEER
- * Channel Frequency Response capture parameters and enable Periodic CFR
- * Capture
- */
-enum qca_wlan_vendor_peer_cfr_capture_attr {
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_INVALID = 0,
- /* 6-byte MAC address of the PEER
- * This attribute is mandatory
- */
- QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR = 1,
- /* Enable PEER CFR Capture, flag attribute
- * This attribute is mandatory to Enable Peer CFR Capture
- * If this attribute is not present, Peer CFR Capture is disabled
- */
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE = 2,
- /* BW of measurement, attribute uses the values in enum nl80211_chan_width
- * Supported values: 20, 40, 80, 80+80, 160
- * Note that all targets may not support all bandwidths
- * u8 attribute. This attribute is mandatory if attribute
- * QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used
- */
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH = 3,
- /* Periodicity of CFR measurement in msec
- * Periodicity should be multiple of Base timer
- * Current Base timer value supported is 10msecs(default)
- * 0 for one shot capture. u32 attribute
- * This attribute is mandatory if attribute
- * QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used
- */
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY = 4,
- /* Method used to capture Channel Frequency Response
- * Attribute uses the value of enum qca_wlan_vendor_cfr_method
- * u8 attribute. This attribute is mandatory if attribute
- * QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE is used
- */
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD = 5,
- /* Enable Periodic CFR Capture, flag attribute
- * This attribute is mandatory to Enable Periodic CFR Capture
- * If this attribute is not present, Periodic CFR Capture is disabled
- */
- QCA_WLAN_VENDOR_ATTR_PERIODIC_CFR_CAPTURE_ENABLE = 6,
-
- /*Keep last*/
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_MAX =
- QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST - 1,
-};
-
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0))
/**
* enum ieee80211_band - supported frequency bands
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 0fd76ae676dc..173d9a17a350 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -8703,176 +8703,6 @@ wlan_hdd_cfg80211_thermal_cmd(struct wiphy *wiphy,
return ret;
}
-static const struct nla_policy
-qca_vendor_peer_cfr_capture_cfg_policy[QCA_WLAN_VENDOR_ATTR_PEER_CFR_MAX + 1] = {
- [QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR] = { .type = NLA_UNSPEC, .len = ETH_ALEN },
- [QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE] = { .type = NLA_FLAG },
- [QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH] = { .type = NLA_U8 },
- [QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY] = { .type = NLA_U32 },
- [QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD] = { .type = NLA_U8 },
- [QCA_WLAN_VENDOR_ATTR_PERIODIC_CFR_CAPTURE_ENABLE] = { .type = NLA_FLAG },
-};
-
-/**
- * __wlan_hdd_cfr_capture_cfg_handler() - Handler to configure the CFR Parameters
- * from user space
- *
- * @wiphy: pointer to wireless wiphy structure.
- * @wdev: pointer to wireless_dev structure.
- * @data: Pointer to the CFR Parameters
- * @data_len:Length of the data passed
- *
- * Return: Return Success or Failure
- */
-static int
-__wlan_hdd_cfr_capture_cfg_handler(struct wiphy *wiphy,
- struct wireless_dev *wdev,
- const void *data, int data_len)
-{
- struct net_device *dev = wdev->netdev;
- hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
- hdd_context_t *hdd_ctx = wiphy_priv(wiphy);
- struct nlattr *tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_MAX + 1];
- struct sme_peer_cfr_capture_conf arg = {0};
- u8 periodic_cfr_enable = 0;
- eHalStatus status = eHAL_STATUS_FAILURE;
-
- if (VOS_FTM_MODE == hdd_get_conparam()) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("Command not allowed in FTM mode"));
- return -EINVAL;
- }
-
- if (wlan_hdd_validate_context(hdd_ctx))
- return -EINVAL;
-
- if (nla_parse(tb, QCA_WLAN_VENDOR_ATTR_PEER_CFR_MAX,
- data, data_len,
- qca_vendor_peer_cfr_capture_cfg_policy)) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("Invalid CFR capture policy attribute"));
- return -EINVAL;
- }
-
- if (!tb[QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR]) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("CFR MAC ADDR attribute needed"));
- return -EINVAL;
- }
-
- ether_addr_copy(arg.peer_macaddr, nla_data(tb[QCA_WLAN_VENDOR_ATTR_CFR_PEER_MAC_ADDR]));
-
- if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE])
- arg.request = WMI_PEER_CFR_CAPTURE_ENABLE;
- else arg.request = WMI_PEER_CFR_CAPTURE_DISABLE;
-
- if (arg.request == WMI_PEER_CFR_CAPTURE_ENABLE &&
- (!tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH] ||
- !tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY] ||
- !tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD])) {
- hddLog(VOS_TRACE_LEVEL_ERROR,
- FL("Request for CFR enable, missing attributes\n"));
- return -EINVAL;
- }
-
- if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY]) {
- arg.periodicity = nla_get_u32(tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_PERIODICITY]);
- if (arg.periodicity &&
- (arg.periodicity < WMI_PEER_CFR_PERIODICITY_MIN ||
- arg.periodicity > WMI_PEER_CFR_PERIODICITY_MAX)) {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("Invalid CFR capture periodicity\n"));
- return -EINVAL;
- }
- if (arg.periodicity % 10) {
- hddLog(VOS_TRACE_LEVEL_ERROR,
- FL("CFR Periodicity should be multiple of 10\n"));
- return -EINVAL;
- }
- }
-
- if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH]) {
- arg.bandwidth = nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_BANDWIDTH]);
- if (arg.bandwidth == NL80211_CHAN_WIDTH_20) {
- arg.bandwidth = WMI_PEER_CFR_CAPTURE_BW_20MHZ;
- }
- else if (arg.bandwidth == NL80211_CHAN_WIDTH_40) {
- arg.bandwidth = WMI_PEER_CFR_CAPTURE_BW_40MHZ;
- }
- else if (arg.bandwidth == NL80211_CHAN_WIDTH_80) {
- arg.bandwidth = WMI_PEER_CFR_CAPTURE_BW_80MHZ;
- }
- else if (arg.bandwidth == NL80211_CHAN_WIDTH_80P80) {
- arg.bandwidth = WMI_PEER_CFR_CAPTURE_BW_80_80MHZ;
- }
- else if (arg.bandwidth == NL80211_CHAN_WIDTH_160) {
- arg.bandwidth = WMI_PEER_CFR_CAPTURE_BW_160MHZ;
- }
- else {
- hddLog(LOGE, FL("Invalid CFR capture BW\n"));
- return -EINVAL;
- }
- /*TODO Check if requested bandwidth is supported by Peer */
- }
-
- if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD]) {
- arg.capture_method = nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD]);
- if (arg.capture_method == QCA_WLAN_VENDOR_CFR_METHOD_QOS_NULL) {
- arg.capture_method = WMI_PEER_CFR_CAPTURE_METHOD_NULL_FRAME;
- }
- else {
- hddLog(VOS_TRACE_LEVEL_ERROR, FL("CFR method not supported\n"));
- return -EINVAL;
- }
- }
-
- if (tb[QCA_WLAN_VENDOR_ATTR_PERIODIC_CFR_CAPTURE_ENABLE])
- periodic_cfr_enable = 1;
-
- arg.vdev_id = pAdapter->sessionId;
-
- hddLog(VOS_TRACE_LEVEL_INFO, FL("Peer VdevId = %d"), arg.vdev_id);
- hddLog(VOS_TRACE_LEVEL_INFO, FL("MAC ADDR = %02x:%02x:%02x:%02x:%02x:%02x"),
- arg.peer_macaddr[0], arg.peer_macaddr[1], arg.peer_macaddr[2],
- arg.peer_macaddr[3], arg.peer_macaddr[4], arg.peer_macaddr[5]);
- hddLog(VOS_TRACE_LEVEL_INFO, FL("CFR Enable = %d"), arg.request);
- hddLog(VOS_TRACE_LEVEL_INFO, FL("CFR Periodicity = %d"), arg.periodicity);
- hddLog(VOS_TRACE_LEVEL_INFO, FL("CFR Bandwidth = %d"), arg.bandwidth);
- hddLog(VOS_TRACE_LEVEL_INFO, FL("CFR Capture Method = %d"), arg.capture_method);
- hddLog(VOS_TRACE_LEVEL_INFO, FL("CFR Periodic Enable = %d"), periodic_cfr_enable);
-
- status = sme_cfr_capture_configure(arg);
- if (eHAL_STATUS_SUCCESS != status)
- return -EINVAL;
-
- status = sme_periodic_cfr_enable(periodic_cfr_enable);
- if (eHAL_STATUS_SUCCESS != status)
- return -EINVAL;
-
- return 0;
-}
-
-/**
- * wlan_hdd_cfr_capture_cfg_handler() - Handler to configure the CFR Parameters
- * from user space
- *
- * @wiphy: pointer to wireless wiphy structure.
- * @wdev: pointer to wireless_dev structure.
- * @data: Pointer to the CFR Parameters
- * @data_len:Length of the data passed
- *
- * This is called when QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG is invoked
- *
- * Return: Return Success or Failure
- */
-static int
-wlan_hdd_cfr_capture_cfg_handler(struct wiphy *wiphy,
- struct wireless_dev *wdev,
- const void *data, int data_len)
-{
- int ret;
- vos_ssr_protect(__func__);
- ret = __wlan_hdd_cfr_capture_cfg_handler(wiphy, wdev, data, data_len);
- vos_ssr_unprotect(__func__);
- return ret;
-}
-
#endif /* FEATURE_WLAN_THERMAL_SHUTDOWN */
#ifdef FEATURE_WLAN_TDLS
@@ -16158,14 +15988,6 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] =
.doit = wlan_hdd_cfg80211_thermal_cmd
},
#endif /* FEATURE_WLAN_THERMAL_SHUTDOWN */
- {
- .info.vendor_id = QCA_NL80211_VENDOR_ID,
- .info.subcmd = QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG,
- .flags = WIPHY_VENDOR_CMD_NEED_WDEV |
- WIPHY_VENDOR_CMD_NEED_NETDEV |
- WIPHY_VENDOR_CMD_NEED_RUNNING,
- .doit = wlan_hdd_cfr_capture_cfg_handler,
- },
};
/*
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index a9be5ef73b46..911a9acbff03 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -810,8 +810,6 @@ typedef struct sSirMbMsgP2p
#define SIR_HAL_THERM_THROT_SET_CONF_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 383)
#define SIR_HAL_THERM_MGMT_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 384)
-#define SIR_HAL_PEER_CFR_CAPTURE_CONF_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 385)
-#define SIR_HAL_PERIODIC_CFR_ENABLE_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 386)
#define SIR_HAL_SET_HPCS_PULSE_PARMAS (SIR_HAL_ITC_MSG_TYPES_BEGIN + 387)
#define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF)
diff --git a/CORE/SERVICES/COMMON/dbglog_host.h b/CORE/SERVICES/COMMON/dbglog_host.h
index 248d59070490..1e7f872ec1cd 100644
--- a/CORE/SERVICES/COMMON/dbglog_host.h
+++ b/CORE/SERVICES/COMMON/dbglog_host.h
@@ -243,11 +243,6 @@ void dbglog_reg_modprint(A_UINT32 mod_id, module_dbg_print printfn);
/** Register the cnss_diag activate with the wlan driver */
int cnss_diag_activate_service(void);
-#ifdef WLAN_OPEN_SOURCE
-int cfr_capture_init(wmi_unified_t wmi_handle);
-void cfr_capture_deinit(void);
-#endif /* WLAN_OPEN_SOURCE */
-
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index ff3027c30c73..4491528675eb 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -224,11 +224,6 @@ static int wma_nlo_scan_cmp_evt_handler(void *handle, u_int8_t *event,
static enum powersave_qpower_mode wma_get_qpower_config(tp_wma_handle wma);
-#ifdef WLAN_OPEN_SOURCE
-int create_peer_cfr_debug_entry(tp_wma_handle wma, void *buf);
-int destroy_peer_cfr_debug_entry(tp_wma_handle wma, void *buf);
-#endif /* WLAN_OPEN_SOURCE */
-
#ifdef FEATURE_WLAN_DIAG_SUPPORT
/**
* wma_wow_wakeup_stats_event()- send wow wakeup stats
@@ -1791,10 +1786,6 @@ void wma_remove_peer(tp_wma_handle wma, u_int8_t *bssid,
}
#endif
-#ifdef WLAN_OPEN_SOURCE
- destroy_peer_cfr_debug_entry(wma, peer);
-#endif /* WLAN_OPEN_SOURCE */
-
wmi_unified_peer_delete_send(wma->wmi_handle, peer_addr, vdev_id);
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
@@ -9766,13 +9757,6 @@ VOS_STATUS WDA_open(v_VOID_t *vos_context, v_VOID_t *os_ctx,
goto err_dbglog_init;
}
-#ifdef WLAN_OPEN_SOURCE
- vos_status = cfr_capture_init(wma_handle->wmi_handle);
- if (vos_status != VOS_STATUS_SUCCESS) {
- WMA_LOGE("%s: Error!!! Could not init CFR RFS", __func__);
- }
-#endif /* WLAN_OPEN_SOURCE */
-
/*
* Update Powersave mode
* 1 - Legacy Powersave + Deepsleep Disabled
@@ -10299,94 +10283,6 @@ out:
return status;
}
-int wmi_peer_set_cfr_capture_conf(tp_wma_handle wma, struct wmi_peer_cfr_capture_conf *arg)
-{
- wmi_peer_cfr_capture_cmd_fixed_param *cmd = NULL;
- wmi_buf_t buf = NULL;
- int status = 0, len = 0;
- struct ol_txrx_peer_t *peer;
- wmi_unified_t wmi_handle;
- ol_txrx_pdev_handle txrx_pdev;
-
- if (!wma) {
- WMA_LOGE(FL("WMA NULL, can not issue cmd"));
- return VOS_STATUS_E_INVAL;
- }
-
- wmi_handle = wma->wmi_handle;
- if (!wmi_handle) {
- WMA_LOGE(FL("WMA is closed, can not issue cmd"));
- return VOS_STATUS_E_INVAL;
- }
-
- len = sizeof(*cmd);
-
- buf = wmi_buf_alloc(wmi_handle, len);
- if (!buf) {
- WMA_LOGE("%s:wmi_buf_alloc failed", __func__);
- return VOS_STATUS_E_NOMEM;
- }
-
- cmd = (wmi_peer_cfr_capture_cmd_fixed_param *) wmi_buf_data(buf);
- WMITLV_SET_HDR(&cmd->tlv_header,
- WMITLV_TAG_STRUC_wmi_peer_cfr_capture_cmd_fixed_param,
- WMITLV_GET_STRUCT_TLVLEN(
- wmi_peer_cfr_capture_cmd_fixed_param));
-
- memcpy(&cmd->mac_addr, &arg->peer_macaddr, 6);
- cmd->request = arg->request;
- cmd->vdev_id = arg->vdev_id;
- cmd->periodicity = arg->periodicity;
- cmd->bandwidth = arg->bandwidth;
- cmd->capture_method = arg->capture_method;
-
- status = wmi_unified_cmd_send(wmi_handle, buf, len,
- WMI_PEER_CFR_CAPTURE_CMDID);
-
- if (status != EOK) {
- WMA_LOGE("Failed to send WMI_PEER_CFR_CAPTURE_CMDID command");
- wmi_buf_free(buf);
- return VOS_STATUS_E_FAILURE;
- }
-
- txrx_pdev = vos_get_context(VOS_MODULE_ID_TXRX, wma->vos_context);
-
- peer = ol_txrx_peer_find_hash_find(txrx_pdev, (u8 *)&arg->peer_macaddr, 0, 1);
- if (peer) {
- peer->cfr_capture.cfr_enable = arg->request;
- peer->cfr_capture.cfr_period = arg->periodicity;
- peer->cfr_capture.cfr_bandwidth = arg->bandwidth;
- peer->cfr_capture.cfr_method = arg->capture_method;
- adf_os_atomic_dec(&peer->ref_cnt);
- }
- return VOS_STATUS_SUCCESS;
-}
-
-int wmi_peer_periodic_cfr_enable(tp_wma_handle wma, u8 cfr_enable)
-{
- int ret = 0;
- wmi_unified_t wmi_handle;
-
- if (!wma) {
- WMA_LOGE(FL("WMA NULL, can not issue cmd"));
- return VOS_STATUS_E_INVAL;
- }
-
- wmi_handle = wma->wmi_handle;
- if (!wmi_handle) {
- WMA_LOGE(FL("WMA is closed, can not issue cmd"));
- return VOS_STATUS_E_INVAL;
- }
-
- ret = wmi_unified_pdev_set_param(wmi_handle,
- WMI_PDEV_PARAM_PER_PEER_PERIODIC_CFR_ENABLE,
- cfr_enable);
- if (ret) {
- WMA_LOGE("wmi_unified_vdev_set_param_send failed ret %d", ret);
- }
- return ret;
-}
-
static int wmi_unified_peer_create_send(wmi_unified_t wmi,
const u_int8_t *peer_addr, u_int32_t peer_type,
u_int32_t vdev_id)
@@ -10452,10 +10348,6 @@ VOS_STATUS wma_create_peer(tp_wma_handle wma, ol_txrx_pdev_handle pdev,
WMA_LOGE("%s: Created peer with peer_addr %pM vdev_id %d, peer_count - %d",
__func__, peer_addr, vdev_id, wma->interfaces[vdev_id].peer_count);
-#ifdef WLAN_OPEN_SOURCE
- create_peer_cfr_debug_entry(wma, (void *)peer);
-#endif /* WLAN_OPEN_SOURCE */
-
#ifdef QCA_IBSS_SUPPORT
/* for each remote ibss peer, clear its keys */
if (wma_is_vdev_in_ibss_mode(wma, vdev_id)
@@ -35678,15 +35570,6 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
}
vos_mem_free(msg->bodyptr);
break;
- case WDA_PEER_CFR_CAPTURE_CONF_CMD:
- wmi_peer_set_cfr_capture_conf(wma_handle,
- (struct wmi_peer_cfr_capture_conf *) msg->bodyptr);
- vos_mem_free(msg->bodyptr);
- break;
- case WDA_PERIODIC_CFR_ENABLE_CMD:
- wmi_peer_periodic_cfr_enable(wma_handle, *((u8 *)msg->bodyptr));
- vos_mem_free(msg->bodyptr);
- break;
case WDA_SET_HPCS_PULSE_PARAMS:
wma_set_hpcs_pulse_params(wma_handle,
(struct hal_hpcs_pulse_params*) msg->bodyptr);
@@ -37940,10 +37823,6 @@ VOS_STATUS wma_close(v_VOID_t *vos_ctx)
vos_mem_zero(&wma_handle->wow, sizeof(struct wma_wow));
wma_runtime_context_deinit(wma_handle);
-#ifdef WLAN_OPEN_SOURCE
- cfr_capture_deinit();
-#endif /* WLAN_OPEN_SOURCE */
-
/* unregister Firmware debug log */
vos_status = dbglog_deinit(wma_handle->wmi_handle);
if(vos_status != VOS_STATUS_SUCCESS)
diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h
index 504228d98ad6..0820e9f4aacf 100644
--- a/CORE/SERVICES/WMA/wma.h
+++ b/CORE/SERVICES/WMA/wma.h
@@ -971,7 +971,6 @@ typedef struct wma_handle {
bool sub_20_support;
bool get_one_peer_info;
t_dpd_recal_mgmt dpd_recal_info;
- struct mutex cfr_conf_mutex;
}t_wma_handle, *tp_wma_handle;
struct wma_target_cap {
@@ -1959,13 +1958,4 @@ struct wma_beacon_interval_reset_req {
uint8_t vdev_id;
uint16_t interval;
};
-
-struct wmi_peer_cfr_capture_conf {
- u32 vdev_id;
- wmi_mac_addr peer_macaddr;
- u32 request;
- u32 periodicity;
- u32 bandwidth;
- u32 capture_method;
-};
#endif
diff --git a/CORE/SERVICES/WMI/wmi_unified_priv.h b/CORE/SERVICES/WMI/wmi_unified_priv.h
index 33a0d5dc0306..b567e299d17c 100644
--- a/CORE/SERVICES/WMI/wmi_unified_priv.h
+++ b/CORE/SERVICES/WMI/wmi_unified_priv.h
@@ -84,7 +84,6 @@ struct wmi_unified {
#ifdef WLAN_OPEN_SOURCE
struct fwdebug dbglog;
struct dentry *debugfs_phy;
- struct dentry *cfr_stations;
#endif /* WLAN_OPEN_SOURCE */
#ifdef WMI_INTERFACE_EVENT_LOGGING
@@ -98,7 +97,6 @@ struct wmi_unified {
bool tgt_force_assert_enable;
A_BOOL tag_crash_inject;
void (*wma_wow_tx_complete_cbk)(ol_scn_t scn_handle);
- u8 cfr_enable;
};
#define ANT_DIV_SET_PERIOD(probe_period, stay_period) \
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 16a77a0ab767..874b2a4e0b93 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -4974,17 +4974,6 @@ eHalStatus sme_thermal_throttle_mgmt_cmd(tHalHandle hHal, tANI_U16 lower_thresh_
uint32_t sme_unpack_rsn_ie(tHalHandle hal, uint8_t *buf,
uint8_t buf_len, tDot11fIERSN *rsn_ie);
-struct sme_peer_cfr_capture_conf {
- u32 vdev_id;
- tSirMacAddr peer_macaddr;
- u32 request;
- u32 periodicity;
- u32 bandwidth;
- u32 capture_method;
-};
-eHalStatus sme_periodic_cfr_enable(u8 cfr_enable);
-eHalStatus sme_cfr_capture_configure(struct sme_peer_cfr_capture_conf arg);
-
typedef struct {
uint32_t vdev_id; /* Vdev ID */
uint32_t start; /* Start/Stop */
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index df4c76cb26a0..3a017b311e81 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -18217,61 +18217,6 @@ eHalStatus sme_thermal_throttle_set_conf_cmd(tHalHandle hHal, bool enable,
return eHAL_STATUS_SUCCESS;
}
-eHalStatus sme_cfr_capture_configure(struct sme_peer_cfr_capture_conf arg)
-{
- vos_msg_t msg;
- struct sme_peer_cfr_capture_conf *cfr_cfg_data;
- cfr_cfg_data = vos_mem_malloc(sizeof(*cfr_cfg_data));
- if (!cfr_cfg_data) {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Unable to allocate memory"));
- return eHAL_STATUS_FAILED_ALLOC;
- }
-
- vos_mem_zero(cfr_cfg_data, sizeof(*cfr_cfg_data));
-
- memcpy(cfr_cfg_data, &arg, sizeof(*cfr_cfg_data));
-
- msg.type = WDA_PEER_CFR_CAPTURE_CONF_CMD;
- msg.reserved = 0;
- msg.bodyptr = cfr_cfg_data;
-
- if (VOS_STATUS_SUCCESS != vos_mq_post_message(VOS_MODULE_ID_WDA, &msg)) {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Unable to post WDA_PEER_CFR_CAPTURE_CONF_CMD message"));
- vos_mem_free(cfr_cfg_data);
- return eHAL_STATUS_FAILURE;
- }
- return eHAL_STATUS_SUCCESS;
-}
-
-eHalStatus sme_periodic_cfr_enable(u8 cfr_enable)
-{
- vos_msg_t msg;
- u8 *cfr_data;
-
- cfr_data = vos_mem_malloc(sizeof(*cfr_data));
- if (!cfr_data) {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Unable to allocate memory"));
- return eHAL_STATUS_FAILED_ALLOC;
- }
-
- *cfr_data = cfr_enable;
-
- msg.type = WDA_PERIODIC_CFR_ENABLE_CMD;
- msg.reserved = 0;
- msg.bodyptr = cfr_data;
-
- if (VOS_STATUS_SUCCESS != vos_mq_post_message(VOS_MODULE_ID_WDA, &msg)) {
- VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
- FL("Unable to post WDA_PEER_CFR_CAPTURE_CONF_CMD message"));
- vos_mem_free(cfr_data);
- return eHAL_STATUS_FAILURE;
- }
- return eHAL_STATUS_SUCCESS;
-}
-
/**
* sme_set_tsfcb() - set callback which to handle WMI_VDEV_TSF_REPORT_EVENTID
*
diff --git a/CORE/UTILS/FWLOG/dbglog_host.c b/CORE/UTILS/FWLOG/dbglog_host.c
index 486af0823bb6..f6a410924203 100644
--- a/CORE/UTILS/FWLOG/dbglog_host.c
+++ b/CORE/UTILS/FWLOG/dbglog_host.c
@@ -49,7 +49,6 @@
#ifdef WLAN_OPEN_SOURCE
#include <linux/debugfs.h>
#endif /* WLAN_OPEN_SOURCE */
-#include <linux/relay.h>
#include "wmi_unified_priv.h"
#ifdef MULTI_IF_NAME
@@ -59,8 +58,6 @@
#endif
#define DEBUGFS_BLOCK_NAME "dbglog_block"
-#define CFR_DEBUGFS_CAPT "cfr_capture"
-
#define ATH_MODULE_NAME fwlog
#include <a_debug.h>
#define FWLOG_DEBUG ATH_DEBUG_MAKE_MODULE_MASK(0)
@@ -4713,312 +4710,3 @@ dbglog_deinit(wmi_unified_t wmi_handle)
kd_nl_init = FALSE;
return res;
}
-
-#ifdef WLAN_OPEN_SOURCE
-static ssize_t wlan_cfr_dbg_read_cfr_capture(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ol_txrx_peer_t *peer = file->private_data;
- tp_wma_handle wma = (tp_wma_handle)peer->cfr_capture.priv;
- char buf[512];
- int len = 0;
-
- mutex_lock(&wma->cfr_conf_mutex);
- len = scnprintf(buf, sizeof(buf) - len, "cfr_status: %s\n"
- "cfr_bandwidth: %dMHz\ncfr_period: %d ms\ncfr_method: %d\n",
- (peer->cfr_capture.cfr_enable) ? "enabled" :
- "disabled", (peer->cfr_capture.cfr_bandwidth == 0) ?
- 20 : (peer->cfr_capture.cfr_bandwidth == 1) ?
- 40 : 80, peer->cfr_capture.cfr_period,
- peer->cfr_capture.cfr_method);
- mutex_unlock(&wma->cfr_conf_mutex);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-extern int wmi_peer_set_cfr_capture_conf(tp_wma_handle wma, struct wmi_peer_cfr_capture_conf *arg);
-
-static ssize_t wlan_cfr_dbg_write_cfr_capture(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct ol_txrx_peer_t *peer = file->private_data;
- tp_wma_handle wma = (tp_wma_handle)peer->cfr_capture.priv;
- struct wmi_peer_cfr_capture_conf param = {0};
- u32 per_peer_cfr_status = 0, per_peer_cfr_bw = 0;
- u32 per_peer_cfr_method = 0, per_peer_cfr_period = 0;
- int ret = 0;
- char buf[64] = {0};
-
- simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf, count);
-
- mutex_lock(&wma->cfr_conf_mutex);
-
- ret = sscanf(buf, "%u %u %u %u", &per_peer_cfr_status, &per_peer_cfr_bw,
- &per_peer_cfr_period, &per_peer_cfr_method);
-
- if (ret < 1) {
- ret = -EINVAL;
- goto out;
- }
-
- if (per_peer_cfr_status && ret != 4) {
- ret = -EINVAL;
- goto out;
- }
-
- if (per_peer_cfr_status == peer->cfr_capture.cfr_enable &&
- per_peer_cfr_period == peer->cfr_capture.cfr_period &&
- per_peer_cfr_bw == peer->cfr_capture.cfr_bandwidth &&
- per_peer_cfr_method == peer->cfr_capture.cfr_method) {
- if (per_peer_cfr_period) {
- ret = count;
- goto out;
- }
- }
-
- if (per_peer_cfr_status > WMI_PEER_CFR_CAPTURE_ENABLE ||
- per_peer_cfr_status < WMI_PEER_CFR_CAPTURE_DISABLE ||
- per_peer_cfr_bw >= WMI_PEER_CFR_CAPTURE_BW_MAX ||
- per_peer_cfr_bw < WMI_PEER_CFR_CAPTURE_BW_20MHZ ||
- per_peer_cfr_method < WMI_PEER_CFR_CAPTURE_METHOD_NULL_FRAME ||
- per_peer_cfr_method >= WMI_PEER_CFR_CAPTURE_METHOD_MAX) {
- ret = -EINVAL;
- goto out;
- }
-
- /*TODO: Need rework when base time is configurable*/
- if (per_peer_cfr_period &&
- (per_peer_cfr_period < WMI_PEER_CFR_PERIODICITY_MIN ||
- per_peer_cfr_period > WMI_PEER_CFR_PERIODICITY_MAX)) {
- ret = -EINVAL;
- goto out;
- }
-
- /*TODO:Need correction for 80+80 MHz*/
- if (per_peer_cfr_period % 10) {
- ret = -EINVAL;
- goto out;
- }
-
- if (!per_peer_cfr_status) {
- per_peer_cfr_bw = peer->cfr_capture.cfr_bandwidth;
- per_peer_cfr_period = peer->cfr_capture.cfr_period;
- per_peer_cfr_method = peer->cfr_capture.cfr_method;
- }
-
- param.vdev_id = peer->vdev->vdev_id;
- param.request = per_peer_cfr_status;
- param.periodicity = per_peer_cfr_period;
- param.bandwidth = per_peer_cfr_bw;
- param.capture_method = per_peer_cfr_method;
- memcpy(&param.peer_macaddr, &peer->mac_addr.align4, 6);
-
- ret = wmi_peer_set_cfr_capture_conf(wma, &param);
- if (ret) {
- AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("failed to send cfr capture info\n"));
- goto out;
- }
-
- ret = count;
-out:
- mutex_unlock(&wma->cfr_conf_mutex);
- return ret;
-}
-
-static const struct file_operations fops_cfr_capture = {
- .read = wlan_cfr_dbg_read_cfr_capture,
- .write = wlan_cfr_dbg_write_cfr_capture,
- .open = simple_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek,
-};
-
-extern int wmi_peer_periodic_cfr_enable(tp_wma_handle wma, u8 cfr_enable);
-
-static ssize_t wlan_peer_write_cfr_enable(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- tp_wma_handle wma = file->private_data;
- wmi_unified_t wmi_handle = wma->wmi_handle;
- u8 cfr_enable;
- int ret;
-
- if (kstrtou8_from_user(user_buf, count, 0, &cfr_enable))
- return -EINVAL;
-
- if (cfr_enable > 1 || cfr_enable < 0) {
- ret = -EINVAL;
- goto exit;
- }
-
- if (wmi_handle->cfr_enable == cfr_enable) {
- ret = count;
- goto exit;
- }
-
- wmi_handle->cfr_enable = cfr_enable;
-
- ret = wmi_peer_periodic_cfr_enable(wma, cfr_enable);
- if (ret) {
- AR_DEBUG_PRINTF(ATH_DEBUG_ERR,("CFR capture enable failed from debugfs: %d\n",ret));
- goto exit;
- }
-
- ret = count;
-exit:
- return ret;
-}
-
-static ssize_t wlan_peer_read_cfr_enable(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- tp_wma_handle wma = file->private_data;
- wmi_unified_t wmi_handle = wma->wmi_handle;
- int len = 0;
- char buf[32];
-
- len = scnprintf(buf, sizeof(buf) - len, "%d\n",
- wmi_handle->cfr_enable);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static const struct file_operations fops_cfr_enable = {
- .read = wlan_peer_read_cfr_enable,
- .write = wlan_peer_write_cfr_enable,
- .open = simple_open,
- .owner = THIS_MODULE,
- .llseek = default_llseek
-};
-
-bool create_periodic_cfr_enable_onetime;
-
-int destroy_peer_cfr_debug_entry(tp_wma_handle wma, void *buf)
-{
- struct ol_txrx_peer_t *peer = (struct ol_txrx_peer_t *)buf;
- wmi_unified_t wmi_handle = wma->wmi_handle;
-
- if (!wmi_handle->debugfs_phy)
- return -1;
-
- if (peer->cfr_peer_mac)
- debugfs_remove_recursive(peer->cfr_peer_mac);
-
- return 0;
-}
-
-int create_peer_cfr_debug_entry(tp_wma_handle wma, void *buf)
-{
- char macdir[18];
- struct ol_txrx_peer_t *peer = (struct ol_txrx_peer_t *)buf;
- wmi_unified_t wmi_handle = wma->wmi_handle;
-
- if (!wmi_handle->debugfs_phy)
- return -1;
-
- if (!create_periodic_cfr_enable_onetime) {
- debugfs_create_file("periodic_cfr_enable", 0600, wmi_handle->debugfs_phy,
- wma, &fops_cfr_enable);
-
- wmi_handle->cfr_stations = debugfs_create_dir("stations", wmi_handle->debugfs_phy);
- if(!wmi_handle->cfr_stations)
- return -ENOMEM;
-
- create_periodic_cfr_enable_onetime = TRUE;
- }
-
- sprintf(&macdir[0], "%02x" , peer->mac_addr.raw[0]);
- macdir[2] = ':';
- sprintf(&macdir[3], "%02x" , peer->mac_addr.raw[1]);
- macdir[5] = ':';
- sprintf(&macdir[6], "%02x" , peer->mac_addr.raw[2]);
- macdir[8] = ':';
- sprintf(&macdir[9], "%02x" , peer->mac_addr.raw[3]);
- macdir[11]= ':';
- sprintf(&macdir[12], "%02x" ,peer->mac_addr.raw[4]);
- macdir[14] = ':';
- sprintf(&macdir[15], "%02x" ,peer->mac_addr.raw[5]);
- macdir[17] = '\0';
-
- peer->cfr_peer_mac = debugfs_create_dir(macdir, wmi_handle->cfr_stations);
- if (!peer->cfr_peer_mac)
- return -ENOMEM;
-
- peer->cfr_capture.priv = (void*)wma;
- debugfs_create_file(CFR_DEBUGFS_CAPT, 0644 , peer->cfr_peer_mac,
- peer, &fops_cfr_capture);
-
- AR_DEBUG_PRINTF(ATH_DEBUG_INFO, ("DEBUGFS PEER MAC = 0x%x:0x%x:0x%x:0x%x:0x%x:0x%x",
- peer->mac_addr.raw[0], peer->mac_addr.raw[1],
- peer->mac_addr.raw[2], peer->mac_addr.raw[3],
- peer->mac_addr.raw[4], peer->mac_addr.raw[5]));
-
- mutex_init(&wma->cfr_conf_mutex);
- return TRUE;
-}
-
-struct rchan *rfs_cfr_capture;
-
-void cfr_finalalize_relay(void)
-{
- if (!rfs_cfr_capture)
- return;
- relay_flush(rfs_cfr_capture);
-}
-
-void cfr_dump_to_rfs(const void *buf, const int length)
-{
- if (!rfs_cfr_capture)
- return;
-
- relay_write(rfs_cfr_capture, buf, length);
-}
-
-static struct dentry *create_buf_file_handler(const char *filename,
- struct dentry *parent,
- umode_t mode,
- struct rchan_buf *buf,
- int *is_global)
-{
- struct dentry *buf_file;
- buf_file = debugfs_create_file(filename, mode, parent, buf,
- &relay_file_operations);
- *is_global = 1;
- return buf_file;
-}
-
-static int remove_buf_file_handler(struct dentry *dentry)
-{
- debugfs_remove(dentry);
- return 0;
-}
-
-static struct rchan_callbacks rfs_cfr_capture_cb = {
- .create_buf_file = create_buf_file_handler,
- .remove_buf_file = remove_buf_file_handler,
-};
-
-int cfr_capture_init(wmi_unified_t wmi_handle)
-{
- if (!wmi_handle->debugfs_phy)
- return -1;
-
- rfs_cfr_capture = relay_open("cfr_dump", wmi_handle->debugfs_phy,
- 1100, 2000, &rfs_cfr_capture_cb, NULL);
- if (!rfs_cfr_capture)
- return -1;
-
- return 0;
-}
-
-void cfr_capture_deinit(void)
-{
- if (rfs_cfr_capture) {
- relay_close(rfs_cfr_capture);
- rfs_cfr_capture = NULL;
- }
-}
-#endif /* WLAN_OPEN_SOURCE */
diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h
index d377ae333318..6798d16263f8 100644
--- a/CORE/WDA/inc/wlan_qct_wda.h
+++ b/CORE/WDA/inc/wlan_qct_wda.h
@@ -1117,9 +1117,6 @@ tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
#define WDA_SET_MOTION_DET_BASE_LINE_ENABLE SIR_HAL_SET_MOTION_DET_BASE_LINE_ENABLE
#endif
-#define WDA_PEER_CFR_CAPTURE_CONF_CMD SIR_HAL_PEER_CFR_CAPTURE_CONF_CMD
-#define WDA_PERIODIC_CFR_ENABLE_CMD SIR_HAL_PERIODIC_CFR_ENABLE_CMD
-
#define WDA_SET_HPCS_PULSE_PARAMS SIR_HAL_SET_HPCS_PULSE_PARMAS
tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);