From 12a0839cd6d0c349cd45074cd268d8625c948370 Mon Sep 17 00:00:00 2001 From: Dhanashri Atre Date: Wed, 17 Feb 2016 13:10:34 -0800 Subject: [PATCH] qcacld-3.0: Data path changes to use converged APIs (Part 1) Change the data path and external modules to use the new converged common data path APIs. Change-Id: Ifb48178efd012b6ad9ea6f6d5230d0a809922b1c CRs-Fixed: 994638 --- Kbuild | 6 + core/bmi/inc/ol_if_athvar.h | 3 - core/cds/src/cds_api.c | 6 +- core/dp/htt/htt_t2h.c | 1 - core/dp/htt/htt_types.h | 3 - core/dp/ol/inc/ol_cfg.h | 3 +- core/dp/ol/inc/ol_ctrl_api.h | 44 ----- core/dp/ol/inc/ol_htt_api.h | 3 +- core/dp/ol/inc/ol_osif_api.h | 42 ----- core/dp/ol/inc/ol_txrx_api.h | 21 --- core/dp/ol/inc/ol_txrx_ctrl_api.h | 239 +-------------------------- core/dp/ol/inc/ol_txrx_dbg.h | 63 ------- core/dp/ol/inc/ol_txrx_htt_api.h | 2 +- core/dp/ol/inc/ol_txrx_osif_api.h | 128 +------------- core/dp/txrx/ol_ctrl_txrx_api.h | 30 +--- core/dp/txrx/ol_rx.c | 3 - core/dp/txrx/ol_rx.h | 3 +- core/dp/txrx/ol_rx_defrag.c | 1 - core/dp/txrx/ol_rx_fwd.c | 1 - core/dp/txrx/ol_rx_pn.c | 1 - core/dp/txrx/ol_rx_reorder_timeout.c | 1 - core/dp/txrx/ol_rx_reorder_timeout.h | 5 +- core/dp/txrx/ol_tx.c | 43 ++++- core/dp/txrx/ol_tx.h | 4 +- core/dp/txrx/ol_tx_desc.c | 1 - core/dp/txrx/ol_tx_desc.h | 2 +- core/dp/txrx/ol_tx_queue.c | 3 - core/dp/txrx/ol_tx_queue.h | 2 +- core/dp/txrx/ol_tx_send.c | 1 - core/dp/txrx/ol_tx_send.h | 2 +- core/dp/txrx/ol_txrx.c | 190 ++++++++++++++++++--- core/dp/txrx/ol_txrx.h | 27 +-- core/dp/txrx/ol_txrx_encap.c | 1 - core/dp/txrx/ol_txrx_encap.h | 2 +- core/dp/txrx/ol_txrx_flow_control.c | 5 +- core/dp/txrx/ol_txrx_peer_find.h | 2 +- core/dp/txrx/ol_txrx_types.h | 11 +- core/dp/txrx/txrx.h | 12 -- core/wma/inc/wma.h | 2 +- core/wma/src/wma_data.c | 7 +- core/wma/src/wma_dev_if.c | 5 +- core/wma/src/wma_features.c | 3 - core/wma/src/wma_main.c | 3 - core/wma/src/wma_mgmt.c | 3 - core/wma/src/wma_power.c | 3 - core/wma/src/wma_scan_roam.c | 3 - core/wma/src/wma_utils.c | 3 - 47 files changed, 245 insertions(+), 704 deletions(-) delete mode 100644 core/dp/ol/inc/ol_ctrl_api.h delete mode 100644 core/dp/ol/inc/ol_osif_api.h diff --git a/Kbuild b/Kbuild index 4e639d7938b1..504f5f0e16cc 100755 --- a/Kbuild +++ b/Kbuild @@ -683,6 +683,11 @@ endif OL_DIR := core/dp/ol OL_INC := -I$(WLAN_ROOT)/$(OL_DIR)/inc +############ CDP ############ +CDP_ROOT_DIR := dp +CDP_INC_DIR := $(CDP_ROOT_DIR)/inc +CDP_INC := -I$(WLAN_COMMON_INC)/$(CDP_INC_DIR) + ############ PKTLOG ############ PKTLOG_DIR := core/utils/pktlog PKTLOG_INC := -I$(WLAN_ROOT)/$(PKTLOG_DIR)/include @@ -819,6 +824,7 @@ INCS += $(WMA_INC) \ $(FWLOG_INC) \ $(TXRX_INC) \ $(OL_INC) \ + $(CDP_INC) \ $(PKTLOG_INC) \ $(HTT_INC) \ $(HTC_INC) \ diff --git a/core/bmi/inc/ol_if_athvar.h b/core/bmi/inc/ol_if_athvar.h index c9d45d81abdb..cf0e1c81634c 100644 --- a/core/bmi/inc/ol_if_athvar.h +++ b/core/bmi/inc/ol_if_athvar.h @@ -37,9 +37,6 @@ #include "wmi_unified_api.h" #include "htc_api.h" #include "bmi_msg.h" -#include "ol_txrx_api.h" -#include "ol_txrx_ctrl_api.h" -#include "ol_txrx_osif_api.h" #include "ol_params.h" #include diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c index 8313b4adcc09..ad9ace313f70 100644 --- a/core/cds/src/cds_api.c +++ b/core/cds/src/cds_api.c @@ -427,7 +427,7 @@ QDF_STATUS cds_open(void) } gp_cds_context->pdev_txrx_ctx = - ol_txrx_pdev_alloc(gp_cds_context->cfg_ctx, + ol_txrx_pdev_attach(gp_cds_context->cfg_ctx, gp_cds_context->htc_ctx, gp_cds_context->qdf_ctx); if (!gp_cds_context->pdev_txrx_ctx) { @@ -569,7 +569,7 @@ QDF_STATUS cds_pre_enable(v_CONTEXT_t cds_context) return QDF_STATUS_E_FAILURE; } - if (ol_txrx_pdev_attach(gp_cds_context->pdev_txrx_ctx)) { + if (ol_txrx_pdev_post_attach(gp_cds_context->pdev_txrx_ctx)) { QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL, "Failed to attach pdev"); htc_stop(gp_cds_context->htc_ctx); @@ -655,7 +655,7 @@ QDF_STATUS cds_enable(v_CONTEXT_t cds_context) "%s: SME correctly started", __func__); if (ol_txrx_pdev_attach_target - (p_cds_context->pdev_txrx_ctx) != A_OK) { + (p_cds_context->pdev_txrx_ctx)) { QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL, "%s: Failed attach target", __func__); goto err_sme_stop; diff --git a/core/dp/htt/htt_t2h.c b/core/dp/htt/htt_t2h.c index efefeb4b9bf5..7fb80647e8f3 100644 --- a/core/dp/htt/htt_t2h.c +++ b/core/dp/htt/htt_t2h.c @@ -48,7 +48,6 @@ #include #include #include -#include #include /*--- target->host HTT message dispatch function ----------------------------*/ diff --git a/core/dp/htt/htt_types.h b/core/dp/htt/htt_types.h index c9437f96401e..c49a02273338 100644 --- a/core/dp/htt/htt_types.h +++ b/core/dp/htt/htt_types.h @@ -36,9 +36,6 @@ #include /* qdf_nbuf_t */ #include /* HTC_PACKET */ -#include /* ol_pdev_handle */ -#include /* ol_txrx_pdev_handle */ - #define DEBUG_DMA_DONE #define HTT_TX_MUTEX_TYPE qdf_spinlock_t diff --git a/core/dp/ol/inc/ol_cfg.h b/core/dp/ol/inc/ol_cfg.h index 88224ccd812f..49c9ae454451 100644 --- a/core/dp/ol/inc/ol_cfg.h +++ b/core/dp/ol/inc/ol_cfg.h @@ -29,10 +29,11 @@ #define _OL_CFG__H_ #include /* uint32_t */ -#include /* ol_pdev_handle */ +#include /* ol_pdev_handle */ #include /* ieee80211_qosframe_htc_addr4 */ #include /* LLC_SNAP_HDR_LEN */ #include "wlan_tgt_def_config.h" +#include "ol_txrx_ctrl_api.h" /* txrx_pdev_cfg_param_t */ /** * @brief format of data frames delivered to/from the WLAN driver by/to the OS diff --git a/core/dp/ol/inc/ol_ctrl_api.h b/core/dp/ol/inc/ol_ctrl_api.h deleted file mode 100644 index c3e6eb347480..000000000000 --- a/core/dp/ol/inc/ol_ctrl_api.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2011, 2014 The Linux Foundation. All rights reserved. - * - * Previously licensed under the ISC license by Qualcomm Atheros, Inc. - * - * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all - * copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE - * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * This file was originally distributed by Qualcomm Atheros, Inc. - * under proprietary terms before Copyright ownership was assigned - * to the Linux Foundation. - */ - -/** - * @file ol_ctrl_api.h - * @brief Definitions used in multiple external interfaces to the control SW. - */ -#ifndef _OL_CTRL_API__H_ -#define _OL_CTRL_API__H_ - -struct ol_pdev_t; -typedef struct ol_pdev_t *ol_pdev_handle; - -struct ol_vdev_t; -typedef struct ol_vdev_t *ol_vdev_handle; - -struct ol_peer_t; -typedef struct ol_peer_t *ol_peer_handle; - -#endif /* _OL_CTRL_API__H_ */ diff --git a/core/dp/ol/inc/ol_htt_api.h b/core/dp/ol/inc/ol_htt_api.h index e0a7cd8c847d..f55ddfb730ec 100644 --- a/core/dp/ol/inc/ol_htt_api.h +++ b/core/dp/ol/inc/ol_htt_api.h @@ -39,9 +39,8 @@ #include /* qdf_nbuf_t */ #include /* A_STATUS */ #include /* HTC_HANDLE */ -#include /* ol_pdev_handle */ -#include /* ol_txrx_pdev_handle */ #include "htt.h" /* htt_dbg_stats_type, etc. */ +#include /* ol_pdev_handle */ /* TID */ #define OL_HTT_TID_NON_QOS_UNICAST 16 diff --git a/core/dp/ol/inc/ol_osif_api.h b/core/dp/ol/inc/ol_osif_api.h deleted file mode 100644 index 9344a5fa5fea..000000000000 --- a/core/dp/ol/inc/ol_osif_api.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2012, 2014 The Linux Foundation. All rights reserved. - * - * Previously licensed under the ISC license by Qualcomm Atheros, Inc. - * - * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all - * copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE - * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * This file was originally distributed by Qualcomm Atheros, Inc. - * under proprietary terms before Copyright ownership was assigned - * to the Linux Foundation. - */ - -/** - * @file ol_osif_api.h - * @brief Definitions used in multiple external interfaces to the txrx SW. - */ -#ifndef _OL_OSIF_API__H_ -#define _OL_OSIF_API__H_ - -/** - * @typedef ol_osif_vdev_handle - * @brief opaque handle for OS shim virtual device object - */ -struct ol_osif_vdev_t; -typedef struct ol_osif_vdev_t *ol_osif_vdev_handle; - -#endif /* _OL_OSIF_API__H_ */ diff --git a/core/dp/ol/inc/ol_txrx_api.h b/core/dp/ol/inc/ol_txrx_api.h index 289d49e32341..81f61f5147c2 100644 --- a/core/dp/ol/inc/ol_txrx_api.h +++ b/core/dp/ol/inc/ol_txrx_api.h @@ -32,27 +32,6 @@ #ifndef _OL_TXRX_API__H_ #define _OL_TXRX_API__H_ -/** - * @typedef ol_txrx_pdev_handle - * @brief opaque handle for txrx physical device object - */ -struct ol_txrx_pdev_t; -typedef struct ol_txrx_pdev_t *ol_txrx_pdev_handle; - -/** - * @typedef ol_txrx_vdev_handle - * @brief opaque handle for txrx virtual device object - */ -struct ol_txrx_vdev_t; -typedef struct ol_txrx_vdev_t *ol_txrx_vdev_handle; - -/** - * @typedef ol_txrx_peer_handle - * @brief opaque handle for txrx peer object - */ -struct ol_txrx_peer_t; -typedef struct ol_txrx_peer_t *ol_txrx_peer_handle; - /** * @brief ADDBA negotiation status, used both during requests and confirmations */ diff --git a/core/dp/ol/inc/ol_txrx_ctrl_api.h b/core/dp/ol/inc/ol_txrx_ctrl_api.h index fd151f16a1f9..70ea34e491e0 100644 --- a/core/dp/ol/inc/ol_txrx_ctrl_api.h +++ b/core/dp/ol/inc/ol_txrx_ctrl_api.h @@ -37,11 +37,9 @@ #include /* qdf_device_t */ #include /* HTC_HANDLE */ -#include /* ol_osif_vdev_handle */ -#include /* ol_txrx_pdev_handle, etc. */ -#include /* ol_pdev_handle, ol_vdev_handle */ - +#include /* ol_sec_type */ #include /* MAX_SPATIAL_STREAM */ +#include /* ol_pdev_handle, ol_vdev_handle, etc */ #define OL_ATH_TX_DRAIN_WAIT_DELAY 50 @@ -55,25 +53,6 @@ to soft-AP itself */ #define WLAN_RX_SAP_SELF_STA_ID (WLAN_MAX_STA_COUNT + 2) -/** - * enum wlan_op_mode - Virtual device operation mode - * - * @wlan_op_mode_unknown: Unknown mode - * @wlan_op_mode_ap: AP mode - * @wlan_op_mode_ibss: IBSS mode - * @wlan_op_mode_sta: STA (client) mode - * @wlan_op_mode_monitor: Monitor mode - * @wlan_op_mode_ocb: OCB mode - */ -enum wlan_op_mode { - wlan_op_mode_unknown, - wlan_op_mode_ap, - wlan_op_mode_ibss, - wlan_op_mode_sta, - wlan_op_mode_monitor, - wlan_op_mode_ocb, -}; - #define OL_TXQ_PAUSE_REASON_FW (1 << 0) #define OL_TXQ_PAUSE_REASON_PEER_UNAUTHORIZED (1 << 1) #define OL_TXQ_PAUSE_REASON_TX_ABORT (1 << 2) @@ -137,10 +116,6 @@ enum netif_reason_type { #define WLAN_DUMP_TX_FLOW_POOL_INFO 5 #define WLAN_TXRX_DESC_STATS 6 -ol_txrx_pdev_handle -ol_txrx_pdev_alloc(ol_pdev_handle ctrl_pdev, - HTC_HANDLE htc_pdev, qdf_device_t osdev); - /** * @brief Set up the data SW subsystem. * @details @@ -163,59 +138,7 @@ ol_txrx_pdev_alloc(ol_pdev_handle ctrl_pdev, * @return 0 for success or error code */ int -ol_txrx_pdev_attach(ol_txrx_pdev_handle pdev); - -/** - * @brief Do final steps of data SW setup that send messages to the target. - * @details - * The majority of the data SW setup are done by the pdev_attach function, - * but this function completes the data SW setup by sending datapath - * configuration messages to the target. - * - * @param data_pdev - the physical device being initialized - */ -A_STATUS ol_txrx_pdev_attach_target(ol_txrx_pdev_handle data_pdev); - -/** - * @brief Allocate and initialize the data object for a new virtual device. - * @param data_pdev - the physical device the virtual device belongs to - * @param vdev_mac_addr - the MAC address of the virtual device - * @param vdev_id - the ID used to identify the virtual device to the target - * @param op_mode - whether this virtual device is operating as an AP, - * an IBSS, or a STA - * @return - * success: handle to new data vdev object, -OR- - * failure: NULL - */ -ol_txrx_vdev_handle -ol_txrx_vdev_attach(ol_txrx_pdev_handle data_pdev, - uint8_t *vdev_mac_addr, - uint8_t vdev_id, enum wlan_op_mode op_mode); - -/** - * @brief Allocate and set up references for a data peer object. - * @details - * When an association with a peer starts, the host's control SW - * uses this function to inform the host data SW. - * The host data SW allocates its own peer object, and stores a - * reference to the control peer object within the data peer object. - * The host data SW also stores a reference to the virtual device - * that the peer is associated with. This virtual device handle is - * used when the data SW delivers rx data frames to the OS shim layer. - * The host data SW returns a handle to the new peer data object, - * so a reference within the control peer object can be set to the - * data peer object. - * - * @param data_pdev - data physical device object that will indirectly - * own the data_peer object - * @param data_vdev - data virtual device object that will directly - * own the data_peer object - * @param peer_mac_addr - MAC address of the new peer - * @return handle to new data peer object, or NULL if the attach fails - */ -ol_txrx_peer_handle -ol_txrx_peer_attach(ol_txrx_pdev_handle data_pdev, - ol_txrx_vdev_handle data_vdev, uint8_t *peer_mac_addr); +ol_txrx_pdev_post_attach(ol_txrx_pdev_handle pdev); /** * @brief Parameter type to be input to ol_txrx_peer_update @@ -486,61 +409,8 @@ void ol_txrx_pdev_unpause(struct ol_txrx_pdev_t *pdev, uint32_t reason) */ void ol_txrx_tx_sync(ol_txrx_pdev_handle data_pdev, uint8_t sync_cnt); -/** - * @brief Delete a peer's data object. - * @details - * When the host's control SW disassociates a peer, it calls this - * function to delete the peer's data object. - * The reference stored in the control peer object to the data peer - * object (set up by a call to ol_peer_store()) is provided. - * - * @param data_peer - the object to delete - */ -void ol_txrx_peer_detach(ol_txrx_peer_handle data_peer); - typedef void (*ol_txrx_vdev_delete_cb)(void *context); -/** - * @brief Deallocate the specified data virtual device object. - * @details - * All peers associated with the virtual device need to be deleted - * (ol_txrx_peer_detach) before the virtual device itself is deleted. - * However, for the peers to be fully deleted, the peer deletion has to - * percolate through the target data FW and back up to the host data SW. - * Thus, even though the host control SW may have issued a peer_detach - * call for each of the vdev's peers, the peer objects may still be - * allocated, pending removal of all references to them by the target FW. - * In this case, though the vdev_detach function call will still return - * immediately, the vdev itself won't actually be deleted, until the - * deletions of all its peers complete. - * The caller can provide a callback function pointer to be notified when - * the vdev deletion actually happens - whether it's directly within the - * vdev_detach call, or if it's deferred until all in-progress peer - * deletions have completed. - * - * @param data_vdev - data object for the virtual device in question - * @param callback - function to call (if non-NULL) once the vdev has - * been wholly deleted - * @param callback_context - context to provide in the callback - */ -void -ol_txrx_vdev_detach(ol_txrx_vdev_handle data_vdev, - ol_txrx_vdev_delete_cb callback, void *callback_context); - -/** - * @brief Delete the data SW state. - * @details - * This function is used when the WLAN driver is being removed to - * remove the host data component within the driver. - * All virtual devices within the physical device need to be deleted - * (ol_txrx_vdev_detach) before the physical device itself is deleted. - * - * @param data_pdev - the data physical device object being removed - * @param force - delete the pdev (and its vdevs and peers) even if there - * are outstanding references by the target to the vdevs and peers - * within the pdev - */ -void ol_txrx_pdev_detach(ol_txrx_pdev_handle data_pdev, int force); typedef void (*ol_txrx_data_tx_cb)(void *ctxt, qdf_nbuf_t tx_frm, int had_error); @@ -587,93 +457,6 @@ qdf_nbuf_t ol_tx_non_std(ol_txrx_vdev_handle data_vdev, enum ol_tx_spec tx_spec, qdf_nbuf_t msdu_list); -typedef void -(*ol_txrx_mgmt_tx_cb)(void *ctxt, qdf_nbuf_t tx_mgmt_frm, int had_error); - -/** - * @brief Store a callback for delivery notifications for management frames. - * @details - * When the txrx SW receives notifications from the target that a tx frame - * has been delivered to its recipient, it will check if the tx frame - * is a management frame. If so, the txrx SW will check the management - * frame type specified when the frame was submitted for transmission. - * If there is a callback function registered for the type of managment - * frame in question, the txrx code will invoke the callback to inform - * the management + control SW that the mgmt frame was delivered. - * This function is used by the control SW to store a callback pointer - * for a given type of management frame. - * - * @param pdev - the data physical device object - * @param type - the type of mgmt frame the callback is used for - * @param download_cb - the callback for notification of delivery to the target - * @param ota_ack_cb - the callback for notification of delivery to the peer - * @param ctxt - context to use with the callback - */ -void -ol_txrx_mgmt_tx_cb_set(ol_txrx_pdev_handle pdev, - uint8_t type, - ol_txrx_mgmt_tx_cb download_cb, - ol_txrx_mgmt_tx_cb ota_ack_cb, void *ctxt); - -/** - * @brief Transmit a management frame. - * @details - * Send the specified management frame from the specified virtual device. - * The type is used for determining whether to invoke a callback to inform - * the sender that the tx mgmt frame was delivered, and if so, which - * callback to use. - * - * @param vdev - virtual device transmitting the frame - * @param tx_mgmt_frm - management frame to transmit - * @param type - the type of managment frame (determines what callback to use) - * @param use_6mbps - specify whether management frame to transmit should use 6 Mbps - * rather than 1 Mbps min rate(for 5GHz band or P2P) - * @return - * 0 -> the frame is accepted for transmission, -OR- - * 1 -> the frame was not accepted - */ -int -ol_txrx_mgmt_send(ol_txrx_vdev_handle vdev, - qdf_nbuf_t tx_mgmt_frm, - uint8_t type, uint8_t use_6mbps, uint16_t chanfreq); - -/** - * @brief Setup the monitor mode vap (vdev) for this pdev - * @details - * When a non-NULL vdev handle is registered as the monitor mode vdev, all - * packets received by the system are delivered to the OS stack on this - * interface in 802.11 MPDU format. Only a single monitor mode interface - * can be up at any timer. When the vdev handle is set to NULL the monitor - * mode delivery is stopped. This handle may either be a unique vdev - * object that only receives monitor mode packets OR a point to a a vdev - * object that also receives non-monitor traffic. In the second case the - * OS stack is responsible for delivering the two streams using approprate - * OS APIs - * - * @param pdev - the data physical device object - * @param vdev - the data virtual device object to deliver monitor mode - * packets on - * @return - * 0 -> the monitor mode vap was sucessfully setup - * -1 -> Unable to setup monitor mode - */ -int -ol_txrx_set_monitor_mode_vap(ol_txrx_pdev_handle pdev, - ol_txrx_vdev_handle vdev); - -/** - * @brief Setup the current operating channel of the device - * @details - * Mainly used when populating monitor mode status that requires the - * current operating channel - * - * @param pdev - the data physical device object - * @param chan_mhz - the channel frequency (mhz) - * packets on - * @return - void - */ -void ol_txrx_set_curchan(ol_txrx_pdev_handle pdev, uint32_t chan_mhz); - #ifdef FEATURE_RUNTIME_PM QDF_STATUS ol_txrx_runtime_suspend(ol_txrx_pdev_handle txrx_pdev); QDF_STATUS ol_txrx_runtime_resume(ol_txrx_pdev_handle txrx_pdev); @@ -717,22 +500,6 @@ void ol_txrx_discard_tx_pending(ol_txrx_pdev_handle pdev); */ void ol_txrx_set_safemode(ol_txrx_vdev_handle vdev, uint32_t val); -/** - * @brief set the privacy filter - * @details - * Rx related. Set the privacy filters. When rx packets, check - * the ether type, filter type and packet type - * to decide whether discard these packets. - * - * @param vdev - the data virtual device object - * @param filter - filters to be set - * @param num - the number of filters - * @return - void - */ -void -ol_txrx_set_privacy_filters(ol_txrx_vdev_handle vdev, - void *filter, uint32_t num); - /** * @brief configure the drop unencrypted frame flag * @details diff --git a/core/dp/ol/inc/ol_txrx_dbg.h b/core/dp/ol/inc/ol_txrx_dbg.h index 976415f00ae0..745e24f7baea 100644 --- a/core/dp/ol/inc/ol_txrx_dbg.h +++ b/core/dp/ol/inc/ol_txrx_dbg.h @@ -37,70 +37,10 @@ #include /* htt_dbg_stats_type */ #include /* ol_txrx_stats */ -typedef void (*ol_txrx_stats_callback)(void *ctxt, - enum htt_dbg_stats_type type, - uint8_t *buf, int bytes); - -struct ol_txrx_stats_req { - uint32_t stats_type_upload_mask; /* which stats to upload */ - uint32_t stats_type_reset_mask; /* which stats to reset */ - - /* stats will be printed if either print element is set */ - struct { - int verbose; /* verbose stats printout */ - int concise; /* concise stats printout (takes precedence) */ - } print; /* print uploaded stats */ - - /* stats notify callback will be invoked if fp is non-NULL */ - struct { - ol_txrx_stats_callback fp; - void *ctxt; - } callback; - - /* stats will be copied into the specified buffer if buf is non-NULL */ - struct { - uint8_t *buf; - int byte_limit; /* don't copy more than this */ - } copy; - - /* - * If blocking is true, the caller will take the specified semaphore - * to wait for the stats to be uploaded, and the driver will release - * the semaphore when the stats are done being uploaded. - */ - struct { - int blocking; - qdf_semaphore_t *sem_ptr; - } wait; -}; - #ifndef TXRX_DEBUG_LEVEL #define TXRX_DEBUG_LEVEL 0 /* no debug info */ #endif -#ifndef ATH_PERF_PWR_OFFLOAD /*---------------------------------------------*/ - -#define ol_txrx_debug(vdev, debug_specs) 0 -#define ol_txrx_fw_stats_cfg(vdev, type, val) 0 -#define ol_txrx_fw_stats_get(vdev, req, response_expected) 0 -#define ol_txrx_aggr_cfg(vdev, max_subfrms_ampdu, max_subfrms_amsdu) 0 - -#else /*---------------------------------------------------------------------*/ - -#include /* ol_txrx_pdev_handle, etc. */ - -int ol_txrx_debug(ol_txrx_vdev_handle vdev, int debug_specs); - -void ol_txrx_fw_stats_cfg(ol_txrx_vdev_handle vdev, - uint8_t cfg_stats_type, uint32_t cfg_val); - -int ol_txrx_fw_stats_get(ol_txrx_vdev_handle vdev, - struct ol_txrx_stats_req *req, - bool response_expected); - -int ol_txrx_aggr_cfg(ol_txrx_vdev_handle vdev, - int max_subfrms_ampdu, int max_subfrms_amsdu); - enum { TXRX_DBG_MASK_OBJS = 0x01, TXRX_DBG_MASK_STATS = 0x02, @@ -119,8 +59,6 @@ enum { /* uncomment this for verbose txrx printouts (may impact performance) */ /* #define TXRX_PRINT_VERBOSE_ENABLE 1 */ -void ol_txrx_print_level_set(unsigned level); - /*--- txrx object (pdev, vdev, peer) display debug functions ---*/ #if TXRX_DEBUG_LEVEL > 5 @@ -198,7 +136,6 @@ void ol_rx_pn_trace_display(ol_txrx_pdev_handle pdev, int just_once); #define ol_tx_queue_log_display(pdev) -#endif /* ATH_PERF_PWR_OFFLOAD */ /*----------------------------------------*/ #endif /* _OL_TXRX_DBG__H_ */ diff --git a/core/dp/ol/inc/ol_txrx_htt_api.h b/core/dp/ol/inc/ol_txrx_htt_api.h index 00d612c17ef1..024fe0ce07dd 100644 --- a/core/dp/ol/inc/ol_txrx_htt_api.h +++ b/core/dp/ol/inc/ol_txrx_htt_api.h @@ -36,7 +36,7 @@ #include /* A_STATUS */ #include /* qdf_nbuf_t */ -#include /* ol_txrx_pdev_handle */ +#include /* ol_txrx_pdev_handle */ static inline uint16_t *ol_tx_msdu_id_storage(qdf_nbuf_t msdu) { diff --git a/core/dp/ol/inc/ol_txrx_osif_api.h b/core/dp/ol/inc/ol_txrx_osif_api.h index dd7acafa32f4..5e153765d495 100644 --- a/core/dp/ol/inc/ol_txrx_osif_api.h +++ b/core/dp/ol/inc/ol_txrx_osif_api.h @@ -33,11 +33,8 @@ #define _OL_TXRX_OSIF_API__H_ #include /* qdf_nbuf_t */ - -#include /* ol_osif_vdev_handle */ -#include /* ol_txrx_pdev_handle, etc. */ -#include #include "cds_sched.h" +#include "ol_txrx_ctrl_api.h" /** * struct ol_rx_cached_buf - rx cached buffer @@ -49,54 +46,8 @@ struct ol_rx_cached_buf { qdf_nbuf_t buf; }; -/** - * @typedef ol_txrx_rx_fp - * @brief receive function to hand batches of data frames from txrx to OS shim - */ -typedef void (*ol_txrx_rx_fp)(void *osif_dev, qdf_nbuf_t msdus); - -/** - * @typedef ol_txrx_tx_fp - * @brief top-level transmit function - */ -typedef qdf_nbuf_t (*ol_txrx_tx_fp)(ol_txrx_vdev_handle data_vdev, - qdf_nbuf_t msdu_list); - -/** - * @typedef ol_txrx_tx_non_std_fp - * @brief top-level transmit function for non-standard tx frames - * @details - * This function pointer provides an alternative to the ol_txrx_tx_fp - * to support non-standard transmits. In particular, this function - * supports transmission of: - * 1. "Raw" frames - * These raw frames already have an 802.11 header; the usual - * 802.11 header encapsulation by the driver does not apply. - * 2. TSO segments - * During tx completion, the txrx layer needs to reclaim the buffer - * that holds the ethernet/IP/TCP header created for the TSO segment. - * Thus, these tx frames need to be marked as TSO, to show that they - * need this special handling during tx completion. - * - * @param data_vdev - which virtual device should transmit the frame - * @param tx_spec - what non-standard operations to apply to the tx frame - * @param msdu_list - tx frame(s), in a null-terminated list - */ -typedef qdf_nbuf_t (*ol_txrx_tx_non_std_fp)(ol_txrx_vdev_handle data_vdev, - enum ol_tx_spec tx_spec, - qdf_nbuf_t msdu_list); - struct txrx_rx_metainfo; -/** - * @typedef ol_txrx_tx_fc_fp - * @brief tx flow control notification function from txrx to OS shim - * @param osif_dev - the virtual device's OS shim object - * @param tx_resume - tx os q should be resumed or not - */ -typedef void (*ol_txrx_tx_flow_control_fp)(void *osif_dev, - bool tx_resume); - /** * struct ol_txrx_desc_type - txrx descriptor type * @sta_id: sta id @@ -148,83 +99,6 @@ int ol_txrx_ll_set_tx_pause_q_depth(uint8_t vdev_id, int pause_q_depth); #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */ -/** - * @typedef ol_txrx_rx_fp - * @brief receive function to hand batches of data frames from txrx to OS shim - */ - -struct ol_txrx_osif_ops { - /* tx function pointers - specified by txrx, stored by OS shim */ - struct { - ol_txrx_tx_fp std; - ol_txrx_tx_non_std_fp non_std; - ol_txrx_tx_flow_control_fp flow_control_cb; - } tx; - - /* rx function pointers - specified by OS shim, stored by txrx */ - struct { - ol_txrx_rx_fp std; - } rx; -}; - -/** - * @brief Link a vdev's data object with the matching OS shim vdev object. - * @details - * The data object for a virtual device is created by the function - * ol_txrx_vdev_attach. However, rather than fully linking the - * data vdev object with the vdev objects from the other subsystems - * that the data vdev object interacts with, the txrx_vdev_attach - * function focuses primarily on creating the data vdev object. - * After the creation of both the data vdev object and the OS shim - * vdev object, this txrx_osif_vdev_attach function is used to connect - * the two vdev objects, so the data SW can use the OS shim vdev handle - * when passing rx data received by a vdev up to the OS shim. - * - * @param txrx_vdev - the virtual device's data object - * @param osif_vdev - the virtual device's OS shim object - * @param txrx_ops - (pointers to) the functions used for tx and rx data xfer - * There are two portions of these txrx operations. - * The rx portion is filled in by OSIF SW before calling - * ol_txrx_osif_vdev_register; inside the ol_txrx_osif_vdev_register - * the txrx SW stores a copy of these rx function pointers, to use - * as it delivers rx data frames to the OSIF SW. - * The tx portion is filled in by the txrx SW inside - * ol_txrx_osif_vdev_register; when the function call returns, - * the OSIF SW stores a copy of these tx functions to use as it - * delivers tx data frames to the txrx SW. - * The rx function pointer inputs consist of the following: - * rx: the OS shim rx function to deliver rx data frames to. - * This can have different values for different virtual devices, - * e.g. so one virtual device's OS shim directly hands rx frames to - * the OS, but another virtual device's OS shim filters out P2P - * messages before sending the rx frames to the OS. - * The netbufs delivered to the osif_rx function are in the format - * specified by the OS to use for tx and rx frames (either 802.3 or - * native WiFi). - * rx_mon: the OS shim rx monitor function to deliver monitor data to - * Though in practice, it is probable that the same function will - * be used for delivering rx monitor data for all virtual devices, - * in theory each different virtual device can have a different - * OS shim function for accepting rx monitor data. - * The netbufs delivered to the osif_rx_mon function are in 802.11 - * format. Each netbuf holds a 802.11 MPDU, not an 802.11 MSDU. - * Depending on compile-time configuration, each netbuf may also - * have a monitor-mode encapsulation header such as a radiotap - * header added before the MPDU contents. - * The tx function pointer outputs consist of the following: - * tx: the tx function pointer for standard data frames - * This function pointer is set by the txrx SW to perform - * host-side transmit operations based on whether a HL or LL - * host/target interface is in use. - * tx_non_std: the tx function pointer for non-standard data frames, - * such as TSO frames, explicitly-prioritized frames, or "raw" - * frames which skip some of the tx operations, such as 802.11 - * MAC header encapsulation. - */ -void -ol_txrx_osif_vdev_register(ol_txrx_vdev_handle txrx_vdev, - void *osif_vdev, struct ol_txrx_osif_ops *txrx_ops); - /** * @brief Divide a jumbo TCP frame into smaller segments. * @details diff --git a/core/dp/txrx/ol_ctrl_txrx_api.h b/core/dp/txrx/ol_ctrl_txrx_api.h index d77a5764a072..544ea9561476 100644 --- a/core/dp/txrx/ol_ctrl_txrx_api.h +++ b/core/dp/txrx/ol_ctrl_txrx_api.h @@ -36,8 +36,7 @@ #include /* uint8_t */ #include /* qdf_nbuf_t */ -#include /* ol_vdev_handle */ -#include /* ol_txrx_peer_handle, etc. */ +#include /* ol_txrx_pdev_handle */ #include /* OL_TXRX_MAC_ADDR_LEN */ #include /* ieee80211_frame */ @@ -140,34 +139,7 @@ ol_rx_notify(ol_pdev_handle pdev, uint32_t tsf32, enum ol_rx_notify_type notify_type, qdf_nbuf_t rx_frame); -/** - * @brief Indicate when a paused STA has tx data available. - * @details - * Indicate to the control SW when a paused peer that previously - * has all its peer-TID queues empty gets a MSDU to transmit. - * Conversely, indicate when a paused peer that had data in one or more of - * its peer-TID queues has all queued data removed (e.g. due to a U-APSD - * triggered transmission), but is still paused. - * It is up to the control SW to determine whether the peer is paused due to - * being in power-save sleep, or some other reason, and thus whether it is - * necessary to set the TIM in beacons to notify a sleeping STA that it has - * data. - * The data SW will also issue this ol_tx_paused_peer_data call when an - * unpaused peer that currently has tx data in one or more of its - * peer-TID queues becomes paused. - * The data SW will not issue this ol_tx_paused_peer_data call when a - * peer with data in one or more of its peer-TID queues becomes unpaused. - * - * @param peer - the paused peer - * @param has_tx_data - - * 1 -> a paused peer that previously had no tx data now does, -OR- - * 0 -> a paused peer that previously had tx data now doesnt - */ -void ol_tx_paused_peer_data(ol_peer_handle peer, int has_tx_data); - #define ol_ctrl_addba_req(pdev, peer_mac_addr, tid) ol_addba_req_reject #define ol_ctrl_rx_addba_complete(pdev, peer_mac_addr, tid, failed) /* no-op */ -void ol_txrx_set_peer_authorized_event(struct ol_txrx_vdev_t *vdev); - #endif /* _OL_CTRL_TXRX_API__H_ */ diff --git a/core/dp/txrx/ol_rx.c b/core/dp/txrx/ol_rx.c index c3f475e9fd36..093383b0b4ac 100644 --- a/core/dp/txrx/ol_rx.c +++ b/core/dp/txrx/ol_rx.c @@ -32,13 +32,11 @@ /* external API header files */ #include /* ol_rx_notify */ -#include /* htt_pdev_handle */ #include /* ol_txrx_pdev_handle */ #include /* ol_rx_indication_handler */ #include /* htt_rx_peer_id, etc. */ /* internal API header files */ -#include /* ol_txrx_vdev_t, etc. */ #include /* ol_txrx_peer_find_by_id */ #include /* ol_rx_reorder_store, etc. */ #include /* OL_RX_REORDER_TIMEOUT_UPDATE */ @@ -58,7 +56,6 @@ #include /* IPv4 header defs */ #include /* IPv6 header defs */ #include -#include #include #ifdef HTT_RX_RESTORE diff --git a/core/dp/txrx/ol_rx.h b/core/dp/txrx/ol_rx.h index ce1bbb0b0855..536a6d888f82 100644 --- a/core/dp/txrx/ol_rx.h +++ b/core/dp/txrx/ol_rx.h @@ -29,7 +29,8 @@ #define _OL_RX__H_ #include /* qdf_nbuf_t */ -#include /* ol_txrx_vdev_t, etc. */ +#include /* htt_pdev_handle */ +#include /* ol_txrx_vdev_t */ void ol_rx_deliver(struct ol_txrx_vdev_t *vdev, diff --git a/core/dp/txrx/ol_rx_defrag.c b/core/dp/txrx/ol_rx_defrag.c index f4c0768b1a61..11b9f5a1467b 100644 --- a/core/dp/txrx/ol_rx_defrag.c +++ b/core/dp/txrx/ol_rx_defrag.c @@ -53,7 +53,6 @@ #include #include #include -#include #include #include #include diff --git a/core/dp/txrx/ol_rx_fwd.c b/core/dp/txrx/ol_rx_fwd.c index 7653928fb231..939c739c534f 100644 --- a/core/dp/txrx/ol_rx_fwd.c +++ b/core/dp/txrx/ol_rx_fwd.c @@ -35,7 +35,6 @@ #include /* ieee80211_frame, etc. */ /* internal header files */ -#include /* ol_txrx_dev_t, etc. */ #include /* our own defs */ #include /* ol_rx_deliver */ #include /* TXRX_ASSERT1 */ diff --git a/core/dp/txrx/ol_rx_pn.c b/core/dp/txrx/ol_rx_pn.c index fa4903db5d34..9ecb4eab6d1b 100644 --- a/core/dp/txrx/ol_rx_pn.c +++ b/core/dp/txrx/ol_rx_pn.c @@ -31,7 +31,6 @@ #include /* ol_rx_err */ #include /* ol_rx_mpdu_list_next */ -#include /* ol_txrx_vdev_t, etc. */ #include /* our own defs */ #include /* ol_rx_fwd_check */ #include /* ol_rx_deliver */ diff --git a/core/dp/txrx/ol_rx_reorder_timeout.c b/core/dp/txrx/ol_rx_reorder_timeout.c index 24b0ae559765..02ab4255b051 100644 --- a/core/dp/txrx/ol_rx_reorder_timeout.c +++ b/core/dp/txrx/ol_rx_reorder_timeout.c @@ -32,7 +32,6 @@ #include /* datapath internal interfaces */ -#include /* ol_txrx_pdev_t, etc. */ #include /* TXRX_ASSERT, etc. */ #include /* ol_rx_reorder_flush, etc. */ diff --git a/core/dp/txrx/ol_rx_reorder_timeout.h b/core/dp/txrx/ol_rx_reorder_timeout.h index 768ee6fe4561..950e3843ab57 100644 --- a/core/dp/txrx/ol_rx_reorder_timeout.h +++ b/core/dp/txrx/ol_rx_reorder_timeout.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2012, 2014, 2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -28,8 +28,7 @@ #ifndef _OL_RX_REORDER_TIMEOUT__H_ #define _OL_RX_REORDER_TIMEOUT__H_ -#include /* ol_txrx_pdev_t, etc. */ - +#include /* ol_txrx_vdev_t, etc. */ #ifdef QCA_SUPPORT_OL_RX_REORDER_TIMEOUT void ol_rx_reorder_timeout_init(struct ol_txrx_pdev_t *pdev); diff --git a/core/dp/txrx/ol_tx.c b/core/dp/txrx/ol_tx.c index 5422bef9e499..0956af1c7b35 100644 --- a/core/dp/txrx/ol_tx.c +++ b/core/dp/txrx/ol_tx.c @@ -33,12 +33,9 @@ /* APIs for other modules */ #include /* HTT_TX_EXT_TID_MGMT */ #include /* htt_tx_desc_tid */ -#include /* ol_txrx_vdev_handle */ -#include /* ol_txrx_sync */ /* internal header files relevant for all systems */ #include /* TXRX_ASSERT1 */ -#include /* pdev stats */ #include /* ol_tx_desc */ #include /* ol_tx_send */ #include @@ -1178,6 +1175,26 @@ ol_txrx_data_tx_cb_set(ol_txrx_vdev_handle vdev, pdev->tx_data_callback.ctxt = ctxt; } +/** + * ol_txrx_mgmt_tx_cb_set() - Store a callback for delivery + * notifications for management frames. + * + * @pdev - the data physical device object + * @type - the type of mgmt frame the callback is used for + * @download_cb - the callback for notification of delivery to the target + * @ota_ack_cb - the callback for notification of delivery to the peer + * @ctxt - context to use with the callback + * + * When the txrx SW receives notifications from the target that a tx frame + * has been delivered to its recipient, it will check if the tx frame + * is a management frame. If so, the txrx SW will check the management + * frame type specified when the frame was submitted for transmission. + * If there is a callback function registered for the type of managment + * frame in question, the txrx code will invoke the callback to inform + * the management + control SW that the mgmt frame was delivered. + * This function is used by the control SW to store a callback pointer + * for a given type of management frame. + */ void ol_txrx_mgmt_tx_cb_set(ol_txrx_pdev_handle pdev, uint8_t type, @@ -1229,8 +1246,26 @@ void dump_frag_desc(char *msg, struct ol_tx_desc_t *tx_desc) } #endif /* HELIUMPLUS_PADDR64 */ +/** + * ol_txrx_mgmt_send_ext() - Transmit a management frame + * + * @vdev - virtual device transmitting the frame + * @tx_mgmt_frm - management frame to transmit + * @type - the type of managment frame (determines what callback to use) + * @use_6mbps - specify whether management frame to transmit should + * use 6 Mbps rather than 1 Mbps min rate(for 5GHz band or P2P) + * @chanfreq - channel to transmit the frame on + * + * Send the specified management frame from the specified virtual device. + * The type is used for determining whether to invoke a callback to inform + * the sender that the tx mgmt frame was delivered, and if so, which + * callback to use. + * + * Return: 0 - the frame is accepted for transmission + * 1 - the frame was not accepted + */ int -ol_txrx_mgmt_send(ol_txrx_vdev_handle vdev, +ol_txrx_mgmt_send_ext(ol_txrx_vdev_handle vdev, qdf_nbuf_t tx_mgmt_frm, uint8_t type, uint8_t use_6mbps, uint16_t chanfreq) { diff --git a/core/dp/txrx/ol_tx.h b/core/dp/txrx/ol_tx.h index a76b82992cb0..a91bff1a7b28 100644 --- a/core/dp/txrx/ol_tx.h +++ b/core/dp/txrx/ol_tx.h @@ -34,9 +34,7 @@ #include /* qdf_nbuf_t */ #include -#include /* ol_txrx_vdev_handle */ - -#include /* ol_tx_desc_t, ol_txrx_msdu_info_t */ +#include /* ol_txrx_vdev_t, etc. */ qdf_nbuf_t ol_tx_ll(ol_txrx_vdev_handle vdev, qdf_nbuf_t msdu_list); #ifdef WLAN_FEATURE_FASTPATH diff --git a/core/dp/txrx/ol_tx_desc.c b/core/dp/txrx/ol_tx_desc.c index 0522d1de0002..cfba71b28dc5 100644 --- a/core/dp/txrx/ol_tx_desc.c +++ b/core/dp/txrx/ol_tx_desc.c @@ -35,7 +35,6 @@ #include /* htt_tx_desc_id */ -#include /* ol_txrx_pdev_t */ #include #include #ifdef QCA_SUPPORT_SW_TXRX_ENCAP diff --git a/core/dp/txrx/ol_tx_desc.h b/core/dp/txrx/ol_tx_desc.h index 92dd0b88e7aa..9b0cf42ee135 100644 --- a/core/dp/txrx/ol_tx_desc.h +++ b/core/dp/txrx/ol_tx_desc.h @@ -34,7 +34,7 @@ #include /* TAILQ_HEAD */ #include /* qdf_nbuf_t */ -#include /* ol_tx_desc_t */ +#include /* ol_txrx_vdev_t, etc. */ #include /*TXRX_ASSERT2 */ struct ol_tx_desc_t * diff --git a/core/dp/txrx/ol_tx_queue.c b/core/dp/txrx/ol_tx_queue.c index 5c25a40909d5..de35be4e970a 100644 --- a/core/dp/txrx/ol_tx_queue.c +++ b/core/dp/txrx/ol_tx_queue.c @@ -30,11 +30,8 @@ #include /* ol_cfg_addba_retry */ #include /* HTT_TX_EXT_TID_MGMT */ #include /* htt_tx_desc_tid */ -#include /* ol_txrx_vdev_handle */ -#include /* ol_txrx_sync, ol_tx_addba_conf */ #include /* ol_ctrl_addba_req */ #include /* TXRX_ASSERT1, etc. */ -#include /* pdev stats */ #include /* ol_tx_desc, ol_tx_desc_frame_list_free */ #include /* ol_tx_vdev_ll_pause_queue_send */ #include diff --git a/core/dp/txrx/ol_tx_queue.h b/core/dp/txrx/ol_tx_queue.h index ce847b78b7d4..c78bbc20fd3d 100644 --- a/core/dp/txrx/ol_tx_queue.h +++ b/core/dp/txrx/ol_tx_queue.h @@ -33,7 +33,7 @@ #define _OL_TX_QUEUE__H_ #include /* qdf_nbuf_t */ -#include /* ol_txrx_vdev_t, etc. */ +#include /* ol_txrx_vdev_t, etc. */ #include /* bool */ /*--- function prototypes for optional queue log feature --------------------*/ diff --git a/core/dp/txrx/ol_tx_send.c b/core/dp/txrx/ol_tx_send.c index cea7b2196b42..cd3cd8868c7f 100644 --- a/core/dp/txrx/ol_tx_send.c +++ b/core/dp/txrx/ol_tx_send.c @@ -43,7 +43,6 @@ #include /* htt_tx_status */ #include -#include /* ol_txrx_vdev_t, etc */ #include /* ol_tx_desc_find, ol_tx_desc_frame_free */ #ifdef QCA_COMPUTE_TX_DELAY #endif diff --git a/core/dp/txrx/ol_tx_send.h b/core/dp/txrx/ol_tx_send.h index 2260da996f98..d7935cab9746 100644 --- a/core/dp/txrx/ol_tx_send.h +++ b/core/dp/txrx/ol_tx_send.h @@ -33,7 +33,7 @@ #define _OL_TX_SEND__H_ #include /* qdf_nbuf_t */ -#include /* ol_tx_send_t */ +#include /* ol_txrx_vdev_t, etc. */ /** * @flush the ol tx when surprise remove. diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 4393d470dfe7..b6166fd43e1c 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -46,19 +46,12 @@ #include #include -/* header files for OS shim API */ -#include - /* header files for our own APIs */ #include #include -#include -#include /* header files for our internal definitions */ #include /* TXRX_ASSERT, etc. */ #include /* WDI events */ -#include /* ol_txrx_pdev_t, etc. */ -#include #include /* ol_tx_ll */ #include /* ol_rx_deliver */ #include /* ol_txrx_peer_find_attach, etc. */ @@ -389,7 +382,7 @@ uint32_t ol_tx_get_total_free_desc(struct ol_txrx_pdev_t *pdev) #endif /** - * ol_txrx_pdev_alloc() - allocate txrx pdev + * ol_txrx_pdev_attach() - allocate txrx pdev * @ctrl_pdev: cfg pdev * @htc_pdev: HTC pdev * @osdev: os dev @@ -398,7 +391,7 @@ uint32_t ol_tx_get_total_free_desc(struct ol_txrx_pdev_t *pdev) * NULL for failure */ ol_txrx_pdev_handle -ol_txrx_pdev_alloc(ol_pdev_handle ctrl_pdev, +ol_txrx_pdev_attach(ol_pdev_handle ctrl_pdev, HTC_HANDLE htc_pdev, qdf_device_t osdev) { struct ol_txrx_pdev_t *pdev; @@ -488,13 +481,13 @@ void htt_pktlogmod_exit(ol_txrx_pdev_handle handle, void *sc) { } #endif /** - * ol_txrx_pdev_attach() - attach txrx pdev + * ol_txrx_pdev_post_attach() - attach txrx pdev * @pdev: txrx pdev * * Return: 0 for success */ int -ol_txrx_pdev_attach(ol_txrx_pdev_handle pdev) +ol_txrx_pdev_post_attach(ol_txrx_pdev_handle pdev) { uint16_t i; uint16_t fail_idx = 0; @@ -953,11 +946,36 @@ ol_attach_fail: return ret; /* fail */ } +/** + * ol_txrx_pdev_attach_target() - send target configuration + * + * @pdev - the physical device being initialized + * + * The majority of the data SW setup are done by the pdev_attach + * functions, but this function completes the data SW setup by + * sending datapath configuration messages to the target. + * + * Return: 0 - success 1 - failure + */ A_STATUS ol_txrx_pdev_attach_target(ol_txrx_pdev_handle pdev) { - return htt_attach_target(pdev->htt_pdev); + return htt_attach_target(pdev->htt_pdev) == A_OK ? 0:1; } +/** + * ol_txrx_pdev_detach() - delete the data SW state + * + * @pdev - the data physical device object being removed + * @force - delete the pdev (and its vdevs and peers) even if + * there are outstanding references by the target to the vdevs + * and peers within the pdev + * + * This function is used when the WLAN driver is being removed to + * remove the host data component within the driver. + * All virtual devices within the physical device need to be deleted + * (ol_txrx_vdev_detach) before the physical device itself is deleted. + * + */ void ol_txrx_pdev_detach(ol_txrx_pdev_handle pdev, int force) { int i; @@ -1068,6 +1086,18 @@ void ol_txrx_pdev_detach(ol_txrx_pdev_handle pdev, int force) #endif } +/** + * ol_txrx_vdev_attach - Allocate and initialize the data object + * for a new virtual device. + * + * @data_pdev - the physical device the virtual device belongs to + * @vdev_mac_addr - the MAC address of the virtual device + * @vdev_id - the ID used to identify the virtual device to the target + * @op_mode - whether this virtual device is operating as an AP, + * an IBSS, or a STA + * + * Return: success: handle to new data vdev object, failure: NULL + */ ol_txrx_vdev_handle ol_txrx_vdev_attach(ol_txrx_pdev_handle pdev, uint8_t *vdev_mac_addr, @@ -1143,15 +1173,43 @@ ol_txrx_vdev_attach(ol_txrx_pdev_handle pdev, return vdev; } -void ol_txrx_osif_vdev_register(ol_txrx_vdev_handle vdev, +/** + *ol_txrx_vdev_register - Link a vdev's data object with the + * matching OS shim vdev object. + * + * @txrx_vdev: the virtual device's data object + * @osif_vdev: the virtual device's OS shim object + * @txrx_ops: (pointers to)functions used for tx and rx data xfer + * + * The data object for a virtual device is created by the + * function ol_txrx_vdev_attach. However, rather than fully + * linking the data vdev object with the vdev objects from the + * other subsystems that the data vdev object interacts with, + * the txrx_vdev_attach function focuses primarily on creating + * the data vdev object. After the creation of both the data + * vdev object and the OS shim vdev object, this + * txrx_osif_vdev_attach function is used to connect the two + * vdev objects, so the data SW can use the OS shim vdev handle + * when passing rx data received by a vdev up to the OS shim. + */ +void ol_txrx_vdev_register(ol_txrx_vdev_handle vdev, void *osif_vdev, - struct ol_txrx_osif_ops *txrx_ops) + struct ol_txrx_ops *txrx_ops) { vdev->osif_dev = osif_vdev; - txrx_ops->tx.std = vdev->tx = OL_TX_LL; - txrx_ops->tx.non_std = ol_tx_non_std_ll; + txrx_ops->tx.tx = vdev->tx = OL_TX_LL; } +/** + * ol_txrx_set_curchan - Setup the current operating channel of + * the device + * @pdev - the data physical device object + * @chan_mhz - the channel frequency (mhz) packets on + * + * Mainly used when populating monitor mode status that requires + * the current operating channel + * + */ void ol_txrx_set_curchan(ol_txrx_pdev_handle pdev, uint32_t chan_mhz) { return; @@ -1162,6 +1220,16 @@ void ol_txrx_set_safemode(ol_txrx_vdev_handle vdev, uint32_t val) vdev->safemode = val; } +/** + * ol_txrx_set_privacy_filters - set the privacy filter + * @vdev - the data virtual device object + * @filter - filters to be set + * @num - the number of filters + * + * Rx related. Set the privacy filters. When rx packets, check + * the ether type, filter type and packet type to decide whether + * discard these packets. + */ void ol_txrx_set_privacy_filters(ol_txrx_vdev_handle vdev, void *filters, uint32_t num) @@ -1176,6 +1244,29 @@ void ol_txrx_set_drop_unenc(ol_txrx_vdev_handle vdev, uint32_t val) vdev->drop_unenc = val; } +/** + * ol_txrx_vdev_detach - Deallocate the specified data virtual + * device object. + * @data_vdev: data object for the virtual device in question + * @callback: function to call (if non-NULL) once the vdev has + * been wholly deleted + * @callback_context: context to provide in the callback + * + * All peers associated with the virtual device need to be deleted + * (ol_txrx_peer_detach) before the virtual device itself is deleted. + * However, for the peers to be fully deleted, the peer deletion has to + * percolate through the target data FW and back up to the host data SW. + * Thus, even though the host control SW may have issued a peer_detach + * call for each of the vdev's peers, the peer objects may still be + * allocated, pending removal of all references to them by the target FW. + * In this case, though the vdev_detach function call will still return + * immediately, the vdev itself won't actually be deleted, until the + * deletions of all its peers complete. + * The caller can provide a callback function pointer to be notified when + * the vdev deletion actually happens - whether it's directly within the + * vdev_detach call, or if it's deferred until all in-progress peer + * deletions have completed. + */ void ol_txrx_vdev_detach(ol_txrx_vdev_handle vdev, ol_txrx_vdev_delete_cb callback, void *context) @@ -1303,9 +1394,31 @@ void ol_txrx_flush_rx_frames(struct ol_txrx_peer_t *peer, qdf_atomic_dec(&peer->flush_in_progress); } +/** + * ol_txrx_peer_attach - Allocate and set up references for a + * data peer object. + * @data_pdev: data physical device object that will indirectly + * own the data_peer object + * @data_vdev - data virtual device object that will directly + * own the data_peer object + * @peer_mac_addr - MAC address of the new peer + * + * When an association with a peer starts, the host's control SW + * uses this function to inform the host data SW. + * The host data SW allocates its own peer object, and stores a + * reference to the control peer object within the data peer object. + * The host data SW also stores a reference to the virtual device + * that the peer is associated with. This virtual device handle is + * used when the data SW delivers rx data frames to the OS shim layer. + * The host data SW returns a handle to the new peer data object, + * so a reference within the control peer object can be set to the + * data peer object. + * + * Return: handle to new data peer object, or NULL if the attach + * fails + */ ol_txrx_peer_handle -ol_txrx_peer_attach(ol_txrx_pdev_handle pdev, - ol_txrx_vdev_handle vdev, uint8_t *peer_mac_addr) +ol_txrx_peer_attach(ol_txrx_vdev_handle vdev, uint8_t *peer_mac_addr) { struct ol_txrx_peer_t *peer; struct ol_txrx_peer_t *temp_peer; @@ -1313,12 +1426,15 @@ ol_txrx_peer_attach(ol_txrx_pdev_handle pdev, int differs; bool wait_on_deletion = false; unsigned long rc; + struct ol_txrx_pdev_t *pdev; /* preconditions */ - TXRX_ASSERT2(pdev); TXRX_ASSERT2(vdev); TXRX_ASSERT2(peer_mac_addr); + pdev = vdev->pdev; + TXRX_ASSERT2(pdev); + qdf_spin_lock_bh(&pdev->peer_ref_mutex); /* check for duplicate exsisting peer */ TAILQ_FOREACH(temp_peer, &vdev->peer_list, peer_list_elem) { @@ -1798,6 +1914,16 @@ void ol_txrx_peer_unref_delete(ol_txrx_peer_handle peer) } } +/** + * ol_txrx_peer_detach - Delete a peer's data object. + * @data_peer - the object to delete + * + * When the host's control SW disassociates a peer, it calls + * this function to delete the peer's data object. The reference + * stored in the control peer object to the data peer + * object (set up by a call to ol_peer_store()) is provided. + * + */ void ol_txrx_peer_detach(ol_txrx_peer_handle peer) { struct ol_txrx_vdev_t *vdev = peer->vdev; @@ -2036,7 +2162,6 @@ struct ol_txrx_stats_req_internal *ol_txrx_u64_to_stats_ptr(uint64_t cookie) return (struct ol_txrx_stats_req_internal *)((size_t) cookie); } -#ifdef ATH_PERF_PWR_OFFLOAD void ol_txrx_fw_stats_cfg(ol_txrx_vdev_handle vdev, uint8_t cfg_stats_type, uint32_t cfg_val) @@ -2095,7 +2220,7 @@ ol_txrx_fw_stats_get(ol_txrx_vdev_handle vdev, struct ol_txrx_stats_req *req, return A_OK; } -#endif + void ol_txrx_fw_stats_handler(ol_txrx_pdev_handle pdev, uint64_t cookie, uint8_t *stats_info_list) @@ -3479,3 +3604,26 @@ void ol_deregister_lro_flush_cb(void) pdev->lro_info.lro_data = NULL; } #endif /* FEATURE_LRO */ + +/** + * ol_txrx_get_vdev_from_vdev_id() - get vdev from vdev_id + * @vdev_id: vdev_id + * + * Return: vdev handle + * NULL if not found. + */ +ol_txrx_vdev_handle ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id) +{ + ol_txrx_pdev_handle pdev = cds_get_context(QDF_MODULE_ID_TXRX); + ol_txrx_vdev_handle vdev = NULL; + + if (qdf_unlikely(!pdev)) + return NULL; + + TAILQ_FOREACH(vdev, &pdev->vdev_list, vdev_list_elem) { + if (vdev->vdev_id == vdev_id) + break; + } + + return vdev; +} diff --git a/core/dp/txrx/ol_txrx.h b/core/dp/txrx/ol_txrx.h index 22472386519a..c65151c672d9 100644 --- a/core/dp/txrx/ol_txrx.h +++ b/core/dp/txrx/ol_txrx.h @@ -29,8 +29,7 @@ #define _OL_TXRX__H_ #include /* qdf_nbuf_t */ -#include /* ol_txrx_vdev_t, etc. */ -#include /* ol_pdev_handle */ +#include /* ol_txrx_vdev_t, etc. */ #include "cds_sched.h" void ol_txrx_peer_unref_delete(struct ol_txrx_peer_t *peer); @@ -39,28 +38,6 @@ void ol_txrx_peer_unref_delete(struct ol_txrx_peer_t *peer); #define OL_TX_AVG_FRM_BYTES 1000 #endif -/** - * ol_txrx_get_vdev_from_vdev_id() - get vdev from vdev_id - * @vdev_id: vdev_id - * - * Return: vdev handle - * NULL if not found. - */ -static inline ol_txrx_vdev_handle ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id) -{ - ol_txrx_pdev_handle pdev = cds_get_context(QDF_MODULE_ID_TXRX); - ol_txrx_vdev_handle vdev = NULL; - - if (qdf_unlikely(!pdev)) { - return NULL; - } - - TAILQ_FOREACH(vdev, &pdev->vdev_list, vdev_list_elem) { - if (vdev->vdev_id == vdev_id) - break; - } - - return vdev; -} +ol_txrx_vdev_handle ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id); #endif /* _OL_TXRX__H_ */ diff --git a/core/dp/txrx/ol_txrx_encap.c b/core/dp/txrx/ol_txrx_encap.c index 03b1ddd95d20..95c9d65d63e7 100644 --- a/core/dp/txrx/ol_txrx_encap.c +++ b/core/dp/txrx/ol_txrx_encap.c @@ -39,7 +39,6 @@ #include /* ieee80211_frame */ #include /* struct llc, struct ether_header, etc. */ #include /* TXRX_ASSERT1 */ -#include /* struct ol_txrx_vdev_t, ol_txrx_pdev_t,etc. */ #include /* struct ol_rx_decap_info_t */ #define OL_TX_COPY_NATIVE_WIFI_HEADER(wh, msdu, hdsize, localbuf) \ diff --git a/core/dp/txrx/ol_txrx_encap.h b/core/dp/txrx/ol_txrx_encap.h index 2da28be57998..932bdd342a45 100644 --- a/core/dp/txrx/ol_txrx_encap.h +++ b/core/dp/txrx/ol_txrx_encap.h @@ -36,7 +36,7 @@ #include /* qdf_nbuf_t */ #include /* ieee80211_qosframe_htc_addr4 */ -#include /* ol_tx_desc_t, ol_txrx_msdu_info_t */ +#include /* ol_txrx_vdev_t, etc. */ /** * @brief Encap outgoing frm from OS dependent format to Target diff --git a/core/dp/txrx/ol_txrx_flow_control.c b/core/dp/txrx/ol_txrx_flow_control.c index f30008336ca2..a0d4404cb0d4 100644 --- a/core/dp/txrx/ol_txrx_flow_control.c +++ b/core/dp/txrx/ol_txrx_flow_control.c @@ -33,15 +33,12 @@ /* APIs for other modules */ #include /* HTT_TX_EXT_TID_MGMT */ #include /* htt_tx_desc_tid */ -#include /* ol_txrx_vdev_handle */ -#include /* ol_txrx_sync */ /* internal header files relevant for all systems */ #include /* TXRX_ASSERT1 */ -#include /* pdev stats */ #include /* ol_tx_desc */ #include /* ol_tx_send */ -#include +#include /* ol_txrx_get_vdev_from_vdev_id */ /* internal header files relevant only for HL systems */ #include /* ol_tx_enqueue */ diff --git a/core/dp/txrx/ol_txrx_peer_find.h b/core/dp/txrx/ol_txrx_peer_find.h index 25886cae1cf0..e5ec69df7efd 100644 --- a/core/dp/txrx/ol_txrx_peer_find.h +++ b/core/dp/txrx/ol_txrx_peer_find.h @@ -33,7 +33,7 @@ #define _OL_TXRX_PEER_FIND__H_ #include /* HTT_INVALID_PEER */ -#include /* ol_txrx_pdev_t, etc. */ +#include /* ol_txrx_pdev_t, etc. */ #include /* TXRX_ASSERT */ int ol_txrx_peer_find_attach(struct ol_txrx_pdev_t *pdev); diff --git a/core/dp/txrx/ol_txrx_types.h b/core/dp/txrx/ol_txrx_types.h index 0731c0836a37..e7f5f6bcd6c2 100644 --- a/core/dp/txrx/ol_txrx_types.h +++ b/core/dp/txrx/ol_txrx_types.h @@ -47,6 +47,8 @@ #include "ol_txrx_htt_api.h" #include "ol_htt_tx_api.h" #include "ol_htt_rx_api.h" +#include "ol_txrx_ctrl_api.h" /* WLAN_MAX_STA_COUNT */ +#include "ol_txrx_osif_api.h" /* ol_rx_callback_fp */ /* * The target may allocate multiple IDs for a peer. @@ -87,15 +89,6 @@ struct ol_txrx_pdev_t; struct ol_txrx_vdev_t; struct ol_txrx_peer_t; -struct ol_pdev_t; -typedef struct ol_pdev_t *ol_pdev_handle; - -struct ol_vdev_t; -typedef struct ol_vdev_t *ol_vdev_handle; - -struct ol_peer_t; -typedef struct ol_peer_t *ol_peer_handle; - /* rx filter related */ #define MAX_PRIVACY_FILTERS 4 /* max privacy filters */ diff --git a/core/dp/txrx/txrx.h b/core/dp/txrx/txrx.h index fa24eaf8cc4a..333899bcd1db 100644 --- a/core/dp/txrx/txrx.h +++ b/core/dp/txrx/txrx.h @@ -110,18 +110,6 @@ QDF_STATUS wlan_register_mgmt_client(void *pdev_txrx, QDF_STATUS (*rx_mgmt)(void *g_cdsctx, void *buf)); -typedef void (*ol_txrx_vdev_delete_cb)(void *context); - -/** - * @typedef ol_txrx_tx_fp - * @brief top-level transmit function - */ -typedef qdf_nbuf_t -(*ol_txrx_tx_fp)(struct ol_txrx_vdev_t *vdev, qdf_nbuf_t msdu_list); - -typedef void -(*ol_txrx_mgmt_tx_cb)(void *ctxt, qdf_nbuf_t tx_mgmt_frm, int had_error); - /* If RSSI realm is changed, send notification to Clients, SME, HDD */ typedef QDF_STATUS (*wlan_txrx_rssi_cross_thresh)(void *adapter, u8 rssi, void *usr_ctx, diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 93355a544ea5..364aeb47f084 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -40,7 +40,6 @@ #include "cfg_api.h" #include "qdf_status.h" #include "cds_sched.h" -#include "ol_txrx_api.h" #include "sir_mac_prot_def.h" #include "wma_types.h" #include "ol_txrx_types.h" @@ -48,6 +47,7 @@ #include "utils_api.h" #include "lim_types.h" #include "wmi_unified_api.h" +#include "cdp_txrx_cmn.h" /* Platform specific configuration for max. no. of fragments */ #define QCA_OL_11AC_TX_MAX_FRAGS 2 diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c index 5c8550587ef6..0e6f46fa6318 100644 --- a/core/wma/src/wma_data.c +++ b/core/wma/src/wma_data.c @@ -42,14 +42,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" @@ -2561,8 +2558,8 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen, wmi_desc_put(wma_handle, mgmt_param.wmi_desc); } else { /* Hand over the Tx Mgmt frame to TxRx */ - status = ol_txrx_mgmt_send(txrx_vdev, tx_frame, tx_frm_index, - use_6mbps, chanfreq); + status = ol_txrx_mgmt_send_ext(txrx_vdev, tx_frame, + tx_frm_index, use_6mbps, chanfreq); } /* diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 3ffda0247fe3..328430578eca 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -42,14 +42,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" @@ -1079,7 +1076,7 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, ol_txrx_pdev_handle pdev, wma->interfaces[vdev_id].peer_count - 1); goto err; } - peer = ol_txrx_peer_attach(pdev, vdev, peer_addr); + peer = ol_txrx_peer_attach(vdev, peer_addr); if (!peer) { WMA_LOGE("%s : Unable to attach peer %pM", __func__, peer_addr); goto err; diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index 71514c7aa004..ef525be6de37 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -43,14 +43,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index fef95c01f34c..465a008ff5ee 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -44,14 +44,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c index 4ab70a3e2d4d..134039cf721c 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -43,14 +43,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" diff --git a/core/wma/src/wma_power.c b/core/wma/src/wma_power.c index e687fc542d65..e383e3906d8f 100644 --- a/core/wma/src/wma_power.c +++ b/core/wma/src/wma_power.c @@ -42,14 +42,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index dfb69d5f7927..d6c6f7954ac2 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -43,14 +43,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h" diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c index 81af1d58061a..8457bd4d5ca7 100644 --- a/core/wma/src/wma_utils.c +++ b/core/wma/src/wma_utils.c @@ -42,14 +42,11 @@ #include "wmi_unified.h" #include "wni_cfg.h" #include "cfg_api.h" -#include "ol_txrx_ctrl_api.h" #include "wlan_tgt_def_config.h" #include "qdf_nbuf.h" #include "qdf_types.h" -#include "ol_txrx_api.h" #include "qdf_mem.h" -#include "ol_txrx_types.h" #include "ol_txrx_peer_find.h" #include "wma_types.h"