summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-02-15 06:11:41 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-15 06:11:40 -0800
commit5a0dfb2bb513c7e0aa63d3d77328f3a60ada8331 (patch)
tree376d4cc039c930867fc8d1be454e15d09ca7c585
parentd4674fe1ca65b9d13d364b9c7a99ea7637fcb6fb (diff)
parent15676fcd2abb5a62b3aa1800db69eb3509be5052 (diff)
Merge "ath10k: Refactor htt rx descriptor and remove last msdu check for WCN3990"
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_rx.c8
-rw-r--r--drivers/net/wireless/ath/ath10k/rx_desc.h7
2 files changed, 11 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index 42e97d99a3d1..cbb61267eb10 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -1734,7 +1734,8 @@ static void ath10k_htt_rx_delba(struct ath10k *ar, struct htt_resp *resp)
spin_unlock_bh(&ar->data_lock);
}
-static int ath10k_htt_rx_extract_amsdu(struct sk_buff_head *list,
+static int ath10k_htt_rx_extract_amsdu(struct ath10k *ar,
+ struct sk_buff_head *list,
struct sk_buff_head *amsdu)
{
struct sk_buff *msdu;
@@ -1755,6 +1756,9 @@ static int ath10k_htt_rx_extract_amsdu(struct sk_buff_head *list,
break;
}
+ if (QCA_REV_WCN3990(ar))
+ return 0;
+
msdu = skb_peek_tail(amsdu);
rxd = (void *)msdu->data - sizeof(*rxd);
if (!(rxd->msdu_end.common.info0 &
@@ -1897,7 +1901,7 @@ static int ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb)
while (!skb_queue_empty(&list)) {
__skb_queue_head_init(&amsdu);
- ret = ath10k_htt_rx_extract_amsdu(&list, &amsdu);
+ ret = ath10k_htt_rx_extract_amsdu(ar, &list, &amsdu);
switch (ret) {
case 0:
/* Note: The in-order indication may report interleaved
diff --git a/drivers/net/wireless/ath/ath10k/rx_desc.h b/drivers/net/wireless/ath/ath10k/rx_desc.h
index 6260f11d4e32..bb711b525af8 100644
--- a/drivers/net/wireless/ath/ath10k/rx_desc.h
+++ b/drivers/net/wireless/ath/ath10k/rx_desc.h
@@ -625,8 +625,10 @@ struct rx_msdu_end {
struct rx_msdu_end_common common;
union {
struct rx_msdu_end_qca99x0 qca99x0;
- struct rx_msdu_end_wcn3990 wcn3990;
} __packed;
+#ifdef CONFIG_ATH10K_SNOC
+ struct rx_msdu_end_wcn3990 wcn3990;
+#endif
} __packed;
/*
@@ -1123,7 +1125,6 @@ struct rx_ppdu_end_qca9984 {
struct rx_timing_offset {
__le32 timing_offset;
- __le32 reserved;
};
struct rx_ppdu_end_wcn3990 {
@@ -1147,7 +1148,9 @@ struct rx_ppdu_end {
struct rx_ppdu_end_qca6174 qca6174;
struct rx_ppdu_end_qca99x0 qca99x0;
struct rx_ppdu_end_qca9984 qca9984;
+#ifdef CONFIG_ATH10K_SNOC
struct rx_ppdu_end_wcn3990 wcn3990;
+#endif
} __packed;
} __packed;