diff options
| author | Sarada Prasanna Garnayak <sgarna@codeaurora.org> | 2017-01-25 19:05:49 +0530 |
|---|---|---|
| committer | Sarada Prasanna Garnayak <sgarna@codeaurora.org> | 2017-01-25 19:28:36 +0530 |
| commit | 961b811c2e92cf5d5f7dc1df7e281b6cc224b776 (patch) | |
| tree | 81071ea9f9a5de2a43a2155ffaac6da49401120a | |
| parent | 314869eb56763d34f91d5483b0d510267894fadd (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.c | 11 |
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"); |
