aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/rtwn/if_rtwnvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/rtwn/if_rtwnvar.h')
-rw-r--r--sys/dev/rtwn/if_rtwnvar.h30
1 files changed, 23 insertions, 7 deletions
diff --git a/sys/dev/rtwn/if_rtwnvar.h b/sys/dev/rtwn/if_rtwnvar.h
index 6a44b7b73902..aa42715b1674 100644
--- a/sys/dev/rtwn/if_rtwnvar.h
+++ b/sys/dev/rtwn/if_rtwnvar.h
@@ -32,7 +32,7 @@
#define RTWN_MACID_VALID 0x8000
#define RTWN_MACID_LIMIT 128
-#define RTWN_TX_TIMEOUT 5000 /* ms */
+#define RTWN_TX_TIMEOUT 1000 /* ms */
#define RTWN_MAX_EPOUT 4
#define RTWN_PORT_COUNT 2
@@ -133,7 +133,8 @@ struct rtwn_vap {
*/
enum {
RTWN_RX_DATA,
- RTWN_RX_TX_REPORT,
+ RTWN_RX_TX_REPORT, /* Per-packet */
+ RTWN_RX_TX_REPORT2, /* Per-MACID summary */
RTWN_RX_OTHER
};
@@ -171,13 +172,13 @@ struct rtwn_softc {
struct mbufq sc_snd;
device_t sc_dev;
-#if 1
int sc_ht40;
-#endif
+ int sc_ena_tsf64;
uint32_t sc_debug;
int sc_hwcrypto;
int sc_ratectl_sysctl;
int sc_ratectl;
+ uint32_t sc_reg_addr;
uint8_t sc_detached;
uint8_t sc_flags;
@@ -318,7 +319,7 @@ struct rtwn_softc {
void (*sc_detach_private)(struct rtwn_softc *);
void (*sc_fill_tx_desc)(struct rtwn_softc *,
struct ieee80211_node *, struct mbuf *,
- void *, uint8_t, int);
+ void *, uint8_t, bool, int);
void (*sc_fill_tx_desc_raw)(struct rtwn_softc *,
struct ieee80211_node *, struct mbuf *,
void *, const struct ieee80211_bpf_params *);
@@ -329,6 +330,8 @@ struct rtwn_softc {
uint8_t (*sc_rx_radiotap_flags)(const void *);
void (*sc_beacon_init)(struct rtwn_softc *, void *, int);
void (*sc_beacon_enable)(struct rtwn_softc *, int, int);
+ void (*sc_sta_beacon_enable)(struct rtwn_softc *, int,
+ bool);
void (*sc_beacon_set_rate)(void *, int);
void (*sc_beacon_select)(struct rtwn_softc *, int);
void (*sc_set_chan)(struct rtwn_softc *,
@@ -349,6 +352,8 @@ struct rtwn_softc {
int (*sc_classify_intr)(struct rtwn_softc *, void *, int);
void (*sc_handle_tx_report)(struct rtwn_softc *, uint8_t *,
int);
+ void (*sc_handle_tx_report2)(struct rtwn_softc *, uint8_t *,
+ int);
void (*sc_handle_c2h_report)(struct rtwn_softc *,
uint8_t *, int);
int (*sc_check_frame)(struct rtwn_softc *, struct mbuf *);
@@ -364,6 +369,8 @@ struct rtwn_softc {
void (*sc_init_antsel)(struct rtwn_softc *);
void (*sc_post_init)(struct rtwn_softc *);
int (*sc_init_bcnq1_boundary)(struct rtwn_softc *);
+ int (*sc_set_tx_power)(struct rtwn_softc *,
+ struct ieee80211vap *);
const uint8_t *chan_list_5ghz[3];
int chan_num_5ghz[3];
@@ -394,6 +401,7 @@ struct rtwn_softc {
uint16_t rx_dma_size;
int macid_limit;
+ int macid_rpt2_max_num;
int cam_entry_limit;
int fwsize_limit;
int temp_delta;
@@ -428,6 +436,8 @@ void rtwn_detach(struct rtwn_softc *);
void rtwn_resume(struct rtwn_softc *);
void rtwn_suspend(struct rtwn_softc *);
+void rtwn_attach_vht_cap_info_mcs(struct rtwn_softc *);
+
/* Interface-specific. */
#define rtwn_write_1(_sc, _addr, _val) \
(((_sc)->sc_write_1)((_sc), (_addr), (_val)))
@@ -519,9 +529,9 @@ void rtwn_suspend(struct rtwn_softc *);
#define rtwn_detach_private(_sc) \
(((_sc)->sc_detach_private)((_sc)))
#define rtwn_fill_tx_desc(_sc, _ni, _m, \
- _buf, _ridx, _maxretry) \
+ _buf, _ridx, _force, _maxretry) \
(((_sc)->sc_fill_tx_desc)((_sc), (_ni), \
- (_m), (_buf), (_ridx), (_maxretry)))
+ (_m), (_buf), (_ridx), (_force), (_maxretry)))
#define rtwn_fill_tx_desc_raw(_sc, _ni, _m, \
_buf, _params) \
(((_sc)->sc_fill_tx_desc_raw)((_sc), (_ni), \
@@ -550,6 +560,8 @@ void rtwn_suspend(struct rtwn_softc *);
(((_sc)->sc_classify_intr)((_sc), (_buf), (_len)))
#define rtwn_handle_tx_report(_sc, _buf, _len) \
(((_sc)->sc_handle_tx_report)((_sc), (_buf), (_len)))
+#define rtwn_handle_tx_report2(_sc, _buf, _len) \
+ (((_sc)->sc_handle_tx_report2)((_sc), (_buf), (_len)))
#define rtwn_handle_c2h_report(_sc, _buf, _len) \
(((_sc)->sc_handle_c2h_report)((_sc), (_buf), (_len)))
#define rtwn_check_frame(_sc, _m) \
@@ -558,6 +570,8 @@ void rtwn_suspend(struct rtwn_softc *);
(((_sc)->sc_beacon_init)((_sc), (_buf), (_id)))
#define rtwn_beacon_enable(_sc, _id, _enable) \
(((_sc)->sc_beacon_enable)((_sc), (_id), (_enable)))
+#define rtwn_sta_beacon_enable(_sc, _id, _enable) \
+ (((_sc)->sc_sta_beacon_enable)((_sc), (_id), (_enable)))
#define rtwn_beacon_set_rate(_sc, _buf, _is5ghz) \
(((_sc)->sc_beacon_set_rate)((_buf), (_is5ghz)))
#define rtwn_beacon_select(_sc, _id) \
@@ -586,6 +600,8 @@ void rtwn_suspend(struct rtwn_softc *);
(((_sc)->sc_post_init)((_sc)))
#define rtwn_init_bcnq1_boundary(_sc) \
(((_sc)->sc_init_bcnq1_boundary)((_sc)))
+#define rtwn_set_tx_power(_sc, _vap) \
+ (((_sc)->sc_set_tx_power)((_sc), (_vap)))
/*
* Methods to access subfields in registers.