summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_iwmvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/if_iwmvar.h')
-rw-r--r--sys/dev/pci/if_iwmvar.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/sys/dev/pci/if_iwmvar.h b/sys/dev/pci/if_iwmvar.h
index 05a62582e8a..bff45a10d76 100644
--- a/sys/dev/pci/if_iwmvar.h
+++ b/sys/dev/pci/if_iwmvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwmvar.h,v 1.60 2021/04/29 21:43:47 stsp Exp $ */
+/* $OpenBSD: if_iwmvar.h,v 1.61 2021/05/03 08:41:25 stsp Exp $ */
/*
* Copyright (c) 2014 genua mbh <info@genua.de>
@@ -250,6 +250,9 @@ struct iwm_fw_paging {
#define IWM_TX_RING_LOMARK 192
#define IWM_TX_RING_HIMARK 224
+/* For aggregation queues, index must be aligned to frame sequence number. */
+#define IWM_AGG_SSN_TO_TXQ_IDX(x) ((x) & (IWM_TX_RING_COUNT - 1))
+
struct iwm_tx_data {
bus_dmamap_t map;
bus_addr_t cmd_paddr;
@@ -258,6 +261,10 @@ struct iwm_tx_data {
struct iwm_node *in;
int txmcs;
int txrate;
+
+ /* A-MPDU subframes */
+ int ampdu_txmcs;
+ int ampdu_nframes;
};
struct iwm_tx_ring {
@@ -454,6 +461,11 @@ struct iwm_rxq_dup_data {
uint8_t last_sub_frame[IWM_MAX_TID_COUNT + 1];
};
+struct iwm_ba_task_data {
+ uint32_t start_tidmask;
+ uint32_t stop_tidmask;
+};
+
struct iwm_softc {
struct device sc_dev;
struct ieee80211com sc_ic;
@@ -472,11 +484,8 @@ struct iwm_softc {
/* Task for firmware BlockAck setup/teardown and its arguments. */
struct task ba_task;
- uint32_t ba_start_tidmask;
- uint32_t ba_stop_tidmask;
- uint16_t ba_ssn[IWM_MAX_TID_COUNT];
- uint16_t ba_winsize[IWM_MAX_TID_COUNT];
- int ba_timeout_val[IWM_MAX_TID_COUNT];
+ struct iwm_ba_task_data ba_rx;
+ struct iwm_ba_task_data ba_tx;
/* Task for ERP/HT prot/slot-time/EDCA updates. */
struct task mac_ctxt_task;
@@ -498,6 +507,7 @@ struct iwm_softc {
struct iwm_tx_ring txq[IWM_MAX_QUEUES];
struct iwm_rx_ring rxq;
int qfullmsk;
+ int qenablemsk;
int cmdqid;
int sc_sf_state;
@@ -573,6 +583,7 @@ struct iwm_softc {
int sc_tx_timer;
int sc_rx_ba_sessions;
+ int tx_ba_queue_mask;
int sc_scan_last_antenna;
@@ -646,6 +657,10 @@ struct iwm_node {
int lq_rate_mismatch;
struct iwm_rxq_dup_data dup_data;
+
+ /* For use with the ADD_STA command. */
+ uint32_t tfd_queue_msk;
+ uint16_t tid_disable_ampdu;
};
#define IWM_STATION_ID 0
#define IWM_AUX_STA_ID 1