diff options
| author | Zhang Qian <zhangq@codeaurora.org> | 2018-11-07 03:21:59 -0800 |
|---|---|---|
| committer | Qian Zhang <zhangq@codeaurora.org> | 2018-11-09 11:09:32 +0800 |
| commit | e31bab2e5361296c9e5a04ed1fb4283dc73e31a8 (patch) | |
| tree | 360558040bd2d5d185488eacbcc9f0cfc63ff000 | |
| parent | dd3ce456e46af6d6a5c89cf4704fed5c364a59c8 (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.h | 91 | ||||
| -rw-r--r-- | CORE/CLD_TXRX/HTT/htt_t2h.c | 134 | ||||
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_txrx_types.h | 9 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg80211.h | 143 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 178 | ||||
| -rw-r--r-- | CORE/MAC/src/include/sirParams.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/dbglog_host.h | 5 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 121 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified_priv.h | 2 | ||||
| -rw-r--r-- | CORE/SME/inc/sme_Api.h | 11 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Api.c | 55 | ||||
| -rw-r--r-- | CORE/UTILS/FWLOG/dbglog_host.c | 312 | ||||
| -rw-r--r-- | CORE/WDA/inc/wlan_qct_wda.h | 3 |
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(¶m.peer_macaddr, &peer->mac_addr.align4, 6); - - ret = wmi_peer_set_cfr_capture_conf(wma, ¶m); - 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); |
