Currently, reo destination ring selection is based on pdev, i.e each pdev is allocated a static reo destintaion ring and rx packets for the pdev is always received on the ring. This allows use of only 3 out of 4 reo destination rings at the max when all pdev's are active and when only one pdev is active we utilize only one ring and other 3 rings remain idle. To make effective use of all the reo rings, this patchset enables hash based reo destination ring selection where the hash is computed based on the 5-tuple ( src/dst ip, src/dst port, protocol) info from each packet and is used by hw for destination ring selection. Also, current implementation of amsdu list based processing is replaced with per msdu based handling since the received subframe could be pushed to different rings after decap based on hash value computed. This patchset is based on patchset "ath11k: offload PN verification to the HW" v4: Rebased on top of latest master Sriram R (2): ath11k: Configure hash based reo destination ring selection ath11k: Perform per-msdu rx processing drivers/net/wireless/ath/ath11k/ahb.c | 5 - drivers/net/wireless/ath/ath11k/core.h | 5 +- drivers/net/wireless/ath/ath11k/dp.c | 35 ++- drivers/net/wireless/ath/ath11k/dp.h | 4 +- drivers/net/wireless/ath/ath11k/dp_rx.c | 513 +++++++++++++------------------ drivers/net/wireless/ath/ath11k/dp_rx.h | 4 +- drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +- drivers/net/wireless/ath/ath11k/hal.h | 12 +- drivers/net/wireless/ath/ath11k/hal_rx.c | 15 +- drivers/net/wireless/ath/ath11k/mac.c | 12 +- drivers/net/wireless/ath/ath11k/mac.h | 1 + drivers/net/wireless/ath/ath11k/peer.c | 3 + drivers/net/wireless/ath/ath11k/peer.h | 2 + drivers/net/wireless/ath/ath11k/wmi.c | 35 +++ drivers/net/wireless/ath/ath11k/wmi.h | 14 +- 15 files changed, 339 insertions(+), 323 deletions(-) -- 2.7.4