Go to the documentation of this file.
27 #define INVCHANNEL 255
30 #define BRCMS_MAXMODULES 22
32 #define SEQNUM_SHIFT 4
33 #define SEQNUM_MAX 0x1000
39 #define BRCMS_MAX_MAC_SUSPEND 83000
42 #define BRCMS_PRB_RESP_TIMEOUT 0
45 #define TXOFF (D11_TXH_LEN + D11_PHY_HDR_LEN)
57 #define BITFIELD_MASK(width) \
58 (((unsigned)1 << (width)) - 1)
59 #define GFIELD(val, field) \
60 (((val) >> field ## _S) & field ## _M)
61 #define SFIELD(val, field, bits) \
62 (((val) & (~(field ## _M << field ## _S))) | \
63 ((unsigned)(bits) << field ## _S))
65 #define SW_TIMER_MAC_STAT_UPD 30
71 #if CONF_MSK(D11CONF, 0x4f) || CONF_GE(D11CONF, MAXCOREREV)
72 #error "Configuration for D11CONF includes unsupported versions."
76 #define BRCMS_SHORTSLOT_AUTO -1
77 #define BRCMS_SHORTSLOT_OFF 0
78 #define BRCMS_SHORTSLOT_ON 1
81 #define BRCMS_LONG_PREAMBLE (0)
82 #define BRCMS_SHORT_PREAMBLE (1 << 0)
83 #define BRCMS_GF_PREAMBLE (1 << 1)
84 #define BRCMS_MM_PREAMBLE (1 << 2)
85 #define BRCMS_IS_MIMO_PREAMBLE(_pre) (((_pre) == BRCMS_GF_PREAMBLE) || \
86 ((_pre) == BRCMS_MM_PREAMBLE))
91 #define TXFID_QUEUE_MASK 0x0007
92 #define TXFID_SEQ_MASK 0x7FE0
93 #define TXFID_SEQ_SHIFT 5
94 #define TXFID_RATE_PROBE_MASK 0x8000
95 #define TXFID_RATE_MASK 0x0018
96 #define TXFID_RATE_SHIFT 3
99 #define BOARDREV_PROMOTABLE 0xFF
100 #define BOARDREV_PROMOTED 1
102 #define DATA_BLOCK_TX_SUPR (1 << 4)
108 #define BRCMS_WAKE_OVERRIDE_CLKCTL 0x01
109 #define BRCMS_WAKE_OVERRIDE_PHYREG 0x02
110 #define BRCMS_WAKE_OVERRIDE_MACSUSPEND 0x04
111 #define BRCMS_WAKE_OVERRIDE_TXFIFO 0x08
112 #define BRCMS_WAKE_OVERRIDE_FORCEFAST 0x10
120 #define I_ERRORS (I_PC | I_PD | I_DE | I_RO | I_XU)
122 #define DEF_RXINTMASK (I_RI)
123 #define DEF_MACINTMASK (MI_TXSTOP | MI_TBTT | MI_ATIMWINEND | MI_PMQ | \
124 MI_PHYTXERR | MI_DMAINT | MI_TFS | MI_BG_NOISE | \
125 MI_CCA | MI_TO | MI_GP0 | MI_RFDISABLE | MI_PWRUP)
130 #define MAXTXFRAMEBURST 8
131 #define MAXFRAMEBURST_TXOP 10000
138 #define BRCMS_PLLREQ_SHARED 0x1
140 #define BRCMS_PLLREQ_RADIO_MON 0x2
142 #define BRCMS_PLLREQ_FLIP 0x4
144 #define CHANNEL_BANDUNIT(wlc, ch) \
145 (((ch) <= CH_MAX_2G_CHANNEL) ? BAND_2G_INDEX : BAND_5G_INDEX)
147 #define OTHERBANDUNIT(wlc) \
148 ((uint)((wlc)->band->bandunit ? BAND_2G_INDEX : BAND_5G_INDEX))
219 #define BRCMS_STF_SS_STBC_TX(wlc, scb) \
220 (((wlc)->stf->txstreams > 1) && (((wlc)->band->band_stf_stbc_tx == ON) \
221 || (((scb)->flags & SCB_STBCCAP) && \
222 (wlc)->band->band_stf_stbc_tx == AUTO && \
223 isset(&((wlc)->stf->ss_algo_channel), PHY_TXC1_MODE_STBC))))
225 #define BRCMS_STBC_CAP_PHY(wlc) (BRCMS_ISNPHY(wlc->band) && \
226 NREV_GE(wlc->band->phyrev, 3))
228 #define BRCMS_SGI_CAP_PHY(wlc) ((BRCMS_ISNPHY(wlc->band) && \
229 NREV_GE(wlc->band->phyrev, 3)) || \
230 BRCMS_ISLCNPHY(wlc->band))
232 #define BRCMS_CHAN_PHYTYPE(x) (((x) & RXS_CHAN_PHYTYPE_MASK) \
233 >> RXS_CHAN_PHYTYPE_SHIFT)
234 #define BRCMS_CHAN_CHANNEL(x) (((x) & RXS_CHAN_ID_MASK) \
235 >> RXS_CHAN_ID_SHIFT)
652 extern void brcms_c_print_txdesc(
struct d11txh *txh);
654 static inline void brcms_c_print_txdesc(
struct d11txh *txh)
668 bool use_rspec,
u16 mimo_ctlchbw);
672 u8 rts_preamble_type,
673 u8 frame_preamble_type,
uint frame_len,
677 void (*dma_callback_fn));