diff options
author | Karthikeyan Periyasamy <periyasa@codeaurora.org> | 2021-02-08 12:32:11 +0100 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2021-02-09 08:22:52 +0100 |
commit | 4b965be536eefdd16ca0a88120fee23f5b92cd16 (patch) | |
tree | b9ff8781a33d9324935f882c2fe7599b1beb91ae /drivers/net/wireless/ath/ath11k/peer.h | |
parent | ath10k: Fix lockdep assertion warning in ath10k_sta_statistics (diff) | |
download | linux-4b965be536eefdd16ca0a88120fee23f5b92cd16.tar.xz linux-4b965be536eefdd16ca0a88120fee23f5b92cd16.zip |
ath11k: Update tx descriptor search index properly
Tx descriptor search index field should be updated with hw peer id
and not by AST Hash as per the HW/FW recommendation. Incorrect search
index causes throughput degradation in all scenario for all the
platforms. so updated the search index field with hw peer id, which
is a common change applicable for all the platforms. Also no need of these
configuration for non station type. seen 10% throughput increase in WDS
traffic with this change.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1612410960-9120-1-git-send-email-periyasa@codeaurora.org
Diffstat (limited to 'drivers/net/wireless/ath/ath11k/peer.h')
-rw-r--r-- | drivers/net/wireless/ath/ath11k/peer.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath11k/peer.h b/drivers/net/wireless/ath/ath11k/peer.h index 8553ed061aea..619db001be8e 100644 --- a/drivers/net/wireless/ath/ath11k/peer.h +++ b/drivers/net/wireless/ath/ath11k/peer.h @@ -14,6 +14,7 @@ struct ath11k_peer { int peer_id; u16 ast_hash; u8 pdev_idx; + u16 hw_peer_id; /* protected by ab->data_lock */ struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1]; @@ -31,7 +32,7 @@ struct ath11k_peer { void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id); void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id, - u8 *mac_addr, u16 ast_hash); + u8 *mac_addr, u16 ast_hash, u16 hw_peer_id); struct ath11k_peer *ath11k_peer_find(struct ath11k_base *ab, int vdev_id, const u8 *addr); struct ath11k_peer *ath11k_peer_find_by_addr(struct ath11k_base *ab, |