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

Commit 232ddcd8 authored by Bob Copeland's avatar Bob Copeland Committed by Kalle Valo
Browse files

wcn36xx: let device generate qos seq numbers



wcn36xx currently sends an incorrect sequence number into the BA session
setup firmware command: it should be saving or updating the ssn in the
TX_START ampdu_action callback instead of waiting until TX_OPERATIONAL.
However, we can sidestep the issue by letting the hardware generate the
sequence numbers for QoS frames, as is done in prima, so do that.

Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent f786a6d4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ static void wcn36xx_set_tx_pdu(struct wcn36xx_tx_bd *bd,
		bd->pdu.mpdu_header_off;
	bd->pdu.mpdu_len = len;
	bd->pdu.tid = tid;
	bd->pdu.bd_ssn = WCN36XX_TXBD_SSN_FILL_DPU_QOS;
}

static inline struct wcn36xx_vif *get_vif_by_addr(struct wcn36xx *wcn,
+8 −1
Original line number Diff line number Diff line
@@ -32,6 +32,12 @@
#define WCN36XX_BD_RATE_MGMT 2
#define WCN36XX_BD_RATE_CTRL 3

enum wcn36xx_txbd_ssn_type {
	WCN36XX_TXBD_SSN_FILL_HOST = 0,
	WCN36XX_TXBD_SSN_FILL_DPU_NON_QOS = 1,
	WCN36XX_TXBD_SSN_FILL_DPU_QOS = 2,
};

struct wcn36xx_pdu {
	u32	dpu_fb:8;
	u32	adu_fb:8;
@@ -50,7 +56,8 @@ struct wcn36xx_pdu {
	/* 0x0c*/
	u32	reserved4:8;
	u32	tid:4;
	u32	reserved3:4;
	u32	bd_ssn:2;
	u32	reserved3:2;
	u32	mpdu_len:16;
};