qcacmn: Set addr_search flags according to vdev opmode
Add support to set addr_search flags in WLAN Tx Descriptor as per vdev operational mode Change-Id: I25fcd4bf450982f8aecc6e91236211c17d5f3f22 CRs-Fixed: 2004658
This commit is contained in:

committed by
snandini

parent
83e1488870
commit
c9a13a52c8
@@ -678,18 +678,8 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
if (tx_desc->flags & DP_TX_DESC_FLAG_TO_FW)
|
||||
hal_tx_desc_set_to_fw(hal_tx_desc_cached, 1);
|
||||
|
||||
/*
|
||||
* TODO
|
||||
* For AP mode, enable AddrX flag only
|
||||
* For all other modes, enable both AddrX and AddrY
|
||||
* flags for now
|
||||
*/
|
||||
if (vdev->opmode == wlan_op_mode_ap)
|
||||
hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
|
||||
HAL_TX_DESC_ADDRX_EN);
|
||||
else
|
||||
hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
|
||||
HAL_TX_DESC_ADDRX_EN | HAL_TX_DESC_ADDRY_EN);
|
||||
hal_tx_desc_set_addr_search_flags(hal_tx_desc_cached,
|
||||
vdev->hal_desc_addr_search_flags);
|
||||
|
||||
if ((qdf_nbuf_get_tx_cksum(tx_desc->nbuf) == QDF_NBUF_TX_CKSUM_TCP_UDP)
|
||||
|| qdf_nbuf_is_tso(tx_desc->nbuf)) {
|
||||
@@ -1973,7 +1963,6 @@ uint32_t dp_tx_comp_handler(struct dp_soc *soc, uint32_t ring_id,
|
||||
*/
|
||||
QDF_STATUS dp_tx_vdev_attach(struct dp_vdev *vdev)
|
||||
{
|
||||
|
||||
/*
|
||||
* Fill HTT TCL Metadata with Vdev ID and MAC ID
|
||||
*/
|
||||
@@ -1991,9 +1980,34 @@ QDF_STATUS dp_tx_vdev_attach(struct dp_vdev *vdev)
|
||||
*/
|
||||
HTT_TX_TCL_METADATA_VALID_HTT_SET(vdev->htt_tcl_metadata, 0);
|
||||
|
||||
dp_tx_vdev_update_search_flags(vdev);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_tx_vdev_update_search_flags() - Update vdev flags as per opmode
|
||||
* @vdev: virtual device instance
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
*/
|
||||
void dp_tx_vdev_update_search_flags(struct dp_vdev *vdev)
|
||||
{
|
||||
/*
|
||||
* Enable AddrY (SA based search) only for non-WDS STA and
|
||||
* ProxySTA VAP modes.
|
||||
*
|
||||
* In all other VAP modes, only DA based search should be
|
||||
* enabled
|
||||
*/
|
||||
if ((vdev->opmode == wlan_op_mode_sta &&
|
||||
(!vdev->wds_enabled || vdev->proxysta_vdev)))
|
||||
vdev->hal_desc_addr_search_flags = HAL_TX_DESC_ADDRY_EN;
|
||||
else
|
||||
vdev->hal_desc_addr_search_flags = HAL_TX_DESC_ADDRX_EN;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_tx_vdev_detach() - detach vdev from dp tx
|
||||
* @vdev: virtual device instance
|
||||
|
Reference in New Issue
Block a user