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_tx.h"
|
||||||
#include <hal_be_api.h>
|
#include <hal_be_api.h>
|
||||||
|
|
||||||
|
extern uint8_t sec_type_map[MAX_CDP_SEC_TYPE];
|
||||||
|
|
||||||
#ifdef DP_FEATURE_HW_COOKIE_CONVERSION
|
#ifdef DP_FEATURE_HW_COOKIE_CONVERSION
|
||||||
#ifdef DP_HW_COOKIE_CONVERT_EXCEPTION
|
#ifdef DP_HW_COOKIE_CONVERT_EXCEPTION
|
||||||
void dp_tx_comp_get_params_from_hal_desc_be(struct dp_soc *soc,
|
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;
|
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_cached = (void *)cached_desc;
|
||||||
|
|
||||||
hal_tx_desc_set_buf_addr(soc->hal_soc, hal_tx_desc_cached,
|
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;
|
bank_config->encap_type = vdev->tx_encap_type;
|
||||||
|
|
||||||
/* Only valid for raw frames. Needs work for RAW mode */
|
/* 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->src_buffer_swap = 0;
|
||||||
bank_config->link_meta_swap = 0;
|
bank_config->link_meta_swap = 0;
|
||||||
|
|
||||||
if (soc->is_peer_map_unmap_v2 && vdev->opmode == wlan_op_mode_sta)
|
if (soc->is_peer_map_unmap_v2 && vdev->opmode == wlan_op_mode_sta) {
|
||||||
vdev->search_type = HAL_TX_ADDR_INDEX_SEARCH;
|
bank_config->index_lookup_enable = 1;
|
||||||
else
|
bank_config->mcast_pkt_ctrl = 2;
|
||||||
vdev->search_type = HAL_TX_ADDR_SEARCH_DEFAULT;
|
} else {
|
||||||
|
bank_config->index_lookup_enable = 0;
|
||||||
bank_config->index_lookup_enable = 0;
|
bank_config->mcast_pkt_ctrl = 0;
|
||||||
|
}
|
||||||
|
|
||||||
bank_config->addrx_en =
|
bank_config->addrx_en =
|
||||||
(vdev->hal_desc_addr_search_flags & HAL_TX_DESC_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->vdev_id_check_en = be_vdev->vdev_id_check_en;
|
||||||
|
|
||||||
bank_config->pmac_id = vdev->lmac_id;
|
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,
|
int dp_tx_get_bank_profile(struct dp_soc_be *be_soc,
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#include "qdf_mem.h"
|
#include "qdf_mem.h"
|
||||||
#include "qdf_nbuf.h"
|
#include "qdf_nbuf.h"
|
||||||
#include "qdf_net_types.h"
|
#include "qdf_net_types.h"
|
||||||
|
#include "qdf_module.h"
|
||||||
#include <wlan_cfg.h>
|
#include <wlan_cfg.h>
|
||||||
#include "dp_ipa.h"
|
#include "dp_ipa.h"
|
||||||
#if defined(MESH_MODE_SUPPORT) || defined(FEATURE_PERPKT_INFO)
|
#if defined(MESH_MODE_SUPPORT) || defined(FEATURE_PERPKT_INFO)
|
||||||
@@ -61,6 +62,21 @@
|
|||||||
/* invalid peer id for reinject*/
|
/* invalid peer id for reinject*/
|
||||||
#define DP_INVALID_PEER 0XFFFE
|
#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
|
#ifdef CONFIG_WLAN_SYSFS_MEM_STATS
|
||||||
/**
|
/**
|
||||||
* dp_update_tx_desc_stats - Update the increase or decrease in
|
* dp_update_tx_desc_stats - Update the increase or decrease in
|
||||||
|
@@ -75,6 +75,8 @@ do { \
|
|||||||
#endif /* TX_PER_PDEV_DESC_POOL */
|
#endif /* TX_PER_PDEV_DESC_POOL */
|
||||||
#define DP_TX_QUEUE_MASK 0x3
|
#define DP_TX_QUEUE_MASK 0x3
|
||||||
|
|
||||||
|
#define MAX_CDP_SEC_TYPE 12
|
||||||
|
|
||||||
/* number of dwords for htt_tx_msdu_desc_ext2_t */
|
/* number of dwords for htt_tx_msdu_desc_ext2_t */
|
||||||
#define DP_TX_MSDU_INFO_META_DATA_DWORDS 7
|
#define DP_TX_MSDU_INFO_META_DATA_DWORDS 7
|
||||||
|
|
||||||
|
@@ -25,20 +25,7 @@
|
|||||||
#include <hal_li_api.h>
|
#include <hal_li_api.h>
|
||||||
#include <hal_li_tx.h>
|
#include <hal_li_tx.h>
|
||||||
|
|
||||||
/*mapping between hal encrypt type and cdp_sec_type*/
|
extern uint8_t sec_type_map[MAX_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};
|
|
||||||
|
|
||||||
void dp_tx_comp_get_params_from_hal_desc_li(struct dp_soc *soc,
|
void dp_tx_comp_get_params_from_hal_desc_li(struct dp_soc *soc,
|
||||||
void *tx_comp_hal_desc,
|
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
|
#endif
|
||||||
|
|
||||||
|
#if defined(QCA_WIFI_WCN7850) || defined(CONFIG_WIFI_EMULATION_WIFI_3_0)
|
||||||
static inline uint32_t
|
static inline uint32_t
|
||||||
hal_wbm2sw_release_source_get(void *hal_desc, enum hal_be_wbm_release_dir dir)
|
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;
|
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)
|
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;
|
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_tx_comp_get_buffer_source() - Get buffer release source value
|
||||||
* @hal_desc: completion ring descriptor pointer
|
* @hal_desc: completion ring descriptor pointer
|
||||||
|
Reference in New Issue
Block a user