summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarada Prasanna Garnayak <sgarna@codeaurora.org>2017-01-25 19:05:49 +0530
committerSarada Prasanna Garnayak <sgarna@codeaurora.org>2017-01-25 19:28:36 +0530
commit961b811c2e92cf5d5f7dc1df7e281b6cc224b776 (patch)
tree81071ea9f9a5de2a43a2155ffaac6da49401120a
parent314869eb56763d34f91d5483b0d510267894fadd (diff)
ath10k: update the Rx ring fill level for wcn3990 target
The WLAN firmware writes Rx packet in the Rx ring buffer through copy engine. The Rx ring fill level depends on the number of mac in WLAN chipset and wcn3990 WLAN chipset has a dual mac. Update the Rx ring buffer fill level method to add support for wcn3990 WLAN module. CRs-Fixed: 1115978 Change-Id: Ife7a951171e25602b74f6b389f464c38cf9af1c8 Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_rx.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index 961ef0626680..ed6ac39cd49d 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -27,6 +27,7 @@
#define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
#define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
+#define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
/* when under memory pressure rx ring refill may fail and needs a retry */
#define HTT_RX_RING_REFILL_RETRY_MS 50
@@ -471,7 +472,15 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt)
*/
htt->rx_ring.size = HTT_RX_RING_SIZE;
htt->rx_ring.size_mask = htt->rx_ring.size - 1;
- htt->rx_ring.fill_level = HTT_RX_RING_FILL_LEVEL;
+
+ switch (ar->hw_rev) {
+ case ATH10K_HW_WCN3990:
+ htt->rx_ring.fill_level = HTT_RX_RING_FILL_LEVEL_DUAL_MAC;
+ break;
+ default:
+ htt->rx_ring.fill_level = HTT_RX_RING_FILL_LEVEL;
+ break;
+ }
if (!is_power_of_2(htt->rx_ring.size)) {
ath10k_warn(ar, "htt rx ring size is not power of 2\n");