1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef _HALMAC_TX_DESC_NIC_H_
15#define _HALMAC_TX_DESC_NIC_H_
16
17
18
19#define SET_TX_DESC_DISQSELSEQ(__tx_desc, __value) \
20 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 31, 1, __value)
21#define GET_TX_DESC_DISQSELSEQ(__tx_desc) \
22 LE_BITS_TO_4BYTE(__tx_desc + 0x00, 31, 1)
23
24#define SET_TX_DESC_GF(__tx_desc, __value) \
25 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 30, 1, __value)
26#define GET_TX_DESC_GF(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 30, 1)
27#define SET_TX_DESC_NO_ACM(__tx_desc, __value) \
28 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 29, 1, __value)
29#define GET_TX_DESC_NO_ACM(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 29, 1)
30
31#define SET_TX_DESC_BCNPKT_TSF_CTRL(__tx_desc, __value) \
32 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 28, 1, __value)
33#define GET_TX_DESC_BCNPKT_TSF_CTRL(__tx_desc) \
34 LE_BITS_TO_4BYTE(__tx_desc + 0x00, 28, 1)
35
36#define SET_TX_DESC_AMSDU_PAD_EN(__tx_desc, __value) \
37 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 27, 1, __value)
38#define GET_TX_DESC_AMSDU_PAD_EN(__tx_desc) \
39 LE_BITS_TO_4BYTE(__tx_desc + 0x00, 27, 1)
40
41#define SET_TX_DESC_LS(__tx_desc, __value) \
42 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 26, 1, __value)
43#define GET_TX_DESC_LS(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 26, 1)
44#define SET_TX_DESC_HTC(__tx_desc, __value) \
45 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 25, 1, __value)
46#define GET_TX_DESC_HTC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 25, 1)
47#define SET_TX_DESC_BMC(__tx_desc, __value) \
48 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 24, 1, __value)
49#define GET_TX_DESC_BMC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 24, 1)
50#define SET_TX_DESC_OFFSET(__tx_desc, __value) \
51 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 16, 8, __value)
52#define GET_TX_DESC_OFFSET(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x00, 16, 8)
53#define SET_TX_DESC_TXPKTSIZE(__tx_desc, __value) \
54 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x00, 0, 16, __value)
55#define GET_TX_DESC_TXPKTSIZE(__tx_desc) \
56 LE_BITS_TO_4BYTE(__tx_desc + 0x00, 0, 16)
57
58
59
60#define SET_TX_DESC_MOREDATA(__tx_desc, __value) \
61 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 29, 1, __value)
62#define GET_TX_DESC_MOREDATA(__tx_desc) \
63 LE_BITS_TO_4BYTE(__tx_desc + 0x04, 29, 1)
64#define SET_TX_DESC_PKT_OFFSET(__tx_desc, __value) \
65 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 24, 5, __value)
66#define GET_TX_DESC_PKT_OFFSET(__tx_desc) \
67 LE_BITS_TO_4BYTE(__tx_desc + 0x04, 24, 5)
68#define SET_TX_DESC_SEC_TYPE(__tx_desc, __value) \
69 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 22, 2, __value)
70#define GET_TX_DESC_SEC_TYPE(__tx_desc) \
71 LE_BITS_TO_4BYTE(__tx_desc + 0x04, 22, 2)
72#define SET_TX_DESC_EN_DESC_ID(__tx_desc, __value) \
73 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 21, 1, __value)
74#define GET_TX_DESC_EN_DESC_ID(__tx_desc) \
75 LE_BITS_TO_4BYTE(__tx_desc + 0x04, 21, 1)
76#define SET_TX_DESC_RATE_ID(__tx_desc, __value) \
77 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 16, 5, __value)
78#define GET_TX_DESC_RATE_ID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 16, 5)
79#define SET_TX_DESC_PIFS(__tx_desc, __value) \
80 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 15, 1, __value)
81#define GET_TX_DESC_PIFS(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 15, 1)
82#define SET_TX_DESC_LSIG_TXOP_EN(__tx_desc, __value) \
83 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 14, 1, __value)
84#define GET_TX_DESC_LSIG_TXOP_EN(__tx_desc) \
85 LE_BITS_TO_4BYTE(__tx_desc + 0x04, 14, 1)
86#define SET_TX_DESC_RD_NAV_EXT(__tx_desc, __value) \
87 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 13, 1, __value)
88#define GET_TX_DESC_RD_NAV_EXT(__tx_desc) \
89 LE_BITS_TO_4BYTE(__tx_desc + 0x04, 13, 1)
90#define SET_TX_DESC_QSEL(__tx_desc, __value) \
91 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 8, 5, __value)
92#define GET_TX_DESC_QSEL(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 8, 5)
93#define SET_TX_DESC_MACID(__tx_desc, __value) \
94 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x04, 0, 7, __value)
95#define GET_TX_DESC_MACID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x04, 0, 7)
96
97
98
99#define SET_TX_DESC_HW_AES_IV(__tx_desc, __value) \
100 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 31, 1, __value)
101#define GET_TX_DESC_HW_AES_IV(__tx_desc) \
102 LE_BITS_TO_4BYTE(__tx_desc + 0x08, 31, 1)
103
104#define SET_TX_DESC_FTM_EN(__tx_desc, __value) \
105 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 30, 1, __value)
106#define GET_TX_DESC_FTM_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 30, 1)
107
108#define SET_TX_DESC_G_ID(__tx_desc, __value) \
109 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 24, 6, __value)
110#define GET_TX_DESC_G_ID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 24, 6)
111#define SET_TX_DESC_BT_NULL(__tx_desc, __value) \
112 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 23, 1, __value)
113#define GET_TX_DESC_BT_NULL(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 23, 1)
114#define SET_TX_DESC_AMPDU_DENSITY(__tx_desc, __value) \
115 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 20, 3, __value)
116#define GET_TX_DESC_AMPDU_DENSITY(__tx_desc) \
117 LE_BITS_TO_4BYTE(__tx_desc + 0x08, 20, 3)
118#ifdef SET_TX_DESC_SPE_RPT
119#undef SET_TX_DESC_SPE_RPT
120#endif
121#define SET_TX_DESC_SPE_RPT(__tx_desc, __value) \
122 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 19, 1, __value)
123#define GET_TX_DESC_SPE_RPT(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 19, 1)
124#define SET_TX_DESC_RAW(__tx_desc, __value) \
125 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 18, 1, __value)
126#define GET_TX_DESC_RAW(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 18, 1)
127#define SET_TX_DESC_MOREFRAG(__tx_desc, __value) \
128 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 17, 1, __value)
129#define GET_TX_DESC_MOREFRAG(__tx_desc) \
130 LE_BITS_TO_4BYTE(__tx_desc + 0x08, 17, 1)
131#define SET_TX_DESC_BK(__tx_desc, __value) \
132 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 16, 1, __value)
133#define GET_TX_DESC_BK(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 16, 1)
134#define SET_TX_DESC_NULL_1(__tx_desc, __value) \
135 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 15, 1, __value)
136#define GET_TX_DESC_NULL_1(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 15, 1)
137#define SET_TX_DESC_NULL_0(__tx_desc, __value) \
138 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 14, 1, __value)
139#define GET_TX_DESC_NULL_0(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 14, 1)
140#define SET_TX_DESC_RDG_EN(__tx_desc, __value) \
141 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 13, 1, __value)
142#define GET_TX_DESC_RDG_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 13, 1)
143#define SET_TX_DESC_AGG_EN(__tx_desc, __value) \
144 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 12, 1, __value)
145#define GET_TX_DESC_AGG_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 12, 1)
146#define SET_TX_DESC_CCA_RTS(__tx_desc, __value) \
147 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 10, 2, __value)
148#define GET_TX_DESC_CCA_RTS(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 10, 2)
149
150#define SET_TX_DESC_TRI_FRAME(__tx_desc, __value) \
151 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 9, 1, __value)
152#define GET_TX_DESC_TRI_FRAME(__tx_desc) \
153 LE_BITS_TO_4BYTE(__tx_desc + 0x08, 9, 1)
154
155#define SET_TX_DESC_P_AID(__tx_desc, __value) \
156 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x08, 0, 9, __value)
157#define GET_TX_DESC_P_AID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x08, 0, 9)
158
159
160
161#define SET_TX_DESC_AMPDU_MAX_TIME(__tx_desc, __value) \
162 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 24, 8, __value)
163#define GET_TX_DESC_AMPDU_MAX_TIME(__tx_desc) \
164 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 24, 8)
165#define SET_TX_DESC_NDPA(__tx_desc, __value) \
166 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 22, 2, __value)
167#define GET_TX_DESC_NDPA(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 22, 2)
168#define SET_TX_DESC_MAX_AGG_NUM(__tx_desc, __value) \
169 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 17, 5, __value)
170#define GET_TX_DESC_MAX_AGG_NUM(__tx_desc) \
171 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 17, 5)
172#define SET_TX_DESC_USE_MAX_TIME_EN(__tx_desc, __value) \
173 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 16, 1, __value)
174#define GET_TX_DESC_USE_MAX_TIME_EN(__tx_desc) \
175 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 16, 1)
176#define SET_TX_DESC_NAVUSEHDR(__tx_desc, __value) \
177 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 15, 1, __value)
178#define GET_TX_DESC_NAVUSEHDR(__tx_desc) \
179 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 15, 1)
180
181#define SET_TX_DESC_CHK_EN(__tx_desc, __value) \
182 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 14, 1, __value)
183#define GET_TX_DESC_CHK_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 14, 1)
184
185#define SET_TX_DESC_HW_RTS_EN(__tx_desc, __value) \
186 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 13, 1, __value)
187#define GET_TX_DESC_HW_RTS_EN(__tx_desc) \
188 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 13, 1)
189#define SET_TX_DESC_RTSEN(__tx_desc, __value) \
190 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 12, 1, __value)
191#define GET_TX_DESC_RTSEN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 12, 1)
192#define SET_TX_DESC_CTS2SELF(__tx_desc, __value) \
193 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 11, 1, __value)
194#define GET_TX_DESC_CTS2SELF(__tx_desc) \
195 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 11, 1)
196#define SET_TX_DESC_DISDATAFB(__tx_desc, __value) \
197 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 10, 1, __value)
198#define GET_TX_DESC_DISDATAFB(__tx_desc) \
199 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 10, 1)
200#define SET_TX_DESC_DISRTSFB(__tx_desc, __value) \
201 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 9, 1, __value)
202#define GET_TX_DESC_DISRTSFB(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 9, 1)
203#define SET_TX_DESC_USE_RATE(__tx_desc, __value) \
204 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 8, 1, __value)
205#define GET_TX_DESC_USE_RATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 8, 1)
206#define SET_TX_DESC_HW_SSN_SEL(__tx_desc, __value) \
207 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 6, 2, __value)
208#define GET_TX_DESC_HW_SSN_SEL(__tx_desc) \
209 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 6, 2)
210
211#define SET_TX_DESC_WHEADER_LEN(__tx_desc, __value) \
212 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x0C, 0, 5, __value)
213#define GET_TX_DESC_WHEADER_LEN(__tx_desc) \
214 LE_BITS_TO_4BYTE(__tx_desc + 0x0C, 0, 5)
215
216
217
218#define SET_TX_DESC_PCTS_MASK_IDX(__tx_desc, __value) \
219 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 30, 2, __value)
220#define GET_TX_DESC_PCTS_MASK_IDX(__tx_desc) \
221 LE_BITS_TO_4BYTE(__tx_desc + 0x10, 30, 2)
222#define SET_TX_DESC_PCTS_EN(__tx_desc, __value) \
223 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 29, 1, __value)
224#define GET_TX_DESC_PCTS_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 29, 1)
225#define SET_TX_DESC_RTSRATE(__tx_desc, __value) \
226 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 24, 5, __value)
227#define GET_TX_DESC_RTSRATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 24, 5)
228#define SET_TX_DESC_RTS_DATA_RTY_LMT(__tx_desc, __value) \
229 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 18, 6, __value)
230#define GET_TX_DESC_RTS_DATA_RTY_LMT(__tx_desc) \
231 LE_BITS_TO_4BYTE(__tx_desc + 0x10, 18, 6)
232#define SET_TX_DESC_RTY_LMT_EN(__tx_desc, __value) \
233 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 17, 1, __value)
234#define GET_TX_DESC_RTY_LMT_EN(__tx_desc) \
235 LE_BITS_TO_4BYTE(__tx_desc + 0x10, 17, 1)
236#define SET_TX_DESC_RTS_RTY_LOWEST_RATE(__tx_desc, __value) \
237 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 13, 4, __value)
238#define GET_TX_DESC_RTS_RTY_LOWEST_RATE(__tx_desc) \
239 LE_BITS_TO_4BYTE(__tx_desc + 0x10, 13, 4)
240#define SET_TX_DESC_DATA_RTY_LOWEST_RATE(__tx_desc, __value) \
241 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 8, 5, __value)
242#define GET_TX_DESC_DATA_RTY_LOWEST_RATE(__tx_desc) \
243 LE_BITS_TO_4BYTE(__tx_desc + 0x10, 8, 5)
244#define SET_TX_DESC_TRY_RATE(__tx_desc, __value) \
245 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 7, 1, __value)
246#define GET_TX_DESC_TRY_RATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 7, 1)
247#define SET_TX_DESC_DATARATE(__tx_desc, __value) \
248 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x10, 0, 7, __value)
249#define GET_TX_DESC_DATARATE(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x10, 0, 7)
250
251
252
253#define SET_TX_DESC_POLLUTED(__tx_desc, __value) \
254 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 31, 1, __value)
255#define GET_TX_DESC_POLLUTED(__tx_desc) \
256 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 31, 1)
257
258#define SET_TX_DESC_TXPWR_OFSET(__tx_desc, __value) \
259 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 28, 3, __value)
260#define GET_TX_DESC_TXPWR_OFSET(__tx_desc) \
261 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 28, 3)
262#define SET_TX_DESC_TX_ANT(__tx_desc, __value) \
263 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 24, 4, __value)
264#define GET_TX_DESC_TX_ANT(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 24, 4)
265#define SET_TX_DESC_PORT_ID(__tx_desc, __value) \
266 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 21, 3, __value)
267#define GET_TX_DESC_PORT_ID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 21, 3)
268
269#define SET_TX_DESC_MULTIPLE_PORT(__tx_desc, __value) \
270 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 18, 3, __value)
271#define GET_TX_DESC_MULTIPLE_PORT(__tx_desc) \
272 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 18, 3)
273
274#define SET_TX_DESC_SIGNALING_TAPKT_EN(__tx_desc, __value) \
275 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 17, 1, __value)
276#define GET_TX_DESC_SIGNALING_TAPKT_EN(__tx_desc) \
277 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 17, 1)
278
279#define SET_TX_DESC_RTS_SC(__tx_desc, __value) \
280 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 13, 4, __value)
281#define GET_TX_DESC_RTS_SC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 13, 4)
282#define SET_TX_DESC_RTS_SHORT(__tx_desc, __value) \
283 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 12, 1, __value)
284#define GET_TX_DESC_RTS_SHORT(__tx_desc) \
285 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 12, 1)
286
287#define SET_TX_DESC_VCS_STBC(__tx_desc, __value) \
288 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 10, 2, __value)
289#define GET_TX_DESC_VCS_STBC(__tx_desc) \
290 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 10, 2)
291
292#define SET_TX_DESC_DATA_STBC(__tx_desc, __value) \
293 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 8, 2, __value)
294#define GET_TX_DESC_DATA_STBC(__tx_desc) \
295 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 8, 2)
296
297#define SET_TX_DESC_DATA_LDPC(__tx_desc, __value) \
298 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 7, 1, __value)
299#define GET_TX_DESC_DATA_LDPC(__tx_desc) \
300 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 7, 1)
301
302#define SET_TX_DESC_DATA_BW(__tx_desc, __value) \
303 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 5, 2, __value)
304#define GET_TX_DESC_DATA_BW(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 5, 2)
305#define SET_TX_DESC_DATA_SHORT(__tx_desc, __value) \
306 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 4, 1, __value)
307#define GET_TX_DESC_DATA_SHORT(__tx_desc) \
308 LE_BITS_TO_4BYTE(__tx_desc + 0x14, 4, 1)
309#define SET_TX_DESC_DATA_SC(__tx_desc, __value) \
310 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x14, 0, 4, __value)
311#define GET_TX_DESC_DATA_SC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x14, 0, 4)
312
313
314
315#define SET_TX_DESC_ANTSEL_D(__tx_desc, __value) \
316 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 30, 2, __value)
317#define GET_TX_DESC_ANTSEL_D(__tx_desc) \
318 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 30, 2)
319#define SET_TX_DESC_ANT_MAPD(__tx_desc, __value) \
320 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 28, 2, __value)
321#define GET_TX_DESC_ANT_MAPD(__tx_desc) \
322 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 28, 2)
323#define SET_TX_DESC_ANT_MAPC(__tx_desc, __value) \
324 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 26, 2, __value)
325#define GET_TX_DESC_ANT_MAPC(__tx_desc) \
326 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 26, 2)
327#define SET_TX_DESC_ANT_MAPB(__tx_desc, __value) \
328 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 24, 2, __value)
329#define GET_TX_DESC_ANT_MAPB(__tx_desc) \
330 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 24, 2)
331#define SET_TX_DESC_ANT_MAPA(__tx_desc, __value) \
332 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 22, 2, __value)
333#define GET_TX_DESC_ANT_MAPA(__tx_desc) \
334 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 22, 2)
335#define SET_TX_DESC_ANTSEL_C(__tx_desc, __value) \
336 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 20, 2, __value)
337#define GET_TX_DESC_ANTSEL_C(__tx_desc) \
338 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 20, 2)
339#define SET_TX_DESC_ANTSEL_B(__tx_desc, __value) \
340 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 18, 2, __value)
341#define GET_TX_DESC_ANTSEL_B(__tx_desc) \
342 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 18, 2)
343
344#define SET_TX_DESC_ANTSEL_A(__tx_desc, __value) \
345 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 16, 2, __value)
346#define GET_TX_DESC_ANTSEL_A(__tx_desc) \
347 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 16, 2)
348#define SET_TX_DESC_MBSSID(__tx_desc, __value) \
349 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 12, 4, __value)
350#define GET_TX_DESC_MBSSID(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x18, 12, 4)
351#ifdef SET_TX_DESC_SW_DEFINE
352#undef SET_TX_DESC_SW_DEFINE
353#endif
354#define SET_TX_DESC_SW_DEFINE(__tx_desc, __value) \
355 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x18, 0, 12, __value)
356#define GET_TX_DESC_SW_DEFINE(__tx_desc) \
357 LE_BITS_TO_4BYTE(__tx_desc + 0x18, 0, 12)
358
359
360
361#define SET_TX_DESC_DMA_TXAGG_NUM(__tx_desc, __value) \
362 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 24, 8, __value)
363#define GET_TX_DESC_DMA_TXAGG_NUM(__tx_desc) \
364 LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 24, 8)
365
366#define SET_TX_DESC_FINAL_DATA_RATE(__tx_desc, __value) \
367 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 24, 8, __value)
368#define GET_TX_DESC_FINAL_DATA_RATE(__tx_desc) \
369 LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 24, 8)
370#define SET_TX_DESC_NTX_MAP(__tx_desc, __value) \
371 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 20, 4, __value)
372#define GET_TX_DESC_NTX_MAP(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 20, 4)
373
374#define SET_TX_DESC_TX_BUFF_SIZE(__tx_desc, __value) \
375 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 0, 16, __value)
376#define GET_TX_DESC_TX_BUFF_SIZE(__tx_desc) \
377 LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 0, 16)
378#define SET_TX_DESC_TXDESC_CHECKSUM(__tx_desc, __value) \
379 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 0, 16, __value)
380#define GET_TX_DESC_TXDESC_CHECKSUM(__tx_desc) \
381 LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 0, 16)
382#define SET_TX_DESC_TIMESTAMP(__tx_desc, __value) \
383 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x1C, 0, 16, __value)
384#define GET_TX_DESC_TIMESTAMP(__tx_desc) \
385 LE_BITS_TO_4BYTE(__tx_desc + 0x1C, 0, 16)
386
387
388
389#define SET_TX_DESC_TXWIFI_CP(__tx_desc, __value) \
390 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 31, 1, __value)
391#define GET_TX_DESC_TXWIFI_CP(__tx_desc) \
392 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 31, 1)
393#define SET_TX_DESC_MAC_CP(__tx_desc, __value) \
394 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 30, 1, __value)
395#define GET_TX_DESC_MAC_CP(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 30, 1)
396#define SET_TX_DESC_STW_PKTRE_DIS(__tx_desc, __value) \
397 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 29, 1, __value)
398#define GET_TX_DESC_STW_PKTRE_DIS(__tx_desc) \
399 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 29, 1)
400#define SET_TX_DESC_STW_RB_DIS(__tx_desc, __value) \
401 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 28, 1, __value)
402#define GET_TX_DESC_STW_RB_DIS(__tx_desc) \
403 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 28, 1)
404#define SET_TX_DESC_STW_RATE_DIS(__tx_desc, __value) \
405 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 27, 1, __value)
406#define GET_TX_DESC_STW_RATE_DIS(__tx_desc) \
407 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 27, 1)
408#define SET_TX_DESC_STW_ANT_DIS(__tx_desc, __value) \
409 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 26, 1, __value)
410#define GET_TX_DESC_STW_ANT_DIS(__tx_desc) \
411 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 26, 1)
412#define SET_TX_DESC_STW_EN(__tx_desc, __value) \
413 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 25, 1, __value)
414#define GET_TX_DESC_STW_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 25, 1)
415#define SET_TX_DESC_SMH_EN(__tx_desc, __value) \
416 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 24, 1, __value)
417#define GET_TX_DESC_SMH_EN(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 24, 1)
418
419#define SET_TX_DESC_TAILPAGE_L(__tx_desc, __value) \
420 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 24, 8, __value)
421#define GET_TX_DESC_TAILPAGE_L(__tx_desc) \
422 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 24, 8)
423
424#define SET_TX_DESC_SDIO_DMASEQ(__tx_desc, __value) \
425 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 16, 8, __value)
426#define GET_TX_DESC_SDIO_DMASEQ(__tx_desc) \
427 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 16, 8)
428
429#define SET_TX_DESC_NEXTHEADPAGE_L(__tx_desc, __value) \
430 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 16, 8, __value)
431#define GET_TX_DESC_NEXTHEADPAGE_L(__tx_desc) \
432 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 16, 8)
433#define SET_TX_DESC_EN_HWSEQ(__tx_desc, __value) \
434 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 15, 1, __value)
435#define GET_TX_DESC_EN_HWSEQ(__tx_desc) \
436 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 15, 1)
437
438#define SET_TX_DESC_EN_HWEXSEQ(__tx_desc, __value) \
439 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 14, 1, __value)
440#define GET_TX_DESC_EN_HWEXSEQ(__tx_desc) \
441 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 14, 1)
442
443#define SET_TX_DESC_DATA_RC(__tx_desc, __value) \
444 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 8, 6, __value)
445#define GET_TX_DESC_DATA_RC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 8, 6)
446#define SET_TX_DESC_BAR_RTY_TH(__tx_desc, __value) \
447 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 6, 2, __value)
448#define GET_TX_DESC_BAR_RTY_TH(__tx_desc) \
449 LE_BITS_TO_4BYTE(__tx_desc + 0x20, 6, 2)
450#define SET_TX_DESC_RTS_RC(__tx_desc, __value) \
451 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x20, 0, 6, __value)
452#define GET_TX_DESC_RTS_RC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x20, 0, 6)
453
454
455
456#define SET_TX_DESC_TAILPAGE_H(__tx_desc, __value) \
457 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 28, 4, __value)
458#define GET_TX_DESC_TAILPAGE_H(__tx_desc) \
459 LE_BITS_TO_4BYTE(__tx_desc + 0x24, 28, 4)
460#define SET_TX_DESC_NEXTHEADPAGE_H(__tx_desc, __value) \
461 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 24, 4, __value)
462#define GET_TX_DESC_NEXTHEADPAGE_H(__tx_desc) \
463 LE_BITS_TO_4BYTE(__tx_desc + 0x24, 24, 4)
464
465#define SET_TX_DESC_SW_SEQ(__tx_desc, __value) \
466 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 12, 12, __value)
467#define GET_TX_DESC_SW_SEQ(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x24, 12, 12)
468#define SET_TX_DESC_TXBF_PATH(__tx_desc, __value) \
469 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 11, 1, __value)
470#define GET_TX_DESC_TXBF_PATH(__tx_desc) \
471 LE_BITS_TO_4BYTE(__tx_desc + 0x24, 11, 1)
472#define SET_TX_DESC_PADDING_LEN(__tx_desc, __value) \
473 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 0, 11, __value)
474#define GET_TX_DESC_PADDING_LEN(__tx_desc) \
475 LE_BITS_TO_4BYTE(__tx_desc + 0x24, 0, 11)
476#define SET_TX_DESC_GROUP_BIT_IE_OFFSET(__tx_desc, __value) \
477 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x24, 0, 8, __value)
478#define GET_TX_DESC_GROUP_BIT_IE_OFFSET(__tx_desc) \
479 LE_BITS_TO_4BYTE(__tx_desc + 0x24, 0, 8)
480
481
482
483#define SET_TX_DESC_MU_DATARATE(__tx_desc, __value) \
484 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x28, 8, 8, __value)
485#define GET_TX_DESC_MU_DATARATE(__tx_desc) \
486 LE_BITS_TO_4BYTE(__tx_desc + 0x28, 8, 8)
487#define SET_TX_DESC_MU_RC(__tx_desc, __value) \
488 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x28, 4, 4, __value)
489#define GET_TX_DESC_MU_RC(__tx_desc) LE_BITS_TO_4BYTE(__tx_desc + 0x28, 4, 4)
490#define SET_TX_DESC_SND_PKT_SEL(__tx_desc, __value) \
491 SET_BITS_TO_LE_4BYTE(__tx_desc + 0x28, 0, 2, __value)
492#define GET_TX_DESC_SND_PKT_SEL(__tx_desc) \
493 LE_BITS_TO_4BYTE(__tx_desc + 0x28, 0, 2)
494
495#endif
496