Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15676fcd authored by Rakesh Pillai's avatar Rakesh Pillai
Browse files

ath10k: Refactor htt rx descriptor and remove last msdu check for WCN3990



WCN3990 target uses more fields in htt rx descriptor.
Refactor htt rx descriptor to not break legacy code.
Remove last msdu check in htt rx for WCN3990 which is not required.

CRs-Fixed: 2005906
Change-Id: Id2f670ecd72ea898a11a9d9eea61b5a1f2364d32
Signed-off-by: default avatarRakesh Pillai <pillair@codeaurora.org>
parent 3a7e7526
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -1734,7 +1734,8 @@ static void ath10k_htt_rx_delba(struct ath10k *ar, struct htt_resp *resp)
	spin_unlock_bh(&ar->data_lock);
	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_head *amsdu)
{
{
	struct sk_buff *msdu;
	struct sk_buff *msdu;
@@ -1755,6 +1756,9 @@ static int ath10k_htt_rx_extract_amsdu(struct sk_buff_head *list,
			break;
			break;
	}
	}


	if (QCA_REV_WCN3990(ar))
		return 0;

	msdu = skb_peek_tail(amsdu);
	msdu = skb_peek_tail(amsdu);
	rxd = (void *)msdu->data - sizeof(*rxd);
	rxd = (void *)msdu->data - sizeof(*rxd);
	if (!(rxd->msdu_end.common.info0 &
	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)) {
	while (!skb_queue_empty(&list)) {
		__skb_queue_head_init(&amsdu);
		__skb_queue_head_init(&amsdu);
		ret = ath10k_htt_rx_extract_amsdu(&list, &amsdu);
		ret = ath10k_htt_rx_extract_amsdu(ar, &list, &amsdu);
		switch (ret) {
		switch (ret) {
		case 0:
		case 0:
			/* Note: The in-order indication may report interleaved
			/* Note: The in-order indication may report interleaved
+5 −2
Original line number Original line Diff line number Diff line
@@ -625,8 +625,10 @@ struct rx_msdu_end {
	struct rx_msdu_end_common common;
	struct rx_msdu_end_common common;
	union {
	union {
		struct rx_msdu_end_qca99x0 qca99x0;
		struct rx_msdu_end_qca99x0 qca99x0;
		struct rx_msdu_end_wcn3990 wcn3990;
	} __packed;
	} __packed;
#ifdef CONFIG_ATH10K_SNOC
	struct rx_msdu_end_wcn3990 wcn3990;
#endif
} __packed;
} __packed;


/*
/*
@@ -1123,7 +1125,6 @@ struct rx_ppdu_end_qca9984 {


struct rx_timing_offset {
struct rx_timing_offset {
	__le32 timing_offset;
	__le32 timing_offset;
	__le32 reserved;
};
};


struct rx_ppdu_end_wcn3990 {
struct rx_ppdu_end_wcn3990 {
@@ -1147,7 +1148,9 @@ struct rx_ppdu_end {
		struct rx_ppdu_end_qca6174 qca6174;
		struct rx_ppdu_end_qca6174 qca6174;
		struct rx_ppdu_end_qca99x0 qca99x0;
		struct rx_ppdu_end_qca99x0 qca99x0;
		struct rx_ppdu_end_qca9984 qca9984;
		struct rx_ppdu_end_qca9984 qca9984;
#ifdef CONFIG_ATH10K_SNOC
		struct rx_ppdu_end_wcn3990 wcn3990;
		struct rx_ppdu_end_wcn3990 wcn3990;
#endif
	} __packed;
	} __packed;
} __packed;
} __packed;