From 961b811c2e92cf5d5f7dc1df7e281b6cc224b776 Mon Sep 17 00:00:00 2001 From: Sarada Prasanna Garnayak Date: Wed, 25 Jan 2017 19:05:49 +0530 Subject: [PATCH] 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 --- drivers/net/wireless/ath/ath10k/htt_rx.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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");