qcacmn: DP Tx changes for QCN9224
Changes for DP tx for QCN9224 Change-Id: I7010aef55dc6e8bedfa1c44fe6baa1baa55c32c9
This commit is contained in:

committed by
Madan Koyyalamudi

parent
9406f72b3d
commit
49e18cfe2a
@@ -24,6 +24,8 @@
|
||||
#include "hal_tx.h"
|
||||
#include <hal_be_api.h>
|
||||
|
||||
extern uint8_t sec_type_map[MAX_CDP_SEC_TYPE];
|
||||
|
||||
#ifdef DP_FEATURE_HW_COOKIE_CONVERSION
|
||||
#ifdef DP_HW_COOKIE_CONVERT_EXCEPTION
|
||||
void dp_tx_comp_get_params_from_hal_desc_be(struct dp_soc *soc,
|
||||
@@ -120,6 +122,19 @@ dp_tx_hw_enqueue_be(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
return QDF_STATUS_E_RESOURCES;
|
||||
}
|
||||
|
||||
if (qdf_unlikely(tx_exc_metadata)) {
|
||||
qdf_assert_always((tx_exc_metadata->tx_encap_type ==
|
||||
CDP_INVALID_TX_ENCAP_TYPE) ||
|
||||
(tx_exc_metadata->tx_encap_type ==
|
||||
vdev->tx_encap_type));
|
||||
|
||||
if (tx_exc_metadata->tx_encap_type == htt_cmn_pkt_type_raw)
|
||||
qdf_assert_always((tx_exc_metadata->sec_type ==
|
||||
CDP_INVALID_SEC_TYPE) ||
|
||||
tx_exc_metadata->sec_type ==
|
||||
vdev->sec_type);
|
||||
}
|
||||
|
||||
hal_tx_desc_cached = (void *)cached_desc;
|
||||
|
||||
hal_tx_desc_set_buf_addr(soc->hal_soc, hal_tx_desc_cached,
|
||||
@@ -249,17 +264,22 @@ void dp_tx_get_vdev_bank_config(struct dp_vdev_be *be_vdev,
|
||||
bank_config->encap_type = vdev->tx_encap_type;
|
||||
|
||||
/* Only valid for raw frames. Needs work for RAW mode */
|
||||
bank_config->encrypt_type = 0;
|
||||
if (vdev->tx_encap_type == htt_cmn_pkt_type_raw) {
|
||||
bank_config->encrypt_type = sec_type_map[vdev->sec_type];
|
||||
} else {
|
||||
bank_config->encrypt_type = 0;
|
||||
}
|
||||
|
||||
bank_config->src_buffer_swap = 0;
|
||||
bank_config->link_meta_swap = 0;
|
||||
|
||||
if (soc->is_peer_map_unmap_v2 && vdev->opmode == wlan_op_mode_sta)
|
||||
vdev->search_type = HAL_TX_ADDR_INDEX_SEARCH;
|
||||
else
|
||||
vdev->search_type = HAL_TX_ADDR_SEARCH_DEFAULT;
|
||||
|
||||
bank_config->index_lookup_enable = 0;
|
||||
if (soc->is_peer_map_unmap_v2 && vdev->opmode == wlan_op_mode_sta) {
|
||||
bank_config->index_lookup_enable = 1;
|
||||
bank_config->mcast_pkt_ctrl = 2;
|
||||
} else {
|
||||
bank_config->index_lookup_enable = 0;
|
||||
bank_config->mcast_pkt_ctrl = 0;
|
||||
}
|
||||
|
||||
bank_config->addrx_en =
|
||||
(vdev->hal_desc_addr_search_flags & HAL_TX_DESC_ADDRX_EN) ?
|
||||
@@ -274,8 +294,6 @@ void dp_tx_get_vdev_bank_config(struct dp_vdev_be *be_vdev,
|
||||
bank_config->vdev_id_check_en = be_vdev->vdev_id_check_en;
|
||||
|
||||
bank_config->pmac_id = vdev->lmac_id;
|
||||
|
||||
bank_config->mcast_pkt_ctrl = 0;
|
||||
}
|
||||
|
||||
int dp_tx_get_bank_profile(struct dp_soc_be *be_soc,
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#include "qdf_mem.h"
|
||||
#include "qdf_nbuf.h"
|
||||
#include "qdf_net_types.h"
|
||||
#include "qdf_module.h"
|
||||
#include <wlan_cfg.h>
|
||||
#include "dp_ipa.h"
|
||||
#if defined(MESH_MODE_SUPPORT) || defined(FEATURE_PERPKT_INFO)
|
||||
@@ -61,6 +62,21 @@
|
||||
/* invalid peer id for reinject*/
|
||||
#define DP_INVALID_PEER 0XFFFE
|
||||
|
||||
/*mapping between hal encrypt type and cdp_sec_type*/
|
||||
uint8_t sec_type_map[MAX_CDP_SEC_TYPE] = {HAL_TX_ENCRYPT_TYPE_NO_CIPHER,
|
||||
HAL_TX_ENCRYPT_TYPE_WEP_128,
|
||||
HAL_TX_ENCRYPT_TYPE_WEP_104,
|
||||
HAL_TX_ENCRYPT_TYPE_WEP_40,
|
||||
HAL_TX_ENCRYPT_TYPE_TKIP_WITH_MIC,
|
||||
HAL_TX_ENCRYPT_TYPE_TKIP_NO_MIC,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_CCMP_128,
|
||||
HAL_TX_ENCRYPT_TYPE_WAPI,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_CCMP_256,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_GCMP_128,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_GCMP_256,
|
||||
HAL_TX_ENCRYPT_TYPE_WAPI_GCM_SM4};
|
||||
qdf_export_symbol(sec_type_map);
|
||||
|
||||
#ifdef CONFIG_WLAN_SYSFS_MEM_STATS
|
||||
/**
|
||||
* dp_update_tx_desc_stats - Update the increase or decrease in
|
||||
|
@@ -75,6 +75,8 @@ do { \
|
||||
#endif /* TX_PER_PDEV_DESC_POOL */
|
||||
#define DP_TX_QUEUE_MASK 0x3
|
||||
|
||||
#define MAX_CDP_SEC_TYPE 12
|
||||
|
||||
/* number of dwords for htt_tx_msdu_desc_ext2_t */
|
||||
#define DP_TX_MSDU_INFO_META_DATA_DWORDS 7
|
||||
|
||||
|
@@ -25,20 +25,7 @@
|
||||
#include <hal_li_api.h>
|
||||
#include <hal_li_tx.h>
|
||||
|
||||
/*mapping between hal encrypt type and cdp_sec_type*/
|
||||
#define MAX_CDP_SEC_TYPE 12
|
||||
uint8_t sec_type_map[MAX_CDP_SEC_TYPE] = {HAL_TX_ENCRYPT_TYPE_NO_CIPHER,
|
||||
HAL_TX_ENCRYPT_TYPE_WEP_128,
|
||||
HAL_TX_ENCRYPT_TYPE_WEP_104,
|
||||
HAL_TX_ENCRYPT_TYPE_WEP_40,
|
||||
HAL_TX_ENCRYPT_TYPE_TKIP_WITH_MIC,
|
||||
HAL_TX_ENCRYPT_TYPE_TKIP_NO_MIC,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_CCMP_128,
|
||||
HAL_TX_ENCRYPT_TYPE_WAPI,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_CCMP_256,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_GCMP_128,
|
||||
HAL_TX_ENCRYPT_TYPE_AES_GCMP_256,
|
||||
HAL_TX_ENCRYPT_TYPE_WAPI_GCM_SM4};
|
||||
extern uint8_t sec_type_map[MAX_CDP_SEC_TYPE];
|
||||
|
||||
void dp_tx_comp_get_params_from_hal_desc_li(struct dp_soc *soc,
|
||||
void *tx_comp_hal_desc,
|
||||
|
@@ -213,6 +213,7 @@ void hal_tx_desc_set_cache_set_num_generic_be(void *desc, uint8_t cache_num)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(QCA_WIFI_WCN7850) || defined(CONFIG_WIFI_EMULATION_WIFI_3_0)
|
||||
static inline uint32_t
|
||||
hal_wbm2sw_release_source_get(void *hal_desc, enum hal_be_wbm_release_dir dir)
|
||||
{
|
||||
@@ -248,6 +249,13 @@ hal_wbm2sw_release_source_get(void *hal_desc, enum hal_be_wbm_release_dir dir)
|
||||
|
||||
return buf_src;
|
||||
}
|
||||
#else
|
||||
static inline uint32_t
|
||||
hal_wbm2sw_release_source_get(void *hal_desc, enum hal_be_wbm_release_dir dir)
|
||||
{
|
||||
return HAL_WBM2SW_RELEASE_SRC_GET(hal_desc);
|
||||
}
|
||||
#endif
|
||||
|
||||
uint32_t hal_tx_comp_get_buffer_source_generic_be(void *hal_desc)
|
||||
{
|
||||
|
@@ -553,7 +553,7 @@ static inline uint32_t hal_tx_comp_get_buffer_type(void *hal_desc)
|
||||
HAL_TX_COMP_BUFFER_OR_DESC_TYPE_LSB;
|
||||
}
|
||||
|
||||
#ifdef QCA_WIFI_WCN7850
|
||||
#if defined(QCA_WIFI_WCN7850) || defined(CONFIG_WIFI_EMULATION_WIFI_3_0)
|
||||
/**
|
||||
* hal_tx_comp_get_buffer_source() - Get buffer release source value
|
||||
* @hal_desc: completion ring descriptor pointer
|
||||
|
Reference in New Issue
Block a user