summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath10k/htt_rx.c
diff options
context:
space:
mode:
authorWen Gong <wgong@codeaurora.org>2019-11-15 10:21:03 +0300
committerKalle Valo <kvalo@codeaurora.org>2019-11-25 14:47:28 +0300
commit67654b26c903de9949202f23f4864a74a09e22d5 (patch)
treed03a143a1b987d29b31f4281bd518a8f2d3755d6 /drivers/net/wireless/ath/ath10k/htt_rx.c
parent224776520ead69e9e85e33e5eb8c705c3552c4e1 (diff)
downloadlinux-67654b26c903de9949202f23f4864a74a09e22d5.tar.xz
ath10k: add workqueue for RX path of sdio
For RX, it has two parts, one is to read data from sdio, another is to indicate the packets to upper stack. Recently it has only one thread to do all RX things, it results that it is sequential for RX and low throughout, change RX to parallel for the two parts will increase throughout. This patch move the indication to a workqueue, it results in significant performance improvement on RX path. Udp rx throughout is 200Mbps without this patch, and it arrives 400Mbps with this patch. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00017-QCARMSWPZ-1 Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/htt_rx.c')
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_rx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index d95b63f133ab..edda6dd93476 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -2235,7 +2235,10 @@ static bool ath10k_htt_rx_proc_rx_ind_hl(struct ath10k_htt *htt,
hdr = (struct ieee80211_hdr *)skb->data;
qos = ieee80211_is_data_qos(hdr->frame_control);
+
rx_status = IEEE80211_SKB_RXCB(skb);
+ memset(rx_status, 0, sizeof(*rx_status));
+
rx_status->chains |= BIT(0);
if (rx->ppdu.combined_rssi == 0) {
/* SDIO firmware does not provide signal */