mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 01:01:52 +00:00
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: Bob Copeland <me@bobcopeland.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
f786a6d4af
commit
232ddcd80f
@ -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,
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user