qcacmn: Update TX bank profile for STA + TDLS case

Search flag addrX and addrY will be enabled for STA + TDLS case,
but currently TX bank profile is not updated which then STA still
use default TX bank profile - index based lookup search, TX might
fail.

Update bank profile with addrX and addrY search enabled.

Change-Id: I6af12d3707b59c5d4b4bba1fc5ec05a22bfcd984
CRs-Fixed: 3148759
This commit is contained in:
Jinwei Chen
2022-03-08 00:45:37 -08:00
committed by Madan Koyyalamudi
parent 7c3b36f765
commit 8180dff19c
4 changed files with 5 additions and 5 deletions

View File

@@ -1512,6 +1512,7 @@ QDF_STATUS dp_txrx_set_vdev_param_be(struct dp_soc *soc,
switch (param) {
case CDP_TX_ENCAP_TYPE:
case CDP_UPDATE_DSCP_TO_TID_MAP:
case CDP_UPDATE_TDLS_FLAGS:
dp_tx_update_bank_profile(be_soc, be_vdev);
break;
case CDP_ENABLE_CIPHER:

View File

@@ -705,7 +705,6 @@ void dp_tx_get_vdev_bank_config(struct dp_vdev_be *be_vdev,
union hal_tx_bank_config *bank_config)
{
struct dp_vdev *vdev = &be_vdev->vdev;
struct dp_soc *soc = vdev->pdev->soc;
bank_config->epd = 0;
@@ -721,8 +720,8 @@ void dp_tx_get_vdev_bank_config(struct dp_vdev_be *be_vdev,
bank_config->src_buffer_swap = 0;
bank_config->link_meta_swap = 0;
if ((soc->sta_mode_search_policy == HAL_TX_ADDR_INDEX_SEARCH) &&
vdev->opmode == wlan_op_mode_sta) {
if ((vdev->search_type == HAL_TX_ADDR_INDEX_SEARCH) &&
vdev->opmode == wlan_op_mode_sta) {
bank_config->index_lookup_enable = 1;
bank_config->mcast_pkt_ctrl = HAL_TX_MCAST_CTRL_MEC_NOTIFY;
bank_config->addrx_en = 0;

View File

@@ -10203,8 +10203,8 @@ dp_set_vdev_param(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
break;
}
dsoc->arch_ops.txrx_set_vdev_param(dsoc, vdev, param, val);
dp_tx_vdev_update_search_flags((struct dp_vdev *)vdev);
dsoc->arch_ops.txrx_set_vdev_param(dsoc, vdev, param, val);
dp_vdev_unref_delete(dsoc, vdev, DP_MOD_ID_CDP);
return QDF_STATUS_SUCCESS;

View File

@@ -5233,7 +5233,7 @@ void dp_tx_vdev_update_search_flags(struct dp_vdev *vdev)
else
vdev->hal_desc_addr_search_flags = HAL_TX_DESC_ADDRX_EN;
if (vdev->opmode == wlan_op_mode_sta)
if (vdev->opmode == wlan_op_mode_sta && !vdev->tdls_link_connected)
vdev->search_type = soc->sta_mode_search_policy;
else
vdev->search_type = HAL_TX_ADDR_SEARCH_DEFAULT;