From 17254eddc8098b384d957264d82ba9090cdabe2b Mon Sep 17 00:00:00 2001 From: Tallapragada Kalyan Date: Fri, 14 Jun 2019 18:13:51 +0530 Subject: [PATCH 01/13] qcacmn: Delete WDS AST entry if the hw_peer_id is invalid in peer map Delete WDS AST entry if the hw_peer_id is invalid in peer map in cases where the HW exceeds the max hash skid it can support the AST entry will not be added and as an indication of this the host will receive a peer map event with hw_index as 0xffff Host has to check for this type of hw_index and appropriately delete the AST entry from the HOST table. Change-Id: I9a135517440b9b20edd3ffd990d89876b7e34047 CRs-Fixed: 2460116 --- dp/wifi3.0/dp_main.c | 2 + dp/wifi3.0/dp_peer.c | 87 ++++++++++++++++++++++++++++++++----------- dp/wifi3.0/dp_types.h | 1 + 3 files changed, 68 insertions(+), 22 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 17982e30a8bc..80176a6b2534 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -1028,6 +1028,8 @@ void dp_print_ast_stats(struct dp_soc *soc) DP_PRINT_STATS(" Entries Added = %d", soc->stats.ast.added); DP_PRINT_STATS(" Entries Deleted = %d", soc->stats.ast.deleted); DP_PRINT_STATS(" Entries Agedout = %d", soc->stats.ast.aged_out); + DP_PRINT_STATS(" Entries MAP ERR = %d", soc->stats.ast.map_err); + DP_PRINT_STATS("AST Table:"); qdf_spin_lock_bh(&soc->ast_lock); diff --git a/dp/wifi3.0/dp_peer.c b/dp/wifi3.0/dp_peer.c index 6b0c0ad7cb7e..338799ca652f 100644 --- a/dp/wifi3.0/dp_peer.c +++ b/dp/wifi3.0/dp_peer.c @@ -1089,10 +1089,22 @@ void dp_peer_ast_send_wds_del(struct dp_soc *soc, ast_entry->delete_in_progress = true; } -static void dp_peer_ast_free_entry(struct dp_soc *soc, - struct dp_ast_entry *ast_entry) +/** + * dp_peer_ast_free_entry_by_mac() - find ast entry by MAC address and delete + * @soc: soc handle + * @peer: peer handle + * @mac_addr: mac address of the AST entry to searc and delete + * + * find the ast entry from the peer list using the mac address and free + * the entry. + * + * Return: SUCCESS or NOENT + */ +static int dp_peer_ast_free_entry_by_mac(struct dp_soc *soc, + struct dp_peer *peer, + uint8_t *mac_addr) { - struct dp_peer *peer = ast_entry->peer; + struct dp_ast_entry *ast_entry; void *cookie = NULL; txrx_ast_free_cb cb = NULL; @@ -1102,8 +1114,14 @@ static void dp_peer_ast_free_entry(struct dp_soc *soc, */ qdf_spin_lock_bh(&soc->ast_lock); - if (ast_entry->is_mapped) + + ast_entry = dp_peer_ast_list_find(soc, peer, mac_addr); + if (!ast_entry) { + qdf_spin_unlock_bh(&soc->ast_lock); + return QDF_STATUS_E_NOENT; + } else if (ast_entry->is_mapped) { soc->ast_table[ast_entry->ast_idx] = NULL; + } TAILQ_REMOVE(&peer->ast_entry_list, ast_entry, ase_list_elem); DP_STATS_INC(soc, ast.deleted, 1); @@ -1117,6 +1135,7 @@ static void dp_peer_ast_free_entry(struct dp_soc *soc, if (ast_entry == peer->self_ast_entry) peer->self_ast_entry = NULL; + soc->num_ast_entries--; qdf_spin_unlock_bh(&soc->ast_lock); if (cb) { @@ -1126,7 +1145,8 @@ static void dp_peer_ast_free_entry(struct dp_soc *soc, CDP_TXRX_AST_DELETED); } qdf_mem_free(ast_entry); - soc->num_ast_entries--; + + return QDF_STATUS_SUCCESS; } struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc, @@ -1448,19 +1468,51 @@ dp_rx_peer_map_handler(void *soc_handle, uint16_t peer_id, peer_mac_addr[2], peer_mac_addr[3], peer_mac_addr[4], peer_mac_addr[5], vdev_id); - if ((hw_peer_id < 0) || - (hw_peer_id >= wlan_cfg_get_max_ast_idx(soc->wlan_cfg_ctx))) { - QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, - "invalid hw_peer_id: %d", hw_peer_id); - qdf_assert_always(0); - } - /* Peer map event for WDS ast entry get the peer from * obj map */ if (is_wds) { peer = soc->peer_id_to_obj_map[peer_id]; + /* + * In certain cases like Auth attack on a repeater + * can result in the number of ast_entries falling + * in the same hash bucket to exceed the max_skid + * length supported by HW in root AP. In these cases + * the FW will return the hw_peer_id (ast_index) as + * 0xffff indicating HW could not add the entry in + * its table. Host has to delete the entry from its + * table in these cases. + */ + if (hw_peer_id == HTT_INVALID_PEER) { + DP_STATS_INC(soc, ast.map_err, 1); + if (!dp_peer_ast_free_entry_by_mac(soc, + peer, + peer_mac_addr)) + return; + + dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u", + peer, peer->peer_ids[0], + peer->mac_addr.raw, peer_mac_addr, vdev_id, + is_wds); + + return; + } + } else { + /* + * It's the responsibility of the CP and FW to ensure + * that peer is created successfully. Ideally DP should + * not hit the below condition for directly assocaited + * peers. + */ + if ((hw_peer_id < 0) || + (hw_peer_id >= + wlan_cfg_get_max_ast_idx(soc->wlan_cfg_ctx))) { + QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, + "invalid hw_peer_id: %d", hw_peer_id); + qdf_assert_always(0); + } + peer = dp_peer_find_add_id(soc, peer_mac_addr, peer_id, hw_peer_id, vdev_id); @@ -1515,7 +1567,6 @@ dp_rx_peer_unmap_handler(void *soc_handle, uint16_t peer_id, uint8_t is_wds) { struct dp_peer *peer; - struct dp_ast_entry *ast_entry; struct dp_soc *soc = (struct dp_soc *)soc_handle; uint8_t i; @@ -1534,16 +1585,8 @@ dp_rx_peer_unmap_handler(void *soc_handle, uint16_t peer_id, /* If V2 Peer map messages are enabled AST entry has to be freed here */ if (soc->is_peer_map_unmap_v2 && is_wds) { - - qdf_spin_lock_bh(&soc->ast_lock); - ast_entry = dp_peer_ast_list_find(soc, peer, - mac_addr); - qdf_spin_unlock_bh(&soc->ast_lock); - - if (ast_entry) { - dp_peer_ast_free_entry(soc, ast_entry); + if (!dp_peer_ast_free_entry_by_mac(soc, peer, mac_addr)) return; - } dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u", peer, peer->peer_ids[0], diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 54c1cae4268d..0b9cad2af8f7 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -644,6 +644,7 @@ struct dp_soc_stats { uint32_t added; uint32_t deleted; uint32_t aged_out; + uint32_t map_err; } ast; /* SOC level TX stats */ From 746c5c67d664e5f6afc658b229b1e954bd0b938f Mon Sep 17 00:00:00 2001 From: Rakesh Pillai Date: Thu, 27 Jun 2019 16:42:46 +0530 Subject: [PATCH 02/13] qcacmn: Initialize peer bufq and info_lock on reuse Currently in case when a peer handle is reused, the info_lock and bufq resources are not getting initialized. Hence when this peer handle is deleted upon the subsequent peer delete, the info_lock and bufq resources are freed without being initialized. Initialize the peer info_lock and bufq resources when the peer handle is being reused. CRs-Fixed: 2476985 Change-Id: Ib442b02e05b8934a6f7c614e1fc643598637fea5 --- dp/wifi3.0/dp_main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 80176a6b2534..7d246f500bf1 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -5093,6 +5093,10 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle, peer->ctrl_peer = ctrl_peer; dp_local_peer_id_alloc(pdev, peer); + + qdf_spinlock_create(&peer->peer_info_lock); + dp_peer_rx_bufq_resources_init(peer); + DP_STATS_INIT(peer); DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI); From e44904327a5c827f89b022225734ac1e7f1b9b25 Mon Sep 17 00:00:00 2001 From: Santosh Anbu Date: Thu, 27 Jun 2019 12:03:54 +0530 Subject: [PATCH 03/13] qcacmn: Update doc for serialization commands Add change to update the doc section for the list of commands supported by the serialization module. Change-Id: I3534d3798291fa259c8ee4de38df8c0e8649e5ab CRs-Fixed: 2477833 --- .../inc/wlan_serialization_api.h | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/umac/cmn_services/serialization/inc/wlan_serialization_api.h b/umac/cmn_services/serialization/inc/wlan_serialization_api.h index 90c5d5ee2843..8002aec5db61 100644 --- a/umac/cmn_services/serialization/inc/wlan_serialization_api.h +++ b/umac/cmn_services/serialization/inc/wlan_serialization_api.h @@ -159,7 +159,37 @@ typedef QDF_STATUS (*wlan_ser_umac_cmd_cb)(void *umac_cmd); /** * enum wlan_umac_cmd_id - Command Type - * @WLAN_SER_CMD_SCAN: Scan command + * @WLAN_SER_CMD_SCAN: Scan command + * @WLAN_SER_CMD_NONSCAN: Non-scan command + * @WLAN_SER_CMD_HDD_ISSUE_REASSOC_SAME_AP: HDD Reassoc cmd + * @WLAN_SER_CMD_SME_ISSUE_REASSOC_SAME_AP: SME Reassoc cmd + * @WLAN_SER_CMD_SME_ISSUE_DISASSOC_FOR_HANDOFF: SME Disassoc cmd + * @WLAN_SER_CMD_SME_ISSUE_ASSOC_TO_SIMILAR_AP: SME Assoc cmd + * @WLAN_SER_CMD_FORCE_IBSS_LEAVE: IBSS leave AP cmd + * @WLAN_SER_CMD_SME_ISSUE_FT_REASSOC: SME reassoc cmd + * @WLAN_SER_CMD_FORCE_DISASSOC_STA: Force diassoc for STA vap + * @WLAN_SER_CMD_FORCE_DEAUTH_STA: Force deauth for STA vap + * @WLAN_SER_CMD_PERFORM_PRE_AUTH: Pre auth ops cmd + * @WLAN_SER_CMD_WM_STATUS_CHANGE: WM status modification cmd + * @WLAN_SER_CMD_NDP_INIT_REQ: NDP init request cmd + * @WLAN_SER_CMD_NDP_RESP_REQ: NDP response to request cmd + * @WLAN_SER_CMD_NDP_DATA_END_INIT_REQ: NDP data end init request + * @WLAN_SER_CMD_NDP_END_ALL_REQ: NDP close all request + * @WLAN_SER_CMD_ADDTS: ADD Ts cmd + * @WLAN_SER_CMD_DELTS: Del Ts cmd + * @WLAN_SER_CMD_TDLS_SEND_MGMT: TDLS mgmt send cmd + * @WLAN_SER_CMD_TDLS_ADD_PEER: TDLS cmd to add peer + * @WLAN_SER_CMD_TDLS_DEL_PEER: TDLS cmd to del peer + * @WLAN_SER_CMD_SET_HW_MODE: Cmd to set hardware mode change + * @WLAN_SER_CMD_NSS_UPDATE: Cmd to update NSS config + * @WLAN_SER_CMD_SET_DUAL_MAC_CONFIG: Cmd to set dual mac + * @WLAN_SER_CMD_SET_ANTENNA_MODE: Set antenna mode + * @WLAN_SER_CMD_DEL_STA_SESSION: Cmd to del STA session + * @WLAN_SER_CMD_VDEV_START_BSS: Cmd to start a AP VDEV + * @WLAN_SER_CMD_VDEV_STOP_BSS: Cmd to stop a AP VDEV + * @WLAN_SER_CMD_VDEV_CONNECT: Cmd to start a STA VDEV + * @WLAN_SER_CMD_VDEV_DISCONNECT: Cmd to stop a STA VDEV + * @WLAN_SER_CMD_VDEV_RESTART: Cmd to restart a VDEV */ enum wlan_serialization_cmd_type { /* all scan command before non-scan */ From 512104fbe5182909d2787998925b61681803ff11 Mon Sep 17 00:00:00 2001 From: Bala Venkatesh Date: Thu, 27 Jun 2019 13:10:49 +0530 Subject: [PATCH 04/13] qcacmn: Avoid NULL pointer access In function reg_dmn_print_channels_in_opclass, check for NULL pointer of the variable class before dereferencing. Change-Id: I6a17bf85b0a3dfbe1af9434583f31c96c268cc98 CRs-Fixed: 2470338 --- umac/regulatory/core/src/reg_opclass.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/umac/regulatory/core/src/reg_opclass.c b/umac/regulatory/core/src/reg_opclass.c index 225addbaa1f5..e5150fc6f667 100644 --- a/umac/regulatory/core/src/reg_opclass.c +++ b/umac/regulatory/core/src/reg_opclass.c @@ -217,7 +217,13 @@ void reg_dmn_print_channels_in_opclass(uint8_t *country, uint8_t op_class) uint16_t i = 0; class = reg_get_class_from_country(country); - while (class && class->op_class) { + + if (!class) { + reg_err("class is NULL"); + return; + } + + while (class->op_class) { if (class->op_class == op_class) { for (i = 0; (i < REG_MAX_CHANNELS_PER_OPERATING_CLASS && From 8c880d3fd20650205602f6e54d9777251c9b21b4 Mon Sep 17 00:00:00 2001 From: Chaitanya Kiran Godavarthi Date: Thu, 6 Jun 2019 19:32:48 +0530 Subject: [PATCH 05/13] qcacmn: Handle AP and STA Tx stats separately AP and STA stats need to be handled separately. Change-Id: I105856d6d4ee39a116966eb3ff47775b54f08ef4 --- dp/wifi3.0/dp_htt.c | 10 +++++++++- dp/wifi3.0/dp_stats.c | 2 +- dp/wifi3.0/dp_tx.c | 11 +++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/dp/wifi3.0/dp_htt.c b/dp/wifi3.0/dp_htt.c index 83c2842bae6c..ac4c9a20e013 100644 --- a/dp/wifi3.0/dp_htt.c +++ b/dp/wifi3.0/dp_htt.c @@ -110,7 +110,15 @@ dp_tx_rate_stats_update(struct dp_peer *peer, DP_STATS_UPD(peer, tx.rnd_avg_tx_rate, ppdu_tx_rate); if (peer->vdev) { - if (peer->bss_peer) { + /* + * In STA mode: + * We get ucast stats as BSS peer stats. + * + * In AP mode: + * We get mcast stats as BSS peer stats. + * We get ucast stats as assoc peer stats. + */ + if (peer->vdev->opmode == wlan_op_mode_ap && peer->bss_peer) { peer->vdev->stats.tx.mcast_last_tx_rate = ratekbps; peer->vdev->stats.tx.mcast_last_tx_rate_mcs = ppdu->mcs; } else { diff --git a/dp/wifi3.0/dp_stats.c b/dp/wifi3.0/dp_stats.c index c084bb69f37b..b0d08c4d5cb7 100644 --- a/dp/wifi3.0/dp_stats.c +++ b/dp/wifi3.0/dp_stats.c @@ -5260,7 +5260,7 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev) pdev->stats.tx.dropped.age_out); DP_PRINT_STATS(" headroom insufficient = %d", pdev->stats.tx_i.dropped.headroom_insufficient); - DP_PRINT_STATS(" Multicast:"); + DP_PRINT_STATS("Multicast:"); DP_PRINT_STATS(" Packets: %u", pdev->stats.tx.mcast.num); DP_PRINT_STATS(" Bytes: %llu", diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 7c6096d9995f..4925a3e5c50b 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -3090,12 +3090,7 @@ void dp_tx_comp_process_tx_status(struct dp_tx_desc_s *tx_desc, goto out; } - if (qdf_likely(!peer->bss_peer)) { - DP_STATS_INC_PKT(peer, tx.ucast, 1, length); - - if (ts->status == HAL_TX_TQM_RR_FRAME_ACKED) - DP_STATS_INC_PKT(peer, tx.tx_success, 1, length); - } else { + if (qdf_unlikely(peer->bss_peer && vdev->opmode == wlan_op_mode_ap)) { if (ts->status != HAL_TX_TQM_RR_REM_CMD_REM) { DP_STATS_INC_PKT(peer, tx.mcast, 1, length); @@ -3105,6 +3100,10 @@ void dp_tx_comp_process_tx_status(struct dp_tx_desc_s *tx_desc, DP_STATS_INC_PKT(peer, tx.bcast, 1, length); } } + } else { + DP_STATS_INC_PKT(peer, tx.ucast, 1, length); + if (ts->status == HAL_TX_TQM_RR_FRAME_ACKED) + DP_STATS_INC_PKT(peer, tx.tx_success, 1, length); } dp_tx_update_peer_stats(tx_desc, ts, peer, ring_id); From f0c668f54a406e20c931db143dd575193e7ca1fc Mon Sep 17 00:00:00 2001 From: Akshay Kosigi Date: Wed, 12 Jun 2019 12:10:12 +0530 Subject: [PATCH 06/13] qcacmn: Fix for removal of void pointer usage Add changes to remove usage of void pointer for wmi_handle Instead use an opaque pointer(wmi_handle_t) Change-Id: I7c6dce564f34352c75e0b9d0c90591de625f1959 CRs-Fixed: 2479299 --- target_if/scan/src/target_if_scan.c | 4 +- wmi/inc/wmi_unified_api.h | 360 +++++++++++++++++++----- wmi/src/wmi_unified_api.c | 422 ++++++---------------------- 3 files changed, 379 insertions(+), 407 deletions(-) diff --git a/target_if/scan/src/target_if_scan.c b/target_if/scan/src/target_if_scan.c index b63b38b2595f..c6b37a3337a9 100644 --- a/target_if/scan/src/target_if_scan.c +++ b/target_if/scan/src/target_if_scan.c @@ -378,7 +378,7 @@ QDF_STATUS target_if_scan_start(struct wlan_objmgr_pdev *pdev, struct scan_start_request *req) { - void *pdev_wmi_handle; + wmi_unified_t pdev_wmi_handle; pdev_wmi_handle = GET_WMI_HDL_FROM_PDEV(pdev); if (!pdev_wmi_handle) { @@ -392,7 +392,7 @@ QDF_STATUS target_if_scan_cancel(struct wlan_objmgr_pdev *pdev, struct scan_cancel_param *req) { - void *pdev_wmi_handle; + wmi_unified_t pdev_wmi_handle; pdev_wmi_handle = GET_WMI_HDL_FROM_PDEV(pdev); if (!pdev_wmi_handle) { diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index 6157f23368c0..4578fed16499 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -483,9 +483,11 @@ QDF_STATUS wmi_unified_vdev_delete_send(void *wmi_hdl, * * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_unified_vdev_nss_chain_params_send(void *wmi_hdl, - uint8_t vdev_id, - struct vdev_nss_chains *nss_chains_user_cfg); +QDF_STATUS +wmi_unified_vdev_nss_chain_params_send( + wmi_unified_t wmi_handle, + uint8_t vdev_id, + struct vdev_nss_chains *nss_chains_user_cfg); QDF_STATUS wmi_unified_vdev_stop_send(void *wmi_hdl, uint8_t vdev_id); @@ -509,124 +511,340 @@ QDF_STATUS wmi_unified_vdev_start_send(void *wmi_hdl, QDF_STATUS wmi_unified_vdev_set_nac_rssi_send(void *wmi_hdl, struct vdev_scan_nac_rssi_params *req); -QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl, +/** + * wmi_unified_hidden_ssid_vdev_restart_send() - restart vdev to set hidden ssid + * @wmi_handle: wmi handle + * @restart_params: vdev restart params + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_hidden_ssid_vdev_restart_send( + wmi_unified_t wmi_handle, struct hidden_ssid_vdev_restart_params *restart_params); -QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl, +/** + * wmi_unified_vdev_set_param_send() - WMI vdev set parameter function + * @wmi_handle: handle to WMI. + * @macaddr: MAC address + * @param: pointer to hold vdev set parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_vdev_set_param_send(wmi_unified_t wmi_handle, struct vdev_set_params *param); -QDF_STATUS wmi_unified_sifs_trigger_send(void *wmi_hdl, +/** + * wmi_unified_sifs_trigger_send() - WMI vdev sifs trigger parameter function + * @wmi_handle: handle to WMI. + * @param: pointer to hold sifs trigger parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_sifs_trigger_send(wmi_unified_t wmi_handle, struct sifs_trigger_param *param); -QDF_STATUS wmi_unified_peer_delete_send(void *wmi_hdl, - uint8_t - peer_addr[QDF_MAC_ADDR_SIZE], - uint8_t vdev_id); +/** + * wmi_unified_peer_delete_send() - send PEER delete command to fw + * @wmi_handle: wmi handle + * @peer_addr: peer mac addr + * @vdev_id: vdev id + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_peer_delete_send(wmi_unified_t wmi_handle, + uint8_t peer_addr[QDF_MAC_ADDR_SIZE], + uint8_t vdev_id); -QDF_STATUS wmi_unified_peer_flush_tids_send(void *wmi_hdl, - uint8_t peer_addr[QDF_MAC_ADDR_SIZE], - struct peer_flush_params *param); +/** + * wmi_unified_peer_flush_tids_send() - flush peer tids packets in fw + * @wmi_handle: wmi handle + * @peer_addr: peer mac address + * @param: pointer to hold peer flush tid parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_peer_flush_tids_send(wmi_unified_t wmi_handle, + uint8_t peer_addr[QDF_MAC_ADDR_SIZE], + struct peer_flush_params *param); -QDF_STATUS wmi_set_peer_param_send(void *wmi_hdl, - uint8_t peer_addr[QDF_MAC_ADDR_SIZE], - struct peer_set_params *param); +/** + * wmi_set_peer_param() - set peer parameter in fw + * @wmi_handle: wmi handle + * @peer_addr: peer mac address + * @param: pointer to hold peer set parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_set_peer_param_send(wmi_unified_t wmi_handle, + uint8_t peer_addr[QDF_MAC_ADDR_SIZE], + struct peer_set_params *param); -QDF_STATUS wmi_unified_peer_create_send(void *wmi_hdl, +/** + * wmi_unified_peer_create_send() - send peer create command to fw + * @wmi_handle: wmi handle + * @peer_addr: peer mac address + * @peer_type: peer type + * @vdev_id: vdev id + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_peer_create_send(wmi_unified_t wmi_handle, struct peer_create_params *param); QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle, uint8_t macaddr[QDF_MAC_ADDR_SIZE], struct stats_request_params *param); -QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl, +/** + * wmi_unified_green_ap_ps_send() - enable green ap powersave command + * @wmi_handle: wmi handle + * @value: value + * @pdev_id: pdev id to have radio context + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_green_ap_ps_send(wmi_unified_t wmi_handle, uint32_t value, uint8_t pdev_id); -QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl, - struct wow_cmd_params *param, - uint8_t mac_id); +/** + * wmi_unified_wow_enable_send() - WMI wow enable function + * @wmi_handle: handle to WMI. + * @param: pointer to hold wow enable parameter + * @mac_id: radio context + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_wow_enable_send(wmi_unified_t wmi_handle, + struct wow_cmd_params *param, + uint8_t mac_id); -QDF_STATUS wmi_unified_wow_wakeup_send(void *wmi_hdl); +/** + * wmi_unified_wow_wakeup_send() - WMI wow wakeup function + * @wmi_handle: handle to WMI. + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_wow_wakeup_send(wmi_unified_t wmi_handle); -QDF_STATUS wmi_unified_wow_add_wakeup_event_send(void *wmi_hdl, - struct wow_add_wakeup_params *param); +/** + * wmi_unified_wow_add_wakeup_event_send() - WMI wow wakeup function + * @wmi_handle: handle to WMI. + * @param: pointer to wow wakeup event parameter structure + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_wow_add_wakeup_event_send(wmi_unified_t wmi_handle, + struct wow_add_wakeup_params *param); -QDF_STATUS wmi_unified_wow_add_wakeup_pattern_send(void *wmi_hdl, +/** + * wmi_unified_wow_add_wakeup_pattern_send() - WMI wow wakeup pattern function + * @wmi_handle: handle to WMI. + * @param: pointer to wow wakeup pattern parameter structure + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_wow_add_wakeup_pattern_send( + wmi_unified_t wmi_handle, struct wow_add_wakeup_pattern_params *param); -QDF_STATUS wmi_unified_wow_remove_wakeup_pattern_send(void *wmi_hdl, +/** + * wmi_unified_wow_remove_wakeup_pattern_send() - wow wakeup pattern function + * @wmi_handle: handle to WMI. + * @param: pointer to wow wakeup pattern parameter structure + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_wow_remove_wakeup_pattern_send( + wmi_unified_t wmi_handle, struct wow_remove_wakeup_pattern_params *param); /** - * wmi_unified_packet_log_enable_send() - WMI request stats function - * @param wmi_handle : handle to WMI. - * @param PKTLOG_EVENT : PKTLOG Event - * @param mac_id : MAC id corresponds to pdev id + * wmi_unified_packet_log_enable_send() - WMI request stats function + * @wmi_handle : handle to WMI. + * @PKTLOG_EVENT : PKTLOG Event + * @mac_id : MAC id corresponds to pdev id * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, - WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id); +QDF_STATUS +wmi_unified_packet_log_enable_send(wmi_unified_t wmi_handle, + WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, + uint8_t mac_id); /** - * wmi_unified_peer_based_pktlog_send() - WMI request enable peer - * based filtering - * @wmi_handle: handle to WMI. - * @macaddr: PEER mac address to be filtered - * @mac_id: Mac id - * @enb_dsb: Enable or Disable peer based pktlog - * filtering + * wmi_unified_peer_based_pktlog_send() - WMI request enable peer + * based filtering + * @wmi_handle: handle to WMI. + * @macaddr: PEER mac address to be filtered + * @mac_id: Mac id + * @enb_dsb: Enable or Disable peer based pktlog + * filtering * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_unified_peer_based_pktlog_send(void *wmi_hdl, +QDF_STATUS wmi_unified_peer_based_pktlog_send(wmi_unified_t wmi_handle, uint8_t *macaddr, uint8_t mac_id, uint8_t enb_dsb); -QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl, uint8_t mac_id); +/** + * wmi_unified_packet_log_disable__send() - WMI pktlog disable function + * @wmi_handle: handle to WMI. + * @PKTLOG_EVENT: packet log event + * + * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_packet_log_disable_send(wmi_unified_t wmi_handle, + uint8_t mac_id); -QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl, - struct suspend_params *param, - uint8_t mac_id); +/** + * wmi_unified_suspend_send() - WMI suspend function + * @wmi_handle: handle to WMI. + * @param: pointer to hold suspend parameter + * @mac_id: radio context + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_suspend_send(wmi_unified_t wmi_handle, + struct suspend_params *param, + uint8_t mac_id); -QDF_STATUS wmi_unified_resume_send(void *wmi_hdl, - uint8_t mac_id); +/** + * wmi_unified_resume_send - WMI resume function + * @wmi_handle : handle to WMI. + * @mac_id: radio context + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_resume_send(wmi_unified_t wmi_handle, + uint8_t mac_id); +/** + * wmi_unified_pdev_param_send() - set pdev parameters + * @wmi_handle: wmi handle + * @param: pointer to pdev parameter + * @mac_id: radio context + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures, + * errno on failure + */ QDF_STATUS -wmi_unified_pdev_param_send(void *wmi_hdl, - struct pdev_params *param, - uint8_t mac_id); +wmi_unified_pdev_param_send(wmi_unified_t wmi_handle, + struct pdev_params *param, + uint8_t mac_id); -QDF_STATUS wmi_unified_beacon_tmpl_send_cmd(void *wmi_hdl, - struct beacon_tmpl_params *param); +/** + * wmi_unified_beacon_tmpl_send_cmd() - WMI beacon send function + * @wmi_handle: handle to WMI. + * @macaddr: MAC address + * @param: pointer to hold beacon send cmd parameter + * + * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_beacon_tmpl_send_cmd(wmi_unified_t wmi_handle, + struct beacon_tmpl_params *param); +/** + * wmi_unified_peer_assoc_send() - WMI peer assoc function + * @wmi_handle: handle to WMI. + * @macaddr: MAC address + * @param: pointer to peer assoc parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_peer_assoc_send(wmi_unified_t wmi_handle, + struct peer_assoc_params *param); -QDF_STATUS wmi_unified_peer_assoc_send(void *wmi_hdl, - struct peer_assoc_params *param); +/** + * wmi_unified_sta_ps_cmd_send() - set sta powersave parameters + * @wmi_handle: wmi handle + * @peer_addr: peer mac address + * @param: pointer to sta_ps parameter structure + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_sta_ps_cmd_send(wmi_unified_t wmi_handle, + struct sta_ps_params *param); -QDF_STATUS wmi_unified_sta_ps_cmd_send(void *wmi_hdl, - struct sta_ps_params *param); +/** + * wmi_unified_ap_ps_cmd_send() - set ap powersave parameters + * @wmi_handle: wmi handle + * @peer_addr: peer mac address + * @param: pointer to ap_ps parameter structure + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_ap_ps_cmd_send(wmi_unified_t wmi_handle, + uint8_t macaddr[QDF_MAC_ADDR_SIZE], + struct ap_ps_params *param); -QDF_STATUS wmi_unified_ap_ps_cmd_send(void *wmi_hdl, - uint8_t macaddr[QDF_MAC_ADDR_SIZE], - struct ap_ps_params *param); - -QDF_STATUS wmi_unified_scan_start_cmd_send(void *wmi_hdl, +/** + * wmi_unified_scan_start_cmd_send() - WMI scan start function + * @wmi_handle: handle to WMI. + * @macaddr: MAC address + * @param: pointer to hold scan start cmd parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_scan_start_cmd_send(wmi_unified_t wmi_handle, struct scan_req_params *param); -QDF_STATUS wmi_unified_scan_stop_cmd_send(void *wmi_hdl, - struct scan_cancel_param *param); +/** + * wmi_unified_scan_stop_cmd_send() - WMI scan start function + * @wmi_handle: handle to WMI. + * @macaddr: MAC address + * @param: pointer to hold scan start cmd parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_scan_stop_cmd_send(wmi_unified_t wmi_handle, + struct scan_cancel_param *param); -QDF_STATUS wmi_unified_scan_chan_list_cmd_send(void *wmi_hdl, - struct scan_chan_list_params *param); +/** + * wmi_unified_scan_chan_list_cmd_send() - WMI scan channel list function + * @wmi_handle: handle to WMI. + * @macaddr: MAC address + * @param: pointer to hold scan channel list parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_scan_chan_list_cmd_send(wmi_unified_t wmi_handle, + struct scan_chan_list_params *param); -QDF_STATUS wmi_crash_inject(void *wmi_hdl, - struct crash_inject *param); +/** + * wmi_crash_inject() - inject fw crash + * @wmi_handle: wmi handle + * @param: ponirt to crash inject parameter structure + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_crash_inject(wmi_unified_t wmi_handle, + struct crash_inject *param); -QDF_STATUS wmi_unified_pdev_utf_cmd_send(void *wmi_hdl, - struct pdev_utf_params *param, - uint8_t mac_id); +/** + * wmi_unified_pdev_utf_cmd() - send utf command to fw + * @wmi_handle: wmi handle + * @param: pointer to pdev_utf_params + * @mac_id: mac id to have radio context + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_pdev_utf_cmd_send(wmi_unified_t wmi_handle, + struct pdev_utf_params *param, + uint8_t mac_id); #ifdef FEATURE_FW_LOG_PARSING QDF_STATUS wmi_unified_dbglog_cmd_send(void *wmi_hdl, diff --git a/wmi/src/wmi_unified_api.c b/wmi/src/wmi_unified_api.c index 1638273a4dd7..c90d5624838b 100644 --- a/wmi/src/wmi_unified_api.c +++ b/wmi/src/wmi_unified_api.c @@ -94,12 +94,10 @@ QDF_STATUS wmi_unified_vdev_delete_send(void *wmi_hdl, } QDF_STATUS -wmi_unified_vdev_nss_chain_params_send(void *wmi_hdl, +wmi_unified_vdev_nss_chain_params_send(wmi_unified_t wmi_handle, uint8_t vdev_id, struct vdev_nss_chains *user_cfg) { - wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl; - if (wmi_handle->ops->send_vdev_nss_chain_params_cmd) return wmi_handle->ops->send_vdev_nss_chain_params_cmd( wmi_handle, @@ -181,18 +179,11 @@ QDF_STATUS wmi_unified_vdev_set_nac_rssi_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_hidden_ssid_vdev_restart_send() - restart vdev to set hidden ssid - * @wmi: wmi handle - * @restart_params: vdev restart params - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl, - struct hidden_ssid_vdev_restart_params *restart_params) +QDF_STATUS +wmi_unified_hidden_ssid_vdev_restart_send( + wmi_unified_t wmi_handle, + struct hidden_ssid_vdev_restart_params *restart_params) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_hidden_ssid_vdev_restart_cmd) return wmi_handle->ops->send_hidden_ssid_vdev_restart_cmd( wmi_handle, restart_params); @@ -200,20 +191,11 @@ QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_peer_flush_tids_send() - flush peer tids packets in fw - * @wmi: wmi handle - * @peer_addr: peer mac address - * @param: pointer to hold peer flush tid parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_peer_flush_tids_send(void *wmi_hdl, - uint8_t peer_addr[QDF_MAC_ADDR_SIZE], - struct peer_flush_params *param) +QDF_STATUS +wmi_unified_peer_flush_tids_send(wmi_unified_t wmi_handle, + uint8_t peer_addr[QDF_MAC_ADDR_SIZE], + struct peer_flush_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_peer_flush_tids_cmd) return wmi_handle->ops->send_peer_flush_tids_cmd(wmi_handle, peer_addr, param); @@ -221,21 +203,10 @@ QDF_STATUS wmi_unified_peer_flush_tids_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_peer_delete_send() - send PEER delete command to fw - * @wmi: wmi handle - * @peer_addr: peer mac addr - * @vdev_id: vdev id - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_peer_delete_send(void *wmi_hdl, - uint8_t - peer_addr[QDF_MAC_ADDR_SIZE], - uint8_t vdev_id) +QDF_STATUS wmi_unified_peer_delete_send(wmi_unified_t wmi_handle, + uint8_t peer_addr[QDF_MAC_ADDR_SIZE], + uint8_t vdev_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_peer_delete_cmd) return wmi_handle->ops->send_peer_delete_cmd(wmi_handle, peer_addr, vdev_id); @@ -243,20 +214,10 @@ QDF_STATUS wmi_unified_peer_delete_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_set_peer_param() - set peer parameter in fw - * @wmi_ctx: wmi handle - * @peer_addr: peer mac address - * @param : pointer to hold peer set parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_set_peer_param_send(void *wmi_hdl, - uint8_t peer_addr[QDF_MAC_ADDR_SIZE], - struct peer_set_params *param) +QDF_STATUS wmi_set_peer_param_send(wmi_unified_t wmi_handle, + uint8_t peer_addr[QDF_MAC_ADDR_SIZE], + struct peer_set_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_peer_param_cmd) return wmi_handle->ops->send_peer_param_cmd(wmi_handle, peer_addr, param); @@ -285,20 +246,9 @@ QDF_STATUS wmi_unified_vdev_up_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_peer_create_send() - send peer create command to fw - * @wmi: wmi handle - * @peer_addr: peer mac address - * @peer_type: peer type - * @vdev_id: vdev id - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_peer_create_send(void *wmi_hdl, +QDF_STATUS wmi_unified_peer_create_send(wmi_unified_t wmi_handle, struct peer_create_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_peer_create_cmd) return wmi_handle->ops->send_peer_create_cmd(wmi_handle, param); @@ -346,19 +296,9 @@ QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send(void *wmi_hdl, } #ifdef WLAN_SUPPORT_GREEN_AP -/** - * wmi_unified_green_ap_ps_send() - enable green ap powersave command - * @wmi_handle: wmi handle - * @value: value - * @pdev_id: pdev id to have radio context - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl, - uint32_t value, uint8_t pdev_id) +QDF_STATUS wmi_unified_green_ap_ps_send(wmi_unified_t wmi_handle, + uint32_t value, uint8_t pdev_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_green_ap_ps_cmd) return wmi_handle->ops->send_green_ap_ps_cmd(wmi_handle, value, pdev_id); @@ -366,28 +306,18 @@ QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } #else -QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl, - uint32_t value, uint8_t pdev_id) +QDF_STATUS wmi_unified_green_ap_ps_send(wmi_unified_t wmi_handle, + uint32_t value, uint8_t pdev_id) { return QDF_STATUS_SUCCESS; } #endif /* WLAN_SUPPORT_GREEN_AP */ -/** - * wmi_unified_pdev_utf_cmd() - send utf command to fw - * @wmi_handle: wmi handle - * @param: pointer to pdev_utf_params - * @mac_id: mac id to have radio context - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ QDF_STATUS -wmi_unified_pdev_utf_cmd_send(void *wmi_hdl, - struct pdev_utf_params *param, - uint8_t mac_id) +wmi_unified_pdev_utf_cmd_send(wmi_unified_t wmi_handle, + struct pdev_utf_params *param, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_pdev_utf_cmd) return wmi_handle->ops->send_pdev_utf_cmd(wmi_handle, param, mac_id); @@ -395,22 +325,11 @@ wmi_unified_pdev_utf_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_pdev_param_send() - set pdev parameters - * @wmi_handle: wmi handle - * @param: pointer to pdev parameter - * @mac_id: radio context - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures, - * errno on failure - */ QDF_STATUS -wmi_unified_pdev_param_send(void *wmi_hdl, - struct pdev_params *param, - uint8_t mac_id) +wmi_unified_pdev_param_send(wmi_unified_t wmi_handle, + struct pdev_params *param, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_pdev_param_cmd) return wmi_handle->ops->send_pdev_param_cmd(wmi_handle, param, mac_id); @@ -418,20 +337,10 @@ wmi_unified_pdev_param_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_suspend_send() - WMI suspend function - * @param wmi_handle : handle to WMI. - * @param param : pointer to hold suspend parameter - * @mac_id: radio context - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl, - struct suspend_params *param, - uint8_t mac_id) +QDF_STATUS wmi_unified_suspend_send(wmi_unified_t wmi_handle, + struct suspend_params *param, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_suspend_cmd) return wmi_handle->ops->send_suspend_cmd(wmi_handle, param, mac_id); @@ -439,18 +348,9 @@ QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_resume_send - WMI resume function - * @param wmi_handle : handle to WMI. - * @mac_id: radio context - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_resume_send(void *wmi_hdl, - uint8_t mac_id) +QDF_STATUS wmi_unified_resume_send(wmi_unified_t wmi_handle, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_resume_cmd) return wmi_handle->ops->send_resume_cmd(wmi_handle, mac_id); @@ -458,20 +358,10 @@ QDF_STATUS wmi_unified_resume_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_wow_enable_send() - WMI wow enable function - * @param wmi_handle : handle to WMI. - * @param param : pointer to hold wow enable parameter - * @mac_id: radio context - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl, - struct wow_cmd_params *param, - uint8_t mac_id) +QDF_STATUS wmi_unified_wow_enable_send(wmi_unified_t wmi_handle, + struct wow_cmd_params *param, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_wow_enable_cmd) return wmi_handle->ops->send_wow_enable_cmd(wmi_handle, param, mac_id); @@ -479,91 +369,56 @@ QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_wow_wakeup_send() - WMI wow wakeup function - * @param wmi_hdl : handle to WMI. - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_wow_wakeup_send(void *wmi_hdl) +QDF_STATUS wmi_unified_wow_wakeup_send(wmi_unified_t wmi_handle) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_wow_wakeup_cmd) return wmi_handle->ops->send_wow_wakeup_cmd(wmi_handle); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_wow_add_wakeup_event_send() - WMI wow wakeup function - * @param wmi_handle : handle to WMI. - * @param: pointer to wow wakeup event parameter structure - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_wow_add_wakeup_event_send(void *wmi_hdl, - struct wow_add_wakeup_params *param) +QDF_STATUS +wmi_unified_wow_add_wakeup_event_send(wmi_unified_t wmi_handle, + struct wow_add_wakeup_params *param) { - wmi_unified_t wmi = (wmi_unified_t) wmi_hdl; - - if (wmi->ops->send_wow_add_wakeup_event_cmd) - return wmi->ops->send_wow_add_wakeup_event_cmd(wmi, + if (wmi_handle->ops->send_wow_add_wakeup_event_cmd) + return wmi_handle->ops->send_wow_add_wakeup_event_cmd( + wmi_handle, param); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_wow_add_wakeup_pattern_send() - WMI wow wakeup pattern function - * @param wmi_handle : handle to WMI. - * @param: pointer to wow wakeup pattern parameter structure - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_wow_add_wakeup_pattern_send(void *wmi_hdl, +QDF_STATUS +wmi_unified_wow_add_wakeup_pattern_send( + wmi_unified_t wmi_handle, struct wow_add_wakeup_pattern_params *param) { - wmi_unified_t wmi = (wmi_unified_t) wmi_hdl; - - if (wmi->ops->send_wow_add_wakeup_pattern_cmd) - return wmi->ops->send_wow_add_wakeup_pattern_cmd(wmi, param); + if (wmi_handle->ops->send_wow_add_wakeup_pattern_cmd) + return wmi_handle->ops->send_wow_add_wakeup_pattern_cmd( + wmi_handle, + param); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_wow_remove_wakeup_pattern_send() - WMI wow wakeup pattern function - * @param wmi_handle : handle to WMI. - * @param: pointer to wow wakeup pattern parameter structure - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_wow_remove_wakeup_pattern_send(void *wmi_hdl, - struct wow_remove_wakeup_pattern_params *param) +QDF_STATUS +wmi_unified_wow_remove_wakeup_pattern_send( + wmi_unified_t wmi_handle, + struct wow_remove_wakeup_pattern_params *param) { - wmi_unified_t wmi = (wmi_unified_t) wmi_hdl; - - if (wmi->ops->send_wow_remove_wakeup_pattern_cmd) - return wmi->ops->send_wow_remove_wakeup_pattern_cmd(wmi, param); + if (wmi_handle->ops->send_wow_remove_wakeup_pattern_cmd) + return wmi_handle->ops->send_wow_remove_wakeup_pattern_cmd( + wmi_handle, + param); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_ap_ps_cmd_send() - set ap powersave parameters - * @wma_ctx: wma context - * @peer_addr: peer mac address - * @param: pointer to ap_ps parameter structure - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_ap_ps_cmd_send(void *wmi_hdl, - uint8_t *peer_addr, - struct ap_ps_params *param) +QDF_STATUS wmi_unified_ap_ps_cmd_send(wmi_unified_t wmi_handle, + uint8_t *peer_addr, + struct ap_ps_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_ap_ps_param_cmd) return wmi_handle->ops->send_set_ap_ps_param_cmd(wmi_handle, peer_addr, @@ -572,19 +427,9 @@ QDF_STATUS wmi_unified_ap_ps_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_sta_ps_cmd_send() - set sta powersave parameters - * @wma_ctx: wma context - * @peer_addr: peer mac address - * @param: pointer to sta_ps parameter structure - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_sta_ps_cmd_send(void *wmi_hdl, - struct sta_ps_params *param) +QDF_STATUS wmi_unified_sta_ps_cmd_send(wmi_unified_t wmi_handle, + struct sta_ps_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_sta_ps_param_cmd) return wmi_handle->ops->send_set_sta_ps_param_cmd(wmi_handle, param); @@ -592,18 +437,9 @@ QDF_STATUS wmi_unified_sta_ps_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_crash_inject() - inject fw crash - * @wma_handle: wma handle - * @param: ponirt to crash inject parameter structure - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_crash_inject(void *wmi_hdl, - struct crash_inject *param) +QDF_STATUS wmi_crash_inject(wmi_unified_t wmi_handle, + struct crash_inject *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_crash_inject_cmd) return wmi_handle->ops->send_crash_inject_cmd(wmi_handle, param); @@ -634,19 +470,10 @@ wmi_unified_dbglog_cmd_send(void *wmi_hdl, qdf_export_symbol(wmi_unified_dbglog_cmd_send); #endif -/** - * wmi_unified_vdev_set_param_send() - WMI vdev set parameter function - * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to hold vdev set parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl, +QDF_STATUS +wmi_unified_vdev_set_param_send(wmi_unified_t wmi_handle, struct vdev_set_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_vdev_set_param_cmd) return wmi_handle->ops->send_vdev_set_param_cmd(wmi_handle, param); @@ -654,18 +481,9 @@ QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_sifs_trigger_send() - WMI vdev sifs trigger parameter function - * @param wmi_handle : handle to WMI. - * @param param : pointer to hold sifs trigger parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_sifs_trigger_send(void *wmi_hdl, +QDF_STATUS wmi_unified_sifs_trigger_send(wmi_unified_t wmi_handle, struct sifs_trigger_param *param) { - wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl; - if (wmi_handle->ops->send_vdev_sifs_trigger_cmd) return wmi_handle->ops->send_vdev_sifs_trigger_cmd(wmi_handle, param); @@ -692,11 +510,11 @@ QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle, return QDF_STATUS_E_FAILURE; } -QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, - WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id) +QDF_STATUS +wmi_unified_packet_log_enable_send(wmi_unified_t wmi_handle, + WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_packet_log_enable_cmd) return wmi_handle->ops->send_packet_log_enable_cmd(wmi_handle, PKTLOG_EVENT, mac_id); @@ -704,24 +522,11 @@ QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_peer_based_pktlog_send() - WMI request enable peer - * based filtering - * @wmi_handle: handle to WMI. - * @macaddr: PEER mac address to be filtered - * @mac_id: Mac id - * @enb_dsb: Enable or Disable peer based pktlog - * filtering - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_peer_based_pktlog_send(void *wmi_hdl, +QDF_STATUS wmi_unified_peer_based_pktlog_send(wmi_unified_t wmi_handle, uint8_t *macaddr, uint8_t mac_id, uint8_t enb_dsb) { - wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl; - if (wmi_handle->ops->send_peer_based_pktlog_cmd) return wmi_handle->ops->send_peer_based_pktlog_cmd (wmi_handle, macaddr, mac_id, enb_dsb); @@ -729,16 +534,9 @@ QDF_STATUS wmi_unified_peer_based_pktlog_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_packet_log_disable__send() - WMI pktlog disable function - * @param wmi_handle : handle to WMI. - * @param PKTLOG_EVENT : packet log event - * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl, uint8_t mac_id) +QDF_STATUS wmi_unified_packet_log_disable_send(wmi_unified_t wmi_handle, + uint8_t mac_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_packet_log_disable_cmd) return wmi_handle->ops->send_packet_log_disable_cmd(wmi_handle, mac_id); @@ -746,38 +544,21 @@ QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl, uint8_t mac_id) return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_beacon_tmpl_send_cmd() - WMI beacon send function - * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to hold beacon send cmd parameter - * - * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_beacon_tmpl_send_cmd(void *wmi_hdl, - struct beacon_tmpl_params *param) +QDF_STATUS +wmi_unified_beacon_tmpl_send_cmd(wmi_unified_t wmi_handle, + struct beacon_tmpl_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_beacon_tmpl_send_cmd) return wmi_handle->ops->send_beacon_tmpl_send_cmd(wmi_handle, param); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_peer_assoc_send() - WMI peer assoc function - * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to peer assoc parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_peer_assoc_send(void *wmi_hdl, - struct peer_assoc_params *param) -{ - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; +QDF_STATUS +wmi_unified_peer_assoc_send(wmi_unified_t wmi_handle, + struct peer_assoc_params *param) +{ if (wmi_handle->ops->send_peer_assoc_cmd) return wmi_handle->ops->send_peer_assoc_cmd(wmi_handle, param); @@ -785,19 +566,10 @@ QDF_STATUS wmi_unified_peer_assoc_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_scan_start_cmd_send() - WMI scan start function - * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to hold scan start cmd parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_scan_start_cmd_send(void *wmi_hdl, +QDF_STATUS +wmi_unified_scan_start_cmd_send(wmi_unified_t wmi_handle, struct scan_req_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_scan_start_cmd) return wmi_handle->ops->send_scan_start_cmd(wmi_handle, param); @@ -805,19 +577,10 @@ QDF_STATUS wmi_unified_scan_start_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_scan_stop_cmd_send() - WMI scan start function - * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to hold scan start cmd parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_scan_stop_cmd_send(void *wmi_hdl, - struct scan_cancel_param *param) +QDF_STATUS +wmi_unified_scan_stop_cmd_send(wmi_unified_t wmi_handle, + struct scan_cancel_param *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_scan_stop_cmd) return wmi_handle->ops->send_scan_stop_cmd(wmi_handle, param); @@ -825,19 +588,10 @@ QDF_STATUS wmi_unified_scan_stop_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_scan_chan_list_cmd_send() - WMI scan channel list function - * @param wmi_handle : handle to WMI. - * @param macaddr : MAC address - * @param param : pointer to hold scan channel list parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_scan_chan_list_cmd_send(void *wmi_hdl, - struct scan_chan_list_params *param) +QDF_STATUS +wmi_unified_scan_chan_list_cmd_send(wmi_unified_t wmi_handle, + struct scan_chan_list_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_scan_chan_list_cmd) return wmi_handle->ops->send_scan_chan_list_cmd(wmi_handle, param); From bd2837220b82303dd130b1cbd54e970593a0e6cf Mon Sep 17 00:00:00 2001 From: Vevek Venkatesan Date: Fri, 28 Jun 2019 18:30:08 +0530 Subject: [PATCH 07/13] qcacmn: featurize wmi multi mac service Featurize wmi multi mac service with the feature flag WMI_MULTI_MAC_SVC, to cleanup CONFIG_MCL dependency. Change-Id: I34a513a90096c586091034029fc17b6bf23a7278 --- htc/htc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htc/htc.c b/htc/htc.c index ff523584ad0b..9db6f11b5227 100644 --- a/htc/htc.c +++ b/htc/htc.c @@ -45,7 +45,7 @@ ATH_DEBUG_INSTANTIATE_MODULE_VAR(htc, #endif -#if (defined(CONFIG_MCL) || defined(QCA_WIFI_QCA8074) || \ +#if (defined(WMI_MULTI_MAC_SVC) || defined(QCA_WIFI_QCA8074) || \ defined(QCA_WIFI_QCA6018)) static const uint32_t svc_id[] = {WMI_CONTROL_SVC, WMI_CONTROL_SVC_WMAC1, WMI_CONTROL_SVC_WMAC2}; From 94a976d817c26b884b4667eca541030a7739aec0 Mon Sep 17 00:00:00 2001 From: Vevek Venkatesan Date: Fri, 28 Jun 2019 18:05:16 +0530 Subject: [PATCH 08/13] qcacmn: move HIF_CONFIG_SLUB_DEBUG_ON define to driver Kbuild Move definition of HIF_CONFIG_SLUB_DEBUG_ON to driver Kbuild, to cleanup CONFIG_MCL/CONFIG_WIN dependency. Change-Id: I563d248413c98d7704e32ae06c260c02d915495a --- hif/inc/hif.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hif/inc/hif.h b/hif/inc/hif.h index 25885f714687..ddf265a5c24d 100644 --- a/hif/inc/hif.h +++ b/hif/inc/hif.h @@ -118,12 +118,6 @@ struct CE_state; #define HIF_MAX_GROUP 8 #endif -#ifdef CONFIG_SLUB_DEBUG_ON -#ifndef CONFIG_WIN -#define HIF_CONFIG_SLUB_DEBUG_ON -#endif -#endif - #ifndef NAPI_YIELD_BUDGET_BASED #ifdef HIF_CONFIG_SLUB_DEBUG_ON #define QCA_NAPI_DEF_SCALE_BIN_SHIFT 1 From 5c3ba8908f5012be474aa04fe80741f615e3e29d Mon Sep 17 00:00:00 2001 From: Ajit Pal Singh Date: Tue, 4 Jun 2019 13:24:57 +0530 Subject: [PATCH 09/13] qcacmn: dp: hl: Read tx resources after single thread check Bus TX resources are being read before the single thread check. If the thread is pre-empted, the tx_resource variable may not match with actual TX resources. Change-Id: I7e8af58a5702172a4cfbea9175f333aad4a57238 CRs-Fixed: 2459253 --- htc/htc_send.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htc/htc_send.c b/htc/htc_send.c index 2a7b81c6e39b..8973b69cc9f0 100644 --- a/htc/htc_send.c +++ b/htc/htc_send.c @@ -1139,14 +1139,6 @@ static enum HTC_SEND_QUEUE_RESULT htc_try_send(HTC_TARGET *target, return result; } - if (!IS_TX_CREDIT_FLOW_ENABLED(pEndpoint)) { - tx_resources = - hif_get_free_queue_number(target->hif_dev, - pEndpoint->UL_PipeID); - } else { - tx_resources = 0; - } - LOCK_HTC_TX(target); if (!HTC_QUEUE_EMPTY(&sendQueue)) { @@ -1185,6 +1177,14 @@ static enum HTC_SEND_QUEUE_RESULT htc_try_send(HTC_TARGET *target, /* now drain the endpoint TX queue for transmission as long as we have * enough transmit resources */ + if (!IS_TX_CREDIT_FLOW_ENABLED(pEndpoint)) { + tx_resources = + hif_get_free_queue_number(target->hif_dev, + pEndpoint->UL_PipeID); + } else { + tx_resources = 0; + } + while (true) { if (HTC_PACKET_QUEUE_DEPTH(&pEndpoint->TxQueue) == 0) From 0ac9aafb9a774ea9183d1708110c7d15cf2bb22f Mon Sep 17 00:00:00 2001 From: Vevek Venkatesan Date: Fri, 28 Jun 2019 17:17:22 +0530 Subject: [PATCH 10/13] qcacmn: remove qwlan version string dependency Remove QWLAN_VERSIONSTR dependency in cmn code, so that it would be used in driver itself, part of CONFIG_MCL/CONFIG_WIN cleanup. Change-Id: Iec0cefe1d9e39a5b5546c7b007cc0858044cdc7b CRs-Fixed: 2481053 --- hif/src/ce/ce_main.c | 6 +----- hif/src/ce/ce_main.h | 4 ---- hif/src/usb/if_usb.c | 5 +---- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index 94ee18568c3a..bc65ea587117 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -37,9 +37,6 @@ #include "ce_reg.h" #include "ce_assignment.h" #include "ce_tasklet.h" -#ifndef CONFIG_WIN -#include "qwlan_version.h" -#endif #include "qdf_module.h" #define CE_POLL_TIMEOUT 10 /* ms */ @@ -2973,8 +2970,7 @@ int hif_wlan_enable(struct hif_softc *scn) if (BYPASS_QMI) return 0; else - return pld_wlan_enable(scn->qdf_dev->dev, &cfg, - mode, QWLAN_VERSIONSTR); + return pld_wlan_enable(scn->qdf_dev->dev, &cfg, mode); } #ifdef WLAN_FEATURE_EPPING diff --git a/hif/src/ce/ce_main.h b/hif/src/ce/ce_main.h index e54f04348d52..c943feb5ee9a 100644 --- a/hif/src/ce/ce_main.h +++ b/hif/src/ce/ce_main.h @@ -76,10 +76,6 @@ enum ce_target_type { CE_MAX_TARGET_TYPE }; -#ifdef CONFIG_WIN -#define QWLAN_VERSIONSTR "WIN" -#endif - enum ol_ath_hif_pkt_ecodes { HIF_PIPE_NO_RESOURCE = 0 }; diff --git a/hif/src/usb/if_usb.c b/hif/src/usb/if_usb.c index fd6da656f951..26f7febbef7d 100644 --- a/hif/src/usb/if_usb.c +++ b/hif/src/usb/if_usb.c @@ -26,7 +26,6 @@ #include "hif_debug.h" #include "epping_main.h" #include "hif_main.h" -#include "qwlan_version.h" #include "usb_api.h" #define DELAY_FOR_TARGET_READY 200 /* 200ms */ @@ -532,8 +531,7 @@ int hif_usb_bus_configure(struct hif_softc *scn) else mode = PLD_MISSION; - return pld_wlan_enable(scn->qdf_dev->dev, &cfg, - mode, QWLAN_VERSIONSTR); + return pld_wlan_enable(scn->qdf_dev->dev, &cfg, mode); } #else /** @@ -706,7 +704,6 @@ void hif_usb_ramdump_handler(struct hif_opaque_softc *scn) if (pattern == FW_ASSERT_PATTERN) { HIF_ERROR("Firmware crash detected...\n"); - HIF_ERROR("Host SW version: %s\n", QWLAN_VERSIONSTR); HIF_ERROR("target_type: %d.target_version %d. target_revision%d.", tgt_info->target_type, tgt_info->target_version, From c36e354311d1964f50fbd2554460c53678668cb9 Mon Sep 17 00:00:00 2001 From: Akshay Kosigi Date: Thu, 13 Jun 2019 11:37:51 +0530 Subject: [PATCH 11/13] qcacmn: Fix for removal of void pointer usage Add changes to remove usage of void pointer for wmi_handle Instead use an opaque pointer(set 2) Change-Id: I06a89adaf15c6b398dbc901518aa83927b7ca16a CRs-Fixed: 2479298 --- target_if/crypto/src/target_if_crypto.c | 2 +- target_if/dfs/src/target_if_dfs.c | 2 +- target_if/green_ap/src/target_if_green_ap.c | 6 +- .../init_deinit/inc/service_ready_util.h | 3 +- .../init_deinit/src/service_ready_util.c | 3 +- target_if/wifi_pos/src/target_if_wifi_pos.c | 4 +- wmi/inc/wmi_unified_api.h | 503 ++++++++++++--- wmi/src/wmi_unified_api.c | 583 +++--------------- 8 files changed, 536 insertions(+), 570 deletions(-) diff --git a/target_if/crypto/src/target_if_crypto.c b/target_if/crypto/src/target_if_crypto.c index f549756f8672..0b58c6ae6d30 100644 --- a/target_if/crypto/src/target_if_crypto.c +++ b/target_if/crypto/src/target_if_crypto.c @@ -118,7 +118,7 @@ QDF_STATUS target_if_crypto_set_key(struct wlan_objmgr_vdev *vdev, struct cdp_peer *peer = NULL; uint8_t peer_id; uint8_t def_tx_idx; - void *pdev_wmi_handle; + wmi_unified_t pdev_wmi_handle; bool pairwise; QDF_STATUS status; diff --git a/target_if/dfs/src/target_if_dfs.c b/target_if/dfs/src/target_if_dfs.c index f4be0611537f..ad95057bb05f 100644 --- a/target_if/dfs/src/target_if_dfs.c +++ b/target_if/dfs/src/target_if_dfs.c @@ -285,7 +285,7 @@ static QDF_STATUS target_if_dfs_set_phyerr_filter_offload( bool dfs_phyerr_filter_offload) { QDF_STATUS status; - void *wmi_handle; + wmi_unified_t wmi_handle; if (!pdev) { target_if_err("null pdev"); diff --git a/target_if/green_ap/src/target_if_green_ap.c b/target_if/green_ap/src/target_if_green_ap.c index 3ecf935c678c..56b70dbceeef 100644 --- a/target_if/green_ap/src/target_if_green_ap.c +++ b/target_if/green_ap/src/target_if_green_ap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -140,7 +140,7 @@ QDF_STATUS target_if_green_ap_enable_egap( struct wlan_green_ap_egap_params *egap_params) { struct wlan_pdev_green_ap_ctx *green_ap_ctx; - void *wmi_hdl; + wmi_unified_t wmi_hdl; if (!pdev) { green_ap_err("pdev context passed is NULL"); @@ -175,7 +175,7 @@ QDF_STATUS target_if_green_ap_enable_egap( QDF_STATUS target_if_green_ap_set_ps_on_off(struct wlan_objmgr_pdev *pdev, bool value, uint8_t pdev_id) { - void *wmi_hdl; + wmi_unified_t wmi_hdl; if (!pdev) { green_ap_err("pdev context passed is NULL"); diff --git a/target_if/init_deinit/inc/service_ready_util.h b/target_if/init_deinit/inc/service_ready_util.h index a542a3699c7c..7e0be64d78ef 100644 --- a/target_if/init_deinit/inc/service_ready_util.h +++ b/target_if/init_deinit/inc/service_ready_util.h @@ -117,7 +117,8 @@ int init_deinit_populate_service_bitmap(void *wmi_handle, uint8_t *event, * * Return: zero on successful population of fw_version command or failure flag */ -int init_deinit_populate_fw_version_cmd(void *wmi_handle, uint8_t *event); +int +init_deinit_populate_fw_version_cmd(wmi_unified_t wmi_handle, uint8_t *event); /** * init_deinit_populate_target_cap() - populate target cap diff --git a/target_if/init_deinit/src/service_ready_util.c b/target_if/init_deinit/src/service_ready_util.c index beac8bd695ba..1e5d7b7d4c43 100644 --- a/target_if/init_deinit/src/service_ready_util.c +++ b/target_if/init_deinit/src/service_ready_util.c @@ -142,7 +142,8 @@ int init_deinit_populate_service_bitmap(void *wmi_handle, uint8_t *event, return 0; } -int init_deinit_populate_fw_version_cmd(void *wmi_handle, uint8_t *event) +int init_deinit_populate_fw_version_cmd(wmi_unified_t wmi_handle, + uint8_t *event) { QDF_STATUS status; diff --git a/target_if/wifi_pos/src/target_if_wifi_pos.c b/target_if/wifi_pos/src/target_if_wifi_pos.c index dd0742ef2ebd..239bd0882dfc 100644 --- a/target_if/wifi_pos/src/target_if_wifi_pos.c +++ b/target_if/wifi_pos/src/target_if_wifi_pos.c @@ -269,7 +269,7 @@ static QDF_STATUS wifi_pos_oem_data_req(struct wlan_objmgr_psoc *psoc, struct oem_data_req *req) { QDF_STATUS status; - void *wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc); + wmi_unified_t wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc); target_if_debug("Send oem data req to target"); @@ -564,7 +564,7 @@ static QDF_STATUS target_if_wifi_pos_cfg_fw(struct wlan_objmgr_psoc *psoc, { uint8_t i; QDF_STATUS status; - void *wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc); + wmi_unified_t wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc); wmi_oem_dma_ring_cfg_req_fixed_param cfg = {0}; if (!wmi_hdl) { diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index 4578fed16499..f8d88144e0a8 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -847,79 +847,271 @@ QDF_STATUS wmi_unified_pdev_utf_cmd_send(wmi_unified_t wmi_handle, uint8_t mac_id); #ifdef FEATURE_FW_LOG_PARSING -QDF_STATUS wmi_unified_dbglog_cmd_send(void *wmi_hdl, +/** + * wmi_unified_dbglog_cmd_send() - set debug log level + * @wmi_handle: handle to WMI. + * @param: pointer to hold dbglog level parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle, struct dbglog_params *param); #else static inline QDF_STATUS -wmi_unified_dbglog_cmd_send(void *wmi_hdl, +wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle, struct dbglog_params *param) { return QDF_STATUS_SUCCESS; } #endif -QDF_STATUS wmi_mgmt_unified_cmd_send(void *wmi_hdl, - struct wmi_mgmt_params *param); +/** + * wmi_mgmt_unified_cmd_send() - management cmd over wmi layer + * @wmi_handle: handle to WMI. + * @param: pointer to hold mgmt cmd parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_mgmt_unified_cmd_send(wmi_unified_t wmi_handle, + struct wmi_mgmt_params *param); -QDF_STATUS wmi_offchan_data_tx_cmd_send(void *wmi_hdl, - struct wmi_offchan_data_tx_params *param); +/** + * wmi_offchan_data_tx_cmd_send() - Send offchan data tx cmd over wmi layer + * @wmi_handle: handle to WMI. + * @param: pointer to hold offchan data cmd parameter + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_offchan_data_tx_cmd_send( + wmi_unified_t wmi_handle, + struct wmi_offchan_data_tx_params *param); -QDF_STATUS wmi_unified_modem_power_state(void *wmi_hdl, - uint32_t param_value); +/** + * wmi_unified_modem_power_state() - set modem power state to fw + * @wmi_handle: wmi handle + * @param_value: parameter value + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_modem_power_state(wmi_unified_t wmi_handle, + uint32_t param_value); -QDF_STATUS wmi_unified_set_sta_ps_mode(void *wmi_hdl, - uint32_t vdev_id, uint8_t val); +/** + * wmi_unified_set_sta_ps_mode() - set sta powersave params in fw + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * @val: value + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. + */ +QDF_STATUS wmi_unified_set_sta_ps_mode(wmi_unified_t wmi_handle, + uint32_t vdev_id, + uint8_t val); + +/** + * wmi_unified_set_sta_uapsd_auto_trig_cmd() - set uapsd auto trigger command + * @wmi_handle: wmi handle + * @param: uapsd cmd parameter strcture + * + * This function sets the trigger + * uapsd params such as service interval, delay interval + * and suspend interval which will be used by the firmware + * to send trigger frames periodically when there is no + * traffic on the transmit side. + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. + */ QDF_STATUS -wmi_unified_set_sta_uapsd_auto_trig_cmd(void *wmi_hdl, - struct sta_uapsd_trig_params *param); +wmi_unified_set_sta_uapsd_auto_trig_cmd(wmi_unified_t wmi_handle, + struct sta_uapsd_trig_params *param); -QDF_STATUS wmi_unified_get_temperature(void *wmi_hdl); +/** + * wmi_get_temperature() - get pdev temperature req + * @wmi_handle: wmi handle + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. + */ +QDF_STATUS wmi_unified_get_temperature(wmi_unified_t wmi_handle); -QDF_STATUS wmi_unified_set_smps_params(void *wmi_hdl, uint8_t vdev_id, - int value); +/** + * wmi_set_smps_params() - set smps params + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * @value: value + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. + */ +QDF_STATUS wmi_unified_set_smps_params(wmi_unified_t wmi_handle, + uint8_t vdev_id, + int value); -QDF_STATUS wmi_unified_set_mimops(void *wmi_hdl, uint8_t vdev_id, int value); +/** + * wmi_set_mimops() - set MIMO powersave + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * @value: value + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. + */ +QDF_STATUS wmi_unified_set_mimops(wmi_unified_t wmi_handle, + uint8_t vdev_id, int value); -QDF_STATUS wmi_unified_lro_config_cmd(void *wmi_hdl, - struct wmi_lro_config_cmd_t *wmi_lro_cmd); +/** + * wmi_unified_lro_config_cmd() - process the LRO config command + * @wmi_handle: Pointer to wmi handle + * @wmi_lro_cmd: Pointer to LRO configuration parameters + * + * This function sends down the LRO configuration parameters to + * the firmware to enable LRO, sets the TCP flags and sets the + * seed values for the toeplitz hash generation + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_lro_config_cmd(wmi_unified_t wmi_handle, + struct wmi_lro_config_cmd_t *wmi_lro_cmd); -QDF_STATUS wmi_unified_set_thermal_mgmt_cmd(void *wmi_hdl, - struct thermal_cmd_params *thermal_info); +/** + * wmi_unified_set_thermal_mgmt_cmd() - set thermal mgmt command to fw + * @wmi_handle: Pointer to wmi handle + * @thermal_info: Thermal command information + * + * This function sends the thermal management command + * to the firmware + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_set_thermal_mgmt_cmd(wmi_unified_t wmi_handle, + struct thermal_cmd_params *thermal_info); -QDF_STATUS wmi_unified_peer_rate_report_cmd(void *wmi_hdl, +/** + * wmi_unified_peer_rate_report_cmd() - process the peer rate report command + * @wmi_handle: Pointer to wmi handle + * @rate_report_params: Pointer to peer rate report parameters + * + * + * Return: QDF_STATUS_SUCCESS for success otherwise failure + */ +QDF_STATUS +wmi_unified_peer_rate_report_cmd( + wmi_unified_t wmi_handle, struct wmi_peer_rate_report_params *rate_report_params); -QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, - uint8_t vdev_id, bool mu_edca_param, - struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]); +/** + * wmi_unified_process_update_edca_param() - update EDCA params + * @wmi_handle: wmi handle + * @vdev_id: vdev id. + * @mu_edca_param: mu_edca_param. + * @wmm_vparams: edca parameters + * + * This function updates EDCA parameters to the target + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_process_update_edca_param( + wmi_unified_t wmi_handle, + uint8_t vdev_id, + bool mu_edca_param, + struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]); -QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl, - uint8_t vdev_id, - struct wmi_probe_resp_params *probe_rsp_info); +/** + * wmi_unified_probe_rsp_tmpl_send_cmd() - send probe response template to fw + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * @probe_rsp_info: probe response info + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_probe_rsp_tmpl_send_cmd( + wmi_unified_t wmi_handle, + uint8_t vdev_id, + struct wmi_probe_resp_params *probe_rsp_info); -QDF_STATUS wmi_unified_setup_install_key_cmd(void *wmi_hdl, - struct set_key_params *key_params); +/** + * wmi_unified_setup_install_key_cmd - send key to install to fw + * @wmi_handle: wmi handle + * @key_params: key parameters + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_setup_install_key_cmd(wmi_unified_t wmi_handle, + struct set_key_params *key_params); -QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(void *wmi_hdl, - uint32_t vdev_id, uint8_t *p2p_ie); +/** + * wmi_unified_p2p_go_set_beacon_ie_cmd() - set beacon IE for p2p go + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * @p2p_ie: p2p IE + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(wmi_unified_t wmi_hdl, + uint32_t vdev_id, + uint8_t *p2p_ie); -QDF_STATUS wmi_unified_scan_probe_setoui_cmd(void *wmi_hdl, - struct scan_mac_oui *psetoui); +/** + * wmi_unified_scan_probe_setoui_cmd() - set scan probe OUI + * @wmi_handle: wmi handle + * @psetoui: OUI parameters + * + * set scan probe OUI parameters in firmware + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_scan_probe_setoui_cmd(wmi_unified_t wmi_handle, + struct scan_mac_oui *psetoui); #ifdef IPA_OFFLOAD -QDF_STATUS wmi_unified_ipa_offload_control_cmd(void *wmi_hdl, +/** wmi_unified_ipa_offload_control_cmd() - ipa offload control parameter + * @wmi_handle: wmi handle + * @ipa_offload: ipa offload control parameter + * + * Returns: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures, + * error number otherwise + */ +QDF_STATUS +wmi_unified_ipa_offload_control_cmd( + wmi_unified_t wmi_handle, struct ipa_uc_offload_control_params *ipa_offload); #endif -QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id); +/** + * wmi_unified_pno_stop_cmd() - PNO stop request + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * + * This function request FW to stop ongoing PNO operation. + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_pno_stop_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id); #ifdef FEATURE_WLAN_SCAN_PNO -QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl, - struct pno_scan_req_params *pno); +/** + * wmi_unified_pno_start_cmd() - PNO start request + * @wmi_handle: wmi handle + * @pno: PNO request + * + * This function request FW to start PNO request. + * Request: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_pno_start_cmd(wmi_unified_t wmi_handle, + struct pno_scan_req_params *pno); #endif -QDF_STATUS wmi_unified_nlo_mawc_cmd(void *wmi_hdl, - struct nlo_mawc_params *params); +/** + * wmi_unified_nlo_mawc_cmd() - NLO MAWC cmd configuration + * @wmi_handle: wmi handle + * @params: Configuration parameters + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_nlo_mawc_cmd(wmi_unified_t wmi_handle, + struct nlo_mawc_params *params); #ifdef WLAN_FEATURE_LINK_LAYER_STATS /** @@ -955,17 +1147,31 @@ QDF_STATUS wmi_unified_process_ll_stats_get_cmd(wmi_unified_t wmi_handle, /** * wmi_unified_congestion_request_cmd() - send request to fw to get CCA - * @wmi_hdl: wma handle + * @wmi_handle: wma handle * @vdev_id: vdev id * * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl, - uint8_t vdev_id); +QDF_STATUS wmi_unified_congestion_request_cmd(wmi_unified_t wmi_handle, + uint8_t vdev_id); -QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl); +/** + * wmi_unified_snr_request_cmd() - send request to fw to get RSSI stats + * @wmi_handle: wmi handle + * @rssi_req: get RSSI request + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_snr_request_cmd(wmi_unified_t wmi_handle); -QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id); +/** + * wmi_unified_snr_cmd() - get RSSI from fw + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_snr_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id); /** * wmi_unified_link_status_req_cmd() - process link status request from UMAC @@ -978,11 +1184,28 @@ QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle, struct link_status_params *params); #ifdef WLAN_SUPPORT_GREEN_AP -QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl, +/** + * wmi_unified_egap_conf_params_cmd() - send wmi cmd of egap config params + * @wmi_handle: wmi handler + * @egap_params: pointer to egap_params + * + * Return: 0 for success, otherwise appropriate error code + */ +QDF_STATUS +wmi_unified_egap_conf_params_cmd( + wmi_unified_t wmi_handle, struct wlan_green_ap_egap_params *egap_params); #endif -QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id); +/** + * wmi_unified_csa_offload_enable() - send CSA offload enable command + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_csa_offload_enable(wmi_unified_t wmi_handle, + uint8_t vdev_id); #ifdef WLAN_FEATURE_CIF_CFR /** @@ -993,55 +1216,177 @@ QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id); * * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_unified_oem_dma_ring_cfg(void *wmi_hdl, - wmi_oem_dma_ring_cfg_req_fixed_param *cfg); +QDF_STATUS +wmi_unified_oem_dma_ring_cfg(wmi_unified_t wmi_handle, + wmi_oem_dma_ring_cfg_req_fixed_param *cfg); #endif -QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl, - uint32_t data_len, - uint8_t *data); +/** + * wmi_unified_start_oem_data_cmd() - start OEM data request to target + * @wmi_handle: wmi handle + * @data_len: length of OEM data + * @data: OEM data + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_start_oem_data_cmd(wmi_unified_t wmi_handle, + uint32_t data_len, + uint8_t *data); -QDF_STATUS wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl, - bool dfs_phyerr_filter_offload); +/** + * wmi_unified_dfs_phyerr_filter_offload_en_cmd() - enable dfs phyerr filter + * @wmi_handle: wmi handle + * @dfs_phyerr_filter_offload: is dfs phyerr filter offload + * + * Send WMI_DFS_PHYERR_FILTER_ENA_CMDID or + * WMI_DFS_PHYERR_FILTER_DIS_CMDID command + * to firmware based on phyerr filtering + * offload status. + * + * Return: 1 success, 0 failure + */ +QDF_STATUS +wmi_unified_dfs_phyerr_filter_offload_en_cmd(wmi_unified_t wmi_handle, + bool dfs_phyerr_filter_offload); #if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG) -QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl, - WMI_PKTLOG_EVENT pktlog_event, - uint32_t cmd_id, - uint8_t user_triggered); +/** + * wmi_unified_pktlog_wmi_send_cmd() - send pktlog event command to target + * @wmi_handle: wmi handle + * @pktlog_event: pktlog event + * @cmd_id: pktlog cmd id + * @user_triggered: user triggered input for PKTLOG enable mode + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(wmi_unified_t wmi_handle, + WMI_PKTLOG_EVENT pktlog_event, + uint32_t cmd_id, + uint8_t user_triggered); #endif -QDF_STATUS wmi_unified_stats_ext_req_cmd(void *wmi_hdl, - struct stats_ext_params *preq); +/** + * wmi_unified_stats_ext_req_cmd() - request ext stats from fw + * @wmi_handle: wmi handle + * @preq: stats ext params + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_stats_ext_req_cmd(wmi_unified_t wmi_handle, + struct stats_ext_params *preq); -QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(void *wmi_hdl, - struct dhcp_offload_info_params *params); +/** + * wmi_unified_process_dhcpserver_offload_cmd() - enable DHCP server offload + * @wmi_handle: wmi handle + * @pDhcpSrvOffloadInfo: DHCP server offload info + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd( + wmi_unified_t wmi_handle, + struct dhcp_offload_info_params *params); -QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(void *wmi_hdl, - uint32_t reg_dmn, uint16_t regdmn2G, - uint16_t regdmn5G, uint8_t ctl2G, - uint8_t ctl5G); +/** + * wmi_unified_send_regdomain_info_to_fw_cmd() - send regdomain info to fw + * @wmi_handle: wmi handle + * @reg_dmn: reg domain + * @regdmn2G: 2G reg domain + * @regdmn5G: 5G reg domain + * @ctl2G: 2G test limit + * @ctl5G: 5G test limit + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(wmi_unified_t wmi_handle, + uint32_t reg_dmn, + uint16_t regdmn2G, + uint16_t regdmn5G, + uint8_t ctl2G, + uint8_t ctl5G); -QDF_STATUS wmi_unified_process_fw_mem_dump_cmd(void *wmi_hdl, - struct fw_dump_req_param *mem_dump_req); +QDF_STATUS +wmi_unified_process_fw_mem_dump_cmd(wmi_unified_t wmi_hdl, + struct fw_dump_req_param *mem_dump_req); -QDF_STATUS wmi_unified_cfg_action_frm_tb_ppdu_cmd(void *wmi_hdl, - struct cfg_action_frm_tb_ppdu_param *cfg_info); +/** + * wmi_unified_cfg_action_frm_tb_ppdu_cmd()-send action frame TB PPDU cfg to FW + * @wmi_handle: Pointer to WMi handle + * @cfg_info: Pointer to cfg msg + * + * This function sends action frame TB PPDU cfg to firmware + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + * + */ +QDF_STATUS +wmi_unified_cfg_action_frm_tb_ppdu_cmd( + wmi_unified_t wmi_handle, + struct cfg_action_frm_tb_ppdu_param *cfg_info); -QDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl, - void *evt_buf); +/** + * wmi_unified_save_fw_version_cmd() - save fw version + * @wmi_handle: pointer to wmi handle + * @evt_buf: Event buffer + * + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + * + */ +QDF_STATUS wmi_unified_save_fw_version_cmd(wmi_unified_t wmi_handle, + void *evt_buf); -QDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl, - uint8_t *event, - uint32_t len); +/** + * wmi_unified_log_supported_evt_cmd() - Enable/Disable FW diag/log events + * @wmi_handle: wmi handle + * @event: Event received from FW + * @len: Length of the event + * + * Enables the low frequency events and disables the high frequency + * events. Bit 17 indicates if the event if low/high frequency. + * 1 - high frequency, 0 - low frequency + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures + */ +QDF_STATUS wmi_unified_log_supported_evt_cmd(wmi_unified_t wmi_handle, + uint8_t *event, + uint32_t len); -QDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl, - struct wmi_wifi_start_log *start_log); +/** + * wmi_unified_enable_specific_fw_logs_cmd() - Start/Stop logging of diag log id + * @wmi_handle: wmi handle + * @start_log: Start logging related parameters + * + * Send the command to the FW based on which specific logging of diag + * event/log id can be started/stopped + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS +wmi_unified_enable_specific_fw_logs_cmd(wmi_unified_t wmi_handle, + struct wmi_wifi_start_log *start_log); -QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl); +/** + * wmi_unified_flush_logs_to_fw_cmd() - Send log flush command to FW + * @wmi_handle: WMI handle + * + * This function is used to send the flush command to the FW, + * that will flush the fw logs that are residue in the FW + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(wmi_unified_t wmi_handle); -QDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl, - struct wmi_unit_test_cmd *wmi_utest); +/** + * wmi_unified_unit_test_cmd() - send unit test command to fw. + * @wmi_handle: wmi handle + * @wmi_utest: unit test command + * + * This function send unit test command to fw. + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_unit_test_cmd(wmi_unified_t wmi_handle, + struct wmi_unit_test_cmd *wmi_utest); #ifdef FEATURE_WLAN_APF /** diff --git a/wmi/src/wmi_unified_api.c b/wmi/src/wmi_unified_api.c index c90d5624838b..7b2b95910634 100644 --- a/wmi/src/wmi_unified_api.c +++ b/wmi/src/wmi_unified_api.c @@ -448,19 +448,10 @@ QDF_STATUS wmi_crash_inject(wmi_unified_t wmi_handle, } #ifdef FEATURE_FW_LOG_PARSING -/** - * wmi_unified_dbglog_cmd_send() - set debug log level - * @param wmi_handle : handle to WMI. - * @param param : pointer to hold dbglog level parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ QDF_STATUS -wmi_unified_dbglog_cmd_send(void *wmi_hdl, - struct dbglog_params *dbglog_param) +wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle, + struct dbglog_params *dbglog_param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_dbglog_cmd) return wmi_handle->ops->send_dbglog_cmd(wmi_handle, dbglog_param); @@ -599,18 +590,9 @@ wmi_unified_scan_chan_list_cmd_send(wmi_unified_t wmi_handle, return QDF_STATUS_E_FAILURE; } -/** - * wmi_mgmt_unified_cmd_send() - management cmd over wmi layer - * @wmi_hdl : handle to WMI. - * @param : pointer to hold mgmt cmd parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_mgmt_unified_cmd_send(void *wmi_hdl, - struct wmi_mgmt_params *param) +QDF_STATUS wmi_mgmt_unified_cmd_send(wmi_unified_t wmi_handle, + struct wmi_mgmt_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_mgmt_cmd) return wmi_handle->ops->send_mgmt_cmd(wmi_handle, param); @@ -618,18 +600,10 @@ QDF_STATUS wmi_mgmt_unified_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_offchan_data_tx_cmd_send() - Send offchan data tx cmd over wmi layer - * @wmi_hdl : handle to WMI. - * @param : pointer to hold offchan data cmd parameter - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_offchan_data_tx_cmd_send(void *wmi_hdl, - struct wmi_offchan_data_tx_params *param) +QDF_STATUS +wmi_offchan_data_tx_cmd_send(wmi_unified_t wmi_handle, + struct wmi_offchan_data_tx_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_offchan_data_tx_cmd) return wmi_handle->ops->send_offchan_data_tx_cmd(wmi_handle, param); @@ -637,18 +611,9 @@ QDF_STATUS wmi_offchan_data_tx_cmd_send(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_modem_power_state() - set modem power state to fw - * @wmi_hdl: wmi handle - * @param_value: parameter value - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_modem_power_state(void *wmi_hdl, - uint32_t param_value) +QDF_STATUS wmi_unified_modem_power_state(wmi_unified_t wmi_handle, + uint32_t param_value) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_modem_power_state_cmd) return wmi_handle->ops->send_modem_power_state_cmd(wmi_handle, param_value); @@ -656,19 +621,9 @@ QDF_STATUS wmi_unified_modem_power_state(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_set_sta_ps_mode() - set sta powersave params in fw - * @wmi_hdl: wmi handle - * @vdev_id: vdev id - * @val: value - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. - */ -QDF_STATUS wmi_unified_set_sta_ps_mode(void *wmi_hdl, - uint32_t vdev_id, uint8_t val) +QDF_STATUS wmi_unified_set_sta_ps_mode(wmi_unified_t wmi_handle, + uint32_t vdev_id, uint8_t val) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_sta_ps_mode_cmd) return wmi_handle->ops->send_set_sta_ps_mode_cmd(wmi_handle, vdev_id, val); @@ -686,18 +641,9 @@ wmi_unified_send_idle_trigger_monitor(wmi_unified_t wmi_handle, uint8_t val) return QDF_STATUS_E_FAILURE; } -/** - * wmi_set_mimops() - set MIMO powersave - * @wmi_hdl: wmi handle - * @vdev_id: vdev id - * @value: value - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. - */ -QDF_STATUS wmi_unified_set_mimops(void *wmi_hdl, uint8_t vdev_id, int value) +QDF_STATUS wmi_unified_set_mimops(wmi_unified_t wmi_handle, uint8_t vdev_id, + int value) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_mimops_cmd) return wmi_handle->ops->send_set_mimops_cmd(wmi_handle, vdev_id, value); @@ -705,19 +651,10 @@ QDF_STATUS wmi_unified_set_mimops(void *wmi_hdl, uint8_t vdev_id, int value) return QDF_STATUS_E_FAILURE; } -/** - * wmi_set_smps_params() - set smps params - * @wmi_hdl: wmi handle - * @vdev_id: vdev id - * @value: value - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. - */ -QDF_STATUS wmi_unified_set_smps_params(void *wmi_hdl, uint8_t vdev_id, - int value) +QDF_STATUS wmi_unified_set_smps_params(wmi_unified_t wmi_handle, + uint8_t vdev_id, + int value) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_smps_params_cmd) return wmi_handle->ops->send_set_smps_params_cmd(wmi_handle, vdev_id, value); @@ -725,41 +662,18 @@ QDF_STATUS wmi_unified_set_smps_params(void *wmi_hdl, uint8_t vdev_id, return QDF_STATUS_E_FAILURE; } -/** - * wmi_get_temperature() - get pdev temperature req - * @wmi_hdl: wmi handle - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. - */ -QDF_STATUS wmi_unified_get_temperature(void *wmi_hdl) +QDF_STATUS wmi_unified_get_temperature(wmi_unified_t wmi_handle) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_get_temperature_cmd) return wmi_handle->ops->send_get_temperature_cmd(wmi_handle); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_set_sta_uapsd_auto_trig_cmd() - set uapsd auto trigger command - * @wmi_hdl: wmi handle - * @end_set_sta_ps_mode_cmd: cmd parameter strcture - * - * This function sets the trigger - * uapsd params such as service interval, delay interval - * and suspend interval which will be used by the firmware - * to send trigger frames periodically when there is no - * traffic on the transmit side. - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. - */ QDF_STATUS -wmi_unified_set_sta_uapsd_auto_trig_cmd(void *wmi_hdl, - struct sta_uapsd_trig_params *param) +wmi_unified_set_sta_uapsd_auto_trig_cmd(wmi_unified_t wmi_handle, + struct sta_uapsd_trig_params *param) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_sta_uapsd_auto_trig_cmd) return wmi_handle->ops->send_set_sta_uapsd_auto_trig_cmd(wmi_handle, param); @@ -767,22 +681,10 @@ wmi_unified_set_sta_uapsd_auto_trig_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } - -/** - * wmi_unified_set_thermal_mgmt_cmd() - set thermal mgmt command to fw - * @wmi_handle: Pointer to wmi handle - * @thermal_info: Thermal command information - * - * This function sends the thermal management command - * to the firmware - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_set_thermal_mgmt_cmd(void *wmi_hdl, - struct thermal_cmd_params *thermal_info) +QDF_STATUS +wmi_unified_set_thermal_mgmt_cmd(wmi_unified_t wmi_handle, + struct thermal_cmd_params *thermal_info) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_set_thermal_mgmt_cmd) return wmi_handle->ops->send_set_thermal_mgmt_cmd(wmi_handle, thermal_info); @@ -790,23 +692,10 @@ QDF_STATUS wmi_unified_set_thermal_mgmt_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } - -/** - * wmi_unified_lro_config_cmd() - process the LRO config command - * @wmi: Pointer to wmi handle - * @wmi_lro_cmd: Pointer to LRO configuration parameters - * - * This function sends down the LRO configuration parameters to - * the firmware to enable LRO, sets the TCP flags and sets the - * seed values for the toeplitz hash generation - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_lro_config_cmd(void *wmi_hdl, - struct wmi_lro_config_cmd_t *wmi_lro_cmd) +QDF_STATUS +wmi_unified_lro_config_cmd(wmi_unified_t wmi_handle, + struct wmi_lro_config_cmd_t *wmi_lro_cmd) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_lro_config_cmd) return wmi_handle->ops->send_lro_config_cmd(wmi_handle, wmi_lro_cmd); @@ -814,19 +703,11 @@ QDF_STATUS wmi_unified_lro_config_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_peer_rate_report_cmd() - process the peer rate report command - * @wmi_hdl: Pointer to wmi handle - * @rate_report_params: Pointer to peer rate report parameters - * - * - * Return: QDF_STATUS_SUCCESS for success otherwise failure - */ -QDF_STATUS wmi_unified_peer_rate_report_cmd(void *wmi_hdl, +QDF_STATUS +wmi_unified_peer_rate_report_cmd( + wmi_unified_t wmi_handle, struct wmi_peer_rate_report_params *rate_report_params) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_peer_rate_report_cmd) return wmi_handle->ops->send_peer_rate_report_cmd(wmi_handle, rate_report_params); @@ -834,23 +715,13 @@ QDF_STATUS wmi_unified_peer_rate_report_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_process_update_edca_param() - update EDCA params - * @wmi_hdl: wmi handle - * @vdev_id: vdev id. - * @mu_edca_param: mu_edca_param. - * @wmm_vparams: edca parameters - * - * This function updates EDCA parameters to the target - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, - uint8_t vdev_id, bool mu_edca_param, - struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]) +QDF_STATUS +wmi_unified_process_update_edca_param( + wmi_unified_t wmi_handle, + uint8_t vdev_id, + bool mu_edca_param, + struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_process_update_edca_param_cmd) return wmi_handle->ops->send_process_update_edca_param_cmd(wmi_handle, vdev_id, mu_edca_param, wmm_vparams); @@ -858,20 +729,12 @@ QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_probe_rsp_tmpl_send_cmd() - send probe response template to fw - * @wmi_hdl: wmi handle - * @vdev_id: vdev id - * @probe_rsp_info: probe response info - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl, - uint8_t vdev_id, - struct wmi_probe_resp_params *probe_rsp_info) +QDF_STATUS +wmi_unified_probe_rsp_tmpl_send_cmd( + wmi_unified_t wmi_handle, + uint8_t vdev_id, + struct wmi_probe_resp_params *probe_rsp_info) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_probe_rsp_tmpl_send_cmd) return wmi_handle->ops->send_probe_rsp_tmpl_send_cmd(wmi_handle, vdev_id, probe_rsp_info); @@ -879,18 +742,9 @@ QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_setup_install_key_cmd - send key to install to fw - * @wmi_hdl: wmi handle - * @key_params: key parameters - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_setup_install_key_cmd(void *wmi_hdl, - struct set_key_params *key_params) +QDF_STATUS wmi_unified_setup_install_key_cmd(wmi_unified_t wmi_handle, + struct set_key_params *key_params) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_setup_install_key_cmd) return wmi_handle->ops->send_setup_install_key_cmd(wmi_handle, key_params); @@ -898,19 +752,10 @@ QDF_STATUS wmi_unified_setup_install_key_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_p2p_go_set_beacon_ie_cmd() - set beacon IE for p2p go - * @wma_handle: wma handle - * @vdev_id: vdev id - * @p2p_ie: p2p IE - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(void *wmi_hdl, - uint32_t vdev_id, uint8_t *p2p_ie) +QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(wmi_unified_t wmi_handle, + uint32_t vdev_id, + uint8_t *p2p_ie) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_p2p_go_set_beacon_ie_cmd) return wmi_handle->ops->send_p2p_go_set_beacon_ie_cmd(wmi_handle, vdev_id, p2p_ie); @@ -918,20 +763,9 @@ QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_scan_probe_setoui_cmd() - set scan probe OUI - * @wmi_hdl: wmi handle - * @psetoui: OUI parameters - * - * set scan probe OUI parameters in firmware - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_scan_probe_setoui_cmd(void *wmi_hdl, - struct scan_mac_oui *psetoui) +QDF_STATUS wmi_unified_scan_probe_setoui_cmd(wmi_unified_t wmi_handle, + struct scan_mac_oui *psetoui) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_scan_probe_setoui_cmd) return wmi_handle->ops->send_scan_probe_setoui_cmd(wmi_handle, psetoui); @@ -940,18 +774,11 @@ QDF_STATUS wmi_unified_scan_probe_setoui_cmd(void *wmi_hdl, } #ifdef IPA_OFFLOAD -/** wmi_unified_ipa_offload_control_cmd() - ipa offload control parameter - * @wmi_hdl: wmi handle - * @ipa_offload: ipa offload control parameter - * - * Returns: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures, - * error number otherwise - */ -QDF_STATUS wmi_unified_ipa_offload_control_cmd(void *wmi_hdl, +QDF_STATUS +wmi_unified_ipa_offload_control_cmd( + wmi_unified_t wmi_handle, struct ipa_uc_offload_control_params *ipa_offload) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (!wmi_handle) return QDF_STATUS_E_FAILURE; @@ -963,19 +790,8 @@ QDF_STATUS wmi_unified_ipa_offload_control_cmd(void *wmi_hdl, } #endif -/** - * send_pno_stop_cmd() - PNO stop request - * @wmi_hdl: wmi handle - * @vdev_id: vdev id - * - * This function request FW to stop ongoing PNO operation. - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id) +QDF_STATUS wmi_unified_pno_stop_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_pno_stop_cmd) return wmi_handle->ops->send_pno_stop_cmd(wmi_handle, vdev_id); @@ -983,20 +799,10 @@ QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id) return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_pno_start_cmd() - PNO start request - * @wmi_hdl: wmi handle - * @pno: PNO request - * - * This function request FW to start PNO request. - * Request: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ #ifdef FEATURE_WLAN_SCAN_PNO -QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl, - struct pno_scan_req_params *pno) +QDF_STATUS wmi_unified_pno_start_cmd(wmi_unified_t wmi_handle, + struct pno_scan_req_params *pno) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_pno_start_cmd) return wmi_handle->ops->send_pno_start_cmd(wmi_handle, pno); @@ -1005,18 +811,9 @@ QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl, } #endif -/** - * wmi_unified_nlo_mawc_cmd() - NLO MAWC cmd configuration - * @wmi_hdl: wmi handle - * @params: Configuration parameters - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_nlo_mawc_cmd(void *wmi_hdl, - struct nlo_mawc_params *params) +QDF_STATUS wmi_unified_nlo_mawc_cmd(wmi_unified_t wmi_handle, + struct nlo_mawc_params *params) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_nlo_mawc_cmd) return wmi_handle->ops->send_nlo_mawc_cmd(wmi_handle, params); @@ -1055,18 +852,9 @@ QDF_STATUS wmi_unified_process_ll_stats_get_cmd(wmi_unified_t wmi_handle, } #endif /* WLAN_FEATURE_LINK_LAYER_STATS */ -/** - * wmi_unified_congestion_request_cmd() - send request to fw to get CCA - * @wmi_hdl: wma handle - * @vdev_id: vdev id - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl, - uint8_t vdev_id) +QDF_STATUS wmi_unified_congestion_request_cmd(wmi_unified_t wmi_handle, + uint8_t vdev_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_congestion_cmd) return wmi_handle->ops->send_congestion_cmd(wmi_handle, vdev_id); @@ -1074,34 +862,16 @@ QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_snr_request_cmd() - send request to fw to get RSSI stats - * @wmi_handle: wmi handle - * @rssi_req: get RSSI request - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl) +QDF_STATUS wmi_unified_snr_request_cmd(wmi_unified_t wmi_handle) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_snr_request_cmd) return wmi_handle->ops->send_snr_request_cmd(wmi_handle); return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_snr_cmd() - get RSSI from fw - * @wmi_handle: wmi handle - * @vdev_id: vdev id - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id) +QDF_STATUS wmi_unified_snr_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_snr_cmd) return wmi_handle->ops->send_snr_cmd(wmi_handle, vdev_id); @@ -1127,18 +897,10 @@ QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle, } #ifdef WLAN_SUPPORT_GREEN_AP -/** - * wmi_unified_egap_conf_params_cmd() - send wmi cmd of egap configuration params - * @wmi_handle: wmi handler - * @egap_params: pointer to egap_params - * - * Return: 0 for success, otherwise appropriate error code - */ -QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl, - struct wlan_green_ap_egap_params *egap_params) +QDF_STATUS +wmi_unified_egap_conf_params_cmd(wmi_unified_t wmi_handle, + struct wlan_green_ap_egap_params *egap_params) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_egap_conf_params_cmd) return wmi_handle->ops->send_egap_conf_params_cmd(wmi_handle, egap_params); @@ -1147,17 +909,9 @@ QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl, } #endif -/** - * wmi_unified_csa_offload_enable() - send CSA offload enable command - * @wmi_hdl: wmi handle - * @vdev_id: vdev id - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id) +QDF_STATUS wmi_unified_csa_offload_enable(wmi_unified_t wmi_handle, + uint8_t vdev_id) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_csa_offload_enable_cmd) return wmi_handle->ops->send_csa_offload_enable_cmd(wmi_handle, vdev_id); @@ -1166,11 +920,10 @@ QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id) } #ifdef WLAN_FEATURE_CIF_CFR -QDF_STATUS wmi_unified_oem_dma_ring_cfg(void *wmi_hdl, - wmi_oem_dma_ring_cfg_req_fixed_param *cfg) +QDF_STATUS +wmi_unified_oem_dma_ring_cfg(wmi_unified_t wmi_handle, + wmi_oem_dma_ring_cfg_req_fixed_param *cfg) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_start_oem_data_cmd) return wmi_handle->ops->send_oem_dma_cfg_cmd(wmi_handle, cfg); @@ -1178,19 +931,10 @@ QDF_STATUS wmi_unified_oem_dma_ring_cfg(void *wmi_hdl, } #endif -/** - * wmi_unified_start_oem_data_cmd() - start OEM data request to target - * @wmi_handle: wmi handle - * @startOemDataReq: start request params - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl, - uint32_t data_len, - uint8_t *data) +QDF_STATUS wmi_unified_start_oem_data_cmd(wmi_unified_t wmi_handle, + uint32_t data_len, + uint8_t *data) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_start_oem_data_cmd) return wmi_handle->ops->send_start_oem_data_cmd(wmi_handle, data_len, data); @@ -1198,24 +942,10 @@ QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_dfs_phyerr_filter_offload_en_cmd() - enable dfs phyerr filter - * @wmi_handle: wmi handle - * @dfs_phyerr_filter_offload: is dfs phyerr filter offload - * - * Send WMI_DFS_PHYERR_FILTER_ENA_CMDID or - * WMI_DFS_PHYERR_FILTER_DIS_CMDID command - * to firmware based on phyerr filtering - * offload status. - * - * Return: 1 success, 0 failure - */ QDF_STATUS -wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl, - bool dfs_phyerr_filter_offload) +wmi_unified_dfs_phyerr_filter_offload_en_cmd(wmi_unified_t wmi_handle, + bool dfs_phyerr_filter_offload) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_dfs_phyerr_filter_offload_en_cmd) return wmi_handle->ops->send_dfs_phyerr_filter_offload_en_cmd(wmi_handle, dfs_phyerr_filter_offload); @@ -1224,22 +954,11 @@ wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl, } #if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG) -/** - * wmi_unified_pktlog_wmi_send_cmd() - send pktlog enable/disable command to target - * @wmi_handle: wmi handle - * @pktlog_event: pktlog event - * @cmd_id: pktlog cmd id - * @user_triggered: user triggered input for PKTLOG enable mode - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl, - WMI_PKTLOG_EVENT pktlog_event, - uint32_t cmd_id, - uint8_t user_triggered) +QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(wmi_unified_t wmi_handle, + WMI_PKTLOG_EVENT pktlog_event, + uint32_t cmd_id, + uint8_t user_triggered) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_pktlog_wmi_send_cmd) return wmi_handle->ops->send_pktlog_wmi_send_cmd(wmi_handle, pktlog_event, cmd_id, user_triggered); @@ -1248,18 +967,9 @@ QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl, } #endif /* !REMOVE_PKT_LOG && FEATURE_PKTLOG */ -/** - * wmi_unified_stats_ext_req_cmd() - request ext stats from fw - * @wmi_handle: wmi handle - * @preq: stats ext params - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_stats_ext_req_cmd(void *wmi_hdl, - struct stats_ext_params *preq) +QDF_STATUS wmi_unified_stats_ext_req_cmd(wmi_unified_t wmi_handle, + struct stats_ext_params *preq) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_stats_ext_req_cmd) return wmi_handle->ops->send_stats_ext_req_cmd(wmi_handle, preq); @@ -1267,18 +977,10 @@ QDF_STATUS wmi_unified_stats_ext_req_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_process_dhcpserver_offload_cmd() - enable DHCP server offload - * @wmi_handle: wmi handle - * @pDhcpSrvOffloadInfo: DHCP server offload info - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(void *wmi_hdl, - struct dhcp_offload_info_params *params) +QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd( + wmi_unified_t wmi_handle, + struct dhcp_offload_info_params *params) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_process_dhcpserver_offload_cmd) return wmi_handle->ops->send_process_dhcpserver_offload_cmd(wmi_handle, params); @@ -1286,24 +988,13 @@ QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_send_regdomain_info_to_fw_cmd() - send regdomain info to fw - * @wmi_handle: wmi handle - * @reg_dmn: reg domain - * @regdmn2G: 2G reg domain - * @regdmn5G: 5G reg domain - * @ctl2G: 2G test limit - * @ctl5G: 5G test limit - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(void *wmi_hdl, - uint32_t reg_dmn, uint16_t regdmn2G, - uint16_t regdmn5G, uint8_t ctl2G, - uint8_t ctl5G) +QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(wmi_unified_t wmi_handle, + uint32_t reg_dmn, + uint16_t regdmn2G, + uint16_t regdmn5G, + uint8_t ctl2G, + uint8_t ctl5G) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_regdomain_info_to_fw_cmd) return wmi_handle->ops->send_regdomain_info_to_fw_cmd(wmi_handle, reg_dmn, regdmn2G, @@ -1313,23 +1004,11 @@ QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_cfg_action_frm_tb_ppdu_cmd()-send action frame TB PPDU cfg to FW - * @wmi_handle: Pointer to WMi handle - * @cfg_info: Pointer to cfg msg - * - * This function sends action frame TB PPDU cfg to firmware - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - * - */ QDF_STATUS -wmi_unified_cfg_action_frm_tb_ppdu_cmd(void *wmi_hdl, - struct cfg_action_frm_tb_ppdu_param - *cfg_info) +wmi_unified_cfg_action_frm_tb_ppdu_cmd( + wmi_unified_t wmi_handle, + struct cfg_action_frm_tb_ppdu_param *cfg_info) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_cfg_action_frm_tb_ppdu_cmd) return wmi_handle->ops->send_cfg_action_frm_tb_ppdu_cmd( wmi_handle, cfg_info); @@ -1337,23 +1016,9 @@ wmi_unified_cfg_action_frm_tb_ppdu_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_save_fw_version_cmd() - save fw version - * @wmi_handle: pointer to wmi handle - * @res_cfg: resource config - * @num_mem_chunks: no of mem chunck - * @mem_chunk: pointer to mem chunck structure - * - * This function sends IE information to firmware - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - * - */ -QDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl, - void *evt_buf) +QDF_STATUS wmi_unified_save_fw_version_cmd(wmi_unified_t wmi_handle, + void *evt_buf) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->save_fw_version_cmd) return wmi_handle->ops->save_fw_version_cmd(wmi_handle, evt_buf); @@ -1361,24 +1026,10 @@ QDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_log_supported_evt_cmd() - Enable/Disable FW diag/log events - * @wmi_hdl: wmi handle - * @event: Event received from FW - * @len: Length of the event - * - * Enables the low frequency events and disables the high frequency - * events. Bit 17 indicates if the event if low/high frequency. - * 1 - high frequency, 0 - low frequency - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures - */ -QDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl, - uint8_t *event, - uint32_t len) +QDF_STATUS wmi_unified_log_supported_evt_cmd(wmi_unified_t wmi_handle, + uint8_t *event, + uint32_t len) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_log_supported_evt_cmd) return wmi_handle->ops->send_log_supported_evt_cmd(wmi_handle, event, len); @@ -1393,21 +1044,11 @@ void wmi_send_time_stamp_sync_cmd_tlv(void *wmi_hdl) wmi_handle->ops->send_time_stamp_sync_cmd(wmi_handle); } -/** - * wmi_unified_enable_specific_fw_logs_cmd() - Start/Stop logging of diag log id - * @wmi_hdl: wmi handle - * @start_log: Start logging related parameters - * - * Send the command to the FW based on which specific logging of diag - * event/log id can be started/stopped - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl, - struct wmi_wifi_start_log *start_log) -{ - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; +QDF_STATUS +wmi_unified_enable_specific_fw_logs_cmd(wmi_unified_t wmi_handle, + struct wmi_wifi_start_log *start_log) +{ if (wmi_handle->ops->send_enable_specific_fw_logs_cmd) return wmi_handle->ops->send_enable_specific_fw_logs_cmd(wmi_handle, start_log); @@ -1415,19 +1056,8 @@ QDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl, return QDF_STATUS_E_FAILURE; } -/** - * wmi_unified_flush_logs_to_fw_cmd() - Send log flush command to FW - * @wmi_hdl: WMI handle - * - * This function is used to send the flush command to the FW, - * that will flush the fw logs that are residue in the FW - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl) +QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(wmi_unified_t wmi_handle) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_flush_logs_to_fw_cmd) return wmi_handle->ops->send_flush_logs_to_fw_cmd(wmi_handle); @@ -1456,20 +1086,9 @@ QDF_STATUS wmi_unified_fw_test_cmd(void *wmi_hdl, } -/** - * wmi_unified_unit_test_cmd() - send unit test command to fw. - * @wmi_hdl: wmi handle - * @wmi_utest: unit test command - * - * This function send unit test command to fw. - * - * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure - */ -QDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl, - struct wmi_unit_test_cmd *wmi_utest) +QDF_STATUS wmi_unified_unit_test_cmd(wmi_unified_t wmi_handle, + struct wmi_unit_test_cmd *wmi_utest) { - wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; - if (wmi_handle->ops->send_unit_test_cmd) return wmi_handle->ops->send_unit_test_cmd(wmi_handle, wmi_utest); From ac6e852e8c7d5c79125461d952134bcb2e37975c Mon Sep 17 00:00:00 2001 From: Balaganapathy Palanisamy Date: Thu, 13 Jun 2019 12:21:21 +0530 Subject: [PATCH 12/13] qcacmn: Add new DEBUG IDs for objmgr Add new DEBUG IDs for more granularity in object manager Change-Id: Iffedabde1e3ca8d3d5e8b4e5f7f77c2019c2c6bb --- .../obj_mgr/inc/wlan_objmgr_cmn.h | 56 ++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h index 236f77bf6c1b..81128cdfd82b 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h @@ -235,7 +235,25 @@ typedef void (*wlan_objmgr_peer_status_handler)( * @WLAN_CFR_ID: CFG Capture method * @WLAN_VDEV_TARGET_IF_ID: Target interface layer * @WLAN_RX_PKT_TAG_ID: RX protocol tag operations - * @WLAN_INTEROP_ISSUES_AP_ID: interop issues ap operation + * @WLAN_INTEROP_ISSUES_AP_ID: interop issues ap operation + * @WLAN_WDS_ID: WDS operations + * @WLAN_PROXY_ARP_ID: AP proxy ARP + * @WLAN_WNM_ID: wireless network management operations + * @WLAN_RRM_ID: Radio resource management operations + * @WLAN_TR69_ID: TR69 operations + * @WLAN_MGMT_RX_ID: Legacy offload management frame input handler + * @WLAN_MGMT_TX_ID: Legacy offload management frame output handler + * @WLAN_NSS_IF_ID: NSS offload interface operations + * @WLAN_MBO_ID: MBO operations + * @WLAN_RTT_ID: RTT operations + * @WLAN_ALD_ID: Ath Link Diagnostic operations + * @WLAN_ME_ID: Multicast enhancement operations + * @WLAN_MGMT_HANDLER_ID: Management frame handler + * @WLAN_MLME_HANDLER_ID: MLME handler + * @WLAN_DBDC_ID: Dual Band Dual Concurrent mode operations + * @WLAN_MLME_OBJMGR_ID: MLME object manager operations VAP, Node + * @WLAN_OFFCHAN_TX_ID: Offchannel Tx operations + * @WLAN_MISC_ID: power manager, PAPI, rate set, etc. * @WLAN_REF_ID_MAX: Max id used to generate ref count tracking array */ /* New value added to the enum must also be reflected in function @@ -294,6 +312,24 @@ typedef enum { WLAN_VDEV_TARGET_IF_ID = 49, WLAN_RX_PKT_TAG_ID = 50, WLAN_INTEROP_ISSUES_AP_ID = 51, + WLAN_WDS_ID = 52, + WLAN_PROXY_ARP_ID = 53, + WLAN_WNM_ID = 54, + WLAN_RRM_ID = 55, + WLAN_TR69_ID = 56, + WLAN_MGMT_RX_ID = 57, + WLAN_MGMT_TX_ID = 58, + WLAN_NSS_IF_ID = 59, + WLAN_MBO_ID = 60, + WLAN_RTT_ID = 61, + WLAN_ALD_ID = 62, + WLAN_ME_ID = 63, + WLAN_MGMT_HANDLER_ID = 64, + WLAN_MLME_HANDLER_ID = 65, + WLAN_DBDC_ID = 66, + WLAN_MLME_OBJMGR_ID = 67, + WLAN_OFFCHAN_TX_ID = 68, + WLAN_MISC_ID = 69, WLAN_REF_ID_MAX, } wlan_objmgr_ref_dbgid; @@ -359,6 +395,24 @@ static inline char *string_from_dbgid(wlan_objmgr_ref_dbgid id) "WLAN_VDEV_TARGET_IF_ID", "WLAN_RX_PKT_TAG_ID", "WLAN_INTEROP_ISSUES_AP_ID", + "WLAN_WDS_ID", + "WLAN_PROXY_ARP_ID", + "WLAN_WNM_ID", + "WLAN_RRM_ID", + "WLAN_TR69_ID", + "WLAN_MGMT_RX_ID", + "WLAN_MGMT_TX_ID", + "WLAN_NSS_IF_ID", + "WLAN_MBO_ID", + "WLAN_RTT_ID", + "WLAN_ALD_ID", + "WLAN_ME_ID", + "WLAN_MGMT_HANDLER_ID", + "WLAN_MLME_HANDLER_ID", + "WLAN_DBDC_ID", + "WLAN_MLME_OBJMGR_ID", + "WLAN_OFFCHAN_TX_ID", + "WLAN_MISC_ID", "WLAN_REF_ID_MAX"}; return (char *)strings[id]; From aa57301f0063fc04b654a519f2a1977a135a13a7 Mon Sep 17 00:00:00 2001 From: nobelj Date: Thu, 13 Jun 2019 16:53:45 -0700 Subject: [PATCH 13/13] qcacmn: Fix ppdu info release during detach queued ppdu info list are free at wrong function causing leak. Change-Id: I4fb75c5612095af8c965d46ebafd401dd0ed7bf9 --- dp/wifi3.0/dp_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 7d246f500bf1..fb538ec349c6 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -3865,6 +3865,8 @@ static void dp_pdev_deinit(struct cdp_pdev *txrx_pdev, int force) dp_htt_ppdu_stats_detach(pdev); + dp_tx_ppdu_stats_detach(pdev); + qdf_nbuf_free(pdev->sojourn_buf); dp_cal_client_detach(&pdev->cal_client_ctx); @@ -3922,8 +3924,6 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force) dp_mon_link_free(pdev); - dp_tx_ppdu_stats_detach(pdev); - /* Cleanup per PDEV REO rings if configured */ if (wlan_cfg_per_pdev_rx_ring(soc->wlan_cfg_ctx)) { dp_srng_cleanup(soc, &soc->reo_dest_ring[pdev->pdev_id],