forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.h
....@@ -1,27 +1,5 @@
1
-/******************************************************************************
2
- *
3
- * Copyright(c) 2009-2010 Realtek Corporation.
4
- *
5
- * This program is free software; you can redistribute it and/or modify it
6
- * under the terms of version 2 of the GNU General Public License as
7
- * published by the Free Software Foundation.
8
- *
9
- * This program is distributed in the hope that it will be useful, but WITHOUT
10
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
- * more details.
13
- *
14
- * The full GNU General Public License is included in this distribution in the
15
- * file called LICENSE.
16
- *
17
- * Contact Information:
18
- * wlanfae <wlanfae@realtek.com>
19
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20
- * Hsinchu 300, Taiwan.
21
- *
22
- * Larry Finger <Larry.Finger@lwfinger.net>
23
- *
24
- *****************************************************************************/
1
+/* SPDX-License-Identifier: GPL-2.0 */
2
+/* Copyright(c) 2009-2010 Realtek Corporation.*/
253
264 #ifndef __RTL8821AE_TRX_H__
275 #define __RTL8821AE_TRX_H__
....@@ -36,341 +14,385 @@
3614 #define USB_HWDESC_HEADER_LEN 40
3715 #define CRCLENGTH 4
3816
39
-#define SET_TX_DESC_PKT_SIZE(__pdesc, __val) \
40
- SET_BITS_TO_LE_4BYTE(__pdesc, 0, 16, __val)
41
-#define SET_TX_DESC_OFFSET(__pdesc, __val) \
42
- SET_BITS_TO_LE_4BYTE(__pdesc, 16, 8, __val)
43
-#define SET_TX_DESC_BMC(__pdesc, __val) \
44
- SET_BITS_TO_LE_4BYTE(__pdesc, 24, 1, __val)
45
-#define SET_TX_DESC_HTC(__pdesc, __val) \
46
- SET_BITS_TO_LE_4BYTE(__pdesc, 25, 1, __val)
47
-#define SET_TX_DESC_LAST_SEG(__pdesc, __val) \
48
- SET_BITS_TO_LE_4BYTE(__pdesc, 26, 1, __val)
49
-#define SET_TX_DESC_FIRST_SEG(__pdesc, __val) \
50
- SET_BITS_TO_LE_4BYTE(__pdesc, 27, 1, __val)
51
-#define SET_TX_DESC_LINIP(__pdesc, __val) \
52
- SET_BITS_TO_LE_4BYTE(__pdesc, 28, 1, __val)
53
-#define SET_TX_DESC_NO_ACM(__pdesc, __val) \
54
- SET_BITS_TO_LE_4BYTE(__pdesc, 29, 1, __val)
55
-#define SET_TX_DESC_GF(__pdesc, __val) \
56
- SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val)
57
-#define SET_TX_DESC_OWN(__pdesc, __val) \
58
- SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val)
17
+static inline void set_tx_desc_pkt_size(__le32 *__pdesc, u32 __val)
18
+{
19
+ le32p_replace_bits(__pdesc, __val, GENMASK(15, 0));
20
+}
5921
60
-#define GET_TX_DESC_PKT_SIZE(__pdesc) \
61
- LE_BITS_TO_4BYTE(__pdesc, 0, 16)
62
-#define GET_TX_DESC_OFFSET(__pdesc) \
63
- LE_BITS_TO_4BYTE(__pdesc, 16, 8)
64
-#define GET_TX_DESC_BMC(__pdesc) \
65
- LE_BITS_TO_4BYTE(__pdesc, 24, 1)
66
-#define GET_TX_DESC_HTC(__pdesc) \
67
- LE_BITS_TO_4BYTE(__pdesc, 25, 1)
68
-#define GET_TX_DESC_LAST_SEG(__pdesc) \
69
- LE_BITS_TO_4BYTE(__pdesc, 26, 1)
70
-#define GET_TX_DESC_FIRST_SEG(__pdesc) \
71
- LE_BITS_TO_4BYTE(__pdesc, 27, 1)
72
-#define GET_TX_DESC_LINIP(__pdesc) \
73
- LE_BITS_TO_4BYTE(__pdesc, 28, 1)
74
-#define GET_TX_DESC_NO_ACM(__pdesc) \
75
- LE_BITS_TO_4BYTE(__pdesc, 29, 1)
76
-#define GET_TX_DESC_GF(__pdesc) \
77
- LE_BITS_TO_4BYTE(__pdesc, 30, 1)
78
-#define GET_TX_DESC_OWN(__pdesc) \
79
- LE_BITS_TO_4BYTE(__pdesc, 31, 1)
22
+static inline void set_tx_desc_offset(__le32 *__pdesc, u32 __val)
23
+{
24
+ le32p_replace_bits(__pdesc, __val, GENMASK(23, 16));
25
+}
8026
81
-#define SET_TX_DESC_MACID(__pdesc, __val) \
82
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 0, 7, __val)
83
-#define SET_TX_DESC_QUEUE_SEL(__pdesc, __val) \
84
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 8, 5, __val)
85
-#define SET_TX_DESC_RDG_NAV_EXT(__pdesc, __val) \
86
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 13, 1, __val)
87
-#define SET_TX_DESC_LSIG_TXOP_EN(__pdesc, __val) \
88
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 14, 1, __val)
89
-#define SET_TX_DESC_PIFS(__pdesc, __val) \
90
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 15, 1, __val)
91
-#define SET_TX_DESC_RATE_ID(__pdesc, __val) \
92
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 16, 5, __val)
93
-#define SET_TX_DESC_EN_DESC_ID(__pdesc, __val) \
94
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 21, 1, __val)
95
-#define SET_TX_DESC_SEC_TYPE(__pdesc, __val) \
96
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 22, 2, __val)
97
-#define SET_TX_DESC_PKT_OFFSET(__pdesc, __val) \
98
- SET_BITS_TO_LE_4BYTE(__pdesc+4, 24, 5, __val)
27
+static inline void set_tx_desc_bmc(__le32 *__pdesc, u32 __val)
28
+{
29
+ le32p_replace_bits(__pdesc, __val, BIT(24));
30
+}
9931
100
-#define SET_TX_DESC_PAID(__pdesc, __val) \
101
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 0, 9, __val)
102
-#define SET_TX_DESC_CCA_RTS(__pdesc, __val) \
103
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 10, 2, __val)
104
-#define SET_TX_DESC_AGG_ENABLE(__pdesc, __val) \
105
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 12, 1, __val)
106
-#define SET_TX_DESC_RDG_ENABLE(__pdesc, __val) \
107
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 13, 1, __val)
108
-#define SET_TX_DESC_BAR_RTY_TH(__pdesc, __val) \
109
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 14, 2, __val)
110
-#define SET_TX_DESC_AGG_BREAK(__pdesc, __val) \
111
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 16, 1, __val)
112
-#define SET_TX_DESC_MORE_FRAG(__pdesc, __val) \
113
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 17, 1, __val)
114
-#define SET_TX_DESC_RAW(__pdesc, __val) \
115
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 18, 1, __val)
116
-#define SET_TX_DESC_SPE_RPT(__pdesc, __val) \
117
- SET_BITS_TO_LE_4BYTE((__pdesc) + 8, 19, 1, __val)
118
-#define SET_TX_DESC_AMPDU_DENSITY(__pdesc, __val) \
119
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 20, 3, __val)
120
-#define SET_TX_DESC_BT_INT(__pdesc, __val) \
121
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 23, 1, __val)
122
-#define SET_TX_DESC_GID(__pdesc, __val) \
123
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 24, 6, __val)
32
+static inline void set_tx_desc_htc(__le32 *__pdesc, u32 __val)
33
+{
34
+ le32p_replace_bits(__pdesc, __val, BIT(25));
35
+}
12436
125
-#define SET_TX_DESC_WHEADER_LEN(__pdesc, __val) \
126
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 0, 4, __val)
127
-#define SET_TX_DESC_CHK_EN(__pdesc, __val) \
128
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 4, 1, __val)
129
-#define SET_TX_DESC_EARLY_MODE(__pdesc, __val) \
130
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 5, 1, __val)
131
-#define SET_TX_DESC_HWSEQ_SEL(__pdesc, __val) \
132
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 6, 2, __val)
133
-#define SET_TX_DESC_USE_RATE(__pdesc, __val) \
134
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 8, 1, __val)
135
-#define SET_TX_DESC_DISABLE_RTS_FB(__pdesc, __val) \
136
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 9, 1, __val)
137
-#define SET_TX_DESC_DISABLE_FB(__pdesc, __val) \
138
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 10, 1, __val)
139
-#define SET_TX_DESC_CTS2SELF(__pdesc, __val) \
140
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 11, 1, __val)
141
-#define SET_TX_DESC_RTS_ENABLE(__pdesc, __val) \
142
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 12, 1, __val)
143
-#define SET_TX_DESC_HW_RTS_ENABLE(__pdesc, __val) \
144
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 13, 1, __val)
145
-#define SET_TX_DESC_NAV_USE_HDR(__pdesc, __val) \
146
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 15, 1, __val)
147
-#define SET_TX_DESC_USE_MAX_LEN(__pdesc, __val) \
148
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 16, 1, __val)
149
-#define SET_TX_DESC_MAX_AGG_NUM(__pdesc, __val) \
150
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 17, 5, __val)
151
-#define SET_TX_DESC_NDPA(__pdesc, __val) \
152
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 22, 2, __val)
153
-#define SET_TX_DESC_AMPDU_MAX_TIME(__pdesc, __val) \
154
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 24, 8, __val)
155
-#define SET_TX_DESC_TX_ANT(__pdesc, __val) \
156
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 24, 4, __val)
37
+static inline void set_tx_desc_last_seg(__le32 *__pdesc, u32 __val)
38
+{
39
+ le32p_replace_bits(__pdesc, __val, BIT(26));
40
+}
15741
158
-#define SET_TX_DESC_TX_RATE(__pdesc, __val) \
159
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 0, 7, __val)
160
-#define SET_TX_DESC_DATA_RATE_FB_LIMIT(__pdesc, __val) \
161
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 8, 5, __val)
162
-#define SET_TX_DESC_RTS_RATE_FB_LIMIT(__pdesc, __val) \
163
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 13, 4, __val)
164
-#define SET_TX_DESC_RETRY_LIMIT_ENABLE(__pdesc, __val) \
165
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 17, 1, __val)
166
-#define SET_TX_DESC_DATA_RETRY_LIMIT(__pdesc, __val) \
167
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 18, 6, __val)
168
-#define SET_TX_DESC_RTS_RATE(__pdesc, __val) \
169
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 24, 5, __val)
42
+static inline void set_tx_desc_first_seg(__le32 *__pdesc, u32 __val)
43
+{
44
+ le32p_replace_bits(__pdesc, __val, BIT(27));
45
+}
17046
171
-#define SET_TX_DESC_TX_SUB_CARRIER(__pdesc, __val) \
172
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 0, 4, __val)
173
-#define SET_TX_DESC_DATA_SHORTGI(__pdesc, __val) \
174
- SET_BITS_TO_LE_1BYTE(__pdesc+20, 4, 1, __val)
175
-#define SET_TX_DESC_DATA_BW(__pdesc, __val) \
176
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 5, 2, __val)
177
-#define SET_TX_DESC_DATA_LDPC(__pdesc, __val) \
178
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 7, 1, __val)
179
-#define SET_TX_DESC_DATA_STBC(__pdesc, __val) \
180
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 8, 2, __val)
181
-#define SET_TX_DESC_CTROL_STBC(__pdesc, __val) \
182
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 10, 2, __val)
183
-#define SET_TX_DESC_RTS_SHORT(__pdesc, __val) \
184
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 12, 1, __val)
185
-#define SET_TX_DESC_RTS_SC(__pdesc, __val) \
186
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 13, 4, __val)
47
+static inline void set_tx_desc_linip(__le32 *__pdesc, u32 __val)
48
+{
49
+ le32p_replace_bits(__pdesc, __val, BIT(28));
50
+}
18751
188
-#define SET_TX_DESC_SW_DEFINE(__pdesc, __val) \
189
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 0, 12, __val)
190
-#define SET_TX_DESC_ANTSEL_A(__pdesc, __val) \
191
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 16, 3, __val)
192
-#define SET_TX_DESC_ANTSEL_B(__pdesc, __val) \
193
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 19, 3, __val)
194
-#define SET_TX_DESC_ANTSEL_C(__pdesc, __val) \
195
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 22, 3, __val)
196
-#define SET_TX_DESC_ANTSEL_D(__pdesc, __val) \
197
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 25, 3, __val)
198
-#define SET_TX_DESC_MBSSID(__pdesc, __val) \
199
- SET_BITS_TO_LE_4BYTE(i(__pdesc) + 24, 12, 4, __val)
52
+static inline void set_tx_desc_own(__le32 *__pdesc, u32 __val)
53
+{
54
+ le32p_replace_bits(__pdesc, __val, BIT(31));
55
+}
20056
201
-#define SET_TX_DESC_TX_BUFFER_SIZE(__pdesc, __val) \
202
- SET_BITS_TO_LE_4BYTE((__pdesc) + 28, 0, 16, __val)
57
+static inline int get_tx_desc_own(__le32 *__pdesc)
58
+{
59
+ return le32_get_bits(*(__pdesc), BIT(31));
60
+}
20361
204
-#define GET_TX_DESC_TX_BUFFER_SIZE(__pdesc) \
205
- LE_BITS_TO_4BYTE(__pdesc+28, 0, 16)
62
+static inline void set_tx_desc_macid(__le32 *__pdesc, u32 __val)
63
+{
64
+ le32p_replace_bits(__pdesc + 1, __val, GENMASK(6, 0));
65
+}
20666
207
-#define SET_TX_DESC_HWSEQ_EN(__pdesc, __val) \
208
- SET_BITS_TO_LE_4BYTE(__pdesc+32, 15, 1, __val)
67
+static inline void set_tx_desc_queue_sel(__le32 *__pdesc, u32 __val)
68
+{
69
+ le32p_replace_bits(__pdesc + 1, __val, GENMASK(12, 8));
70
+}
20971
210
-#define SET_TX_DESC_SEQ(__pdesc, __val) \
211
- SET_BITS_TO_LE_4BYTE(__pdesc+36, 12, 12, __val)
72
+static inline void set_tx_desc_rate_id(__le32 *__pdesc, u32 __val)
73
+{
74
+ le32p_replace_bits(__pdesc + 1, __val, GENMASK(20, 16));
75
+}
21276
213
-#define SET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc, __val) \
214
- SET_BITS_TO_LE_4BYTE(__pdesc+40, 0, 32, __val)
77
+static inline void set_tx_desc_sec_type(__le32 *__pdesc, u32 __val)
78
+{
79
+ le32p_replace_bits(__pdesc + 1, __val, GENMASK(23, 22));
80
+}
21581
216
-#define GET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc) \
217
- LE_BITS_TO_4BYTE(__pdesc+40, 0, 32)
82
+static inline void set_tx_desc_pkt_offset(__le32 *__pdesc, u32 __val)
83
+{
84
+ le32p_replace_bits(__pdesc + 1, __val, GENMASK(28, 24));
85
+}
21886
219
-#define SET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc, __val) \
220
- SET_BITS_TO_LE_4BYTE(__pdesc+48, 0, 32, __val)
87
+static inline void set_tx_desc_agg_enable(__le32 *__pdesc, u32 __val)
88
+{
89
+ le32p_replace_bits(__pdesc + 2, __val, BIT(12));
90
+}
22191
222
-#define GET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc) \
223
- LE_BITS_TO_4BYTE(__pdesc+48, 0, 32)
92
+static inline void set_tx_desc_rdg_enable(__le32 *__pdesc, u32 __val)
93
+{
94
+ le32p_replace_bits(__pdesc + 2, __val, BIT(13));
95
+}
22496
225
-#define GET_RX_DESC_PKT_LEN(__pdesc) \
226
- LE_BITS_TO_4BYTE(__pdesc, 0, 14)
227
-#define GET_RX_DESC_CRC32(__pdesc) \
228
- LE_BITS_TO_4BYTE(__pdesc, 14, 1)
229
-#define GET_RX_DESC_ICV(__pdesc) \
230
- LE_BITS_TO_4BYTE(__pdesc, 15, 1)
231
-#define GET_RX_DESC_DRV_INFO_SIZE(__pdesc) \
232
- LE_BITS_TO_4BYTE(__pdesc, 16, 4)
233
-#define GET_RX_DESC_SECURITY(__pdesc) \
234
- LE_BITS_TO_4BYTE(__pdesc, 20, 3)
235
-#define GET_RX_DESC_QOS(__pdesc) \
236
- LE_BITS_TO_4BYTE(__pdesc, 23, 1)
237
-#define GET_RX_DESC_SHIFT(__pdesc) \
238
- LE_BITS_TO_4BYTE(__pdesc, 24, 2)
239
-#define GET_RX_DESC_PHYST(__pdesc) \
240
- LE_BITS_TO_4BYTE(__pdesc, 26, 1)
241
-#define GET_RX_DESC_SWDEC(__pdesc) \
242
- LE_BITS_TO_4BYTE(__pdesc, 27, 1)
243
-#define GET_RX_DESC_LS(__pdesc) \
244
- LE_BITS_TO_4BYTE(__pdesc, 28, 1)
245
-#define GET_RX_DESC_FS(__pdesc) \
246
- LE_BITS_TO_4BYTE(__pdesc, 29, 1)
247
-#define GET_RX_DESC_EOR(__pdesc) \
248
- LE_BITS_TO_4BYTE(__pdesc, 30, 1)
249
-#define GET_RX_DESC_OWN(__pdesc) \
250
- LE_BITS_TO_4BYTE(__pdesc, 31, 1)
97
+static inline void set_tx_desc_more_frag(__le32 *__pdesc, u32 __val)
98
+{
99
+ le32p_replace_bits(__pdesc + 2, __val, BIT(17));
100
+}
251101
252
-#define SET_RX_DESC_PKT_LEN(__pdesc, __val) \
253
- SET_BITS_TO_LE_4BYTE(__pdesc, 0, 14, __val)
254
-#define SET_RX_DESC_EOR(__pdesc, __val) \
255
- SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val)
256
-#define SET_RX_DESC_OWN(__pdesc, __val) \
257
- SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val)
102
+static inline void set_tx_desc_ampdu_density(__le32 *__pdesc, u32 __val)
103
+{
104
+ le32p_replace_bits(__pdesc + 2, __val, GENMASK(22, 20));
105
+}
258106
259
-#define GET_RX_DESC_MACID(__pdesc) \
260
- LE_BITS_TO_4BYTE(__pdesc+4, 0, 7)
261
-#define GET_RX_DESC_TID(__pdesc) \
262
- LE_BITS_TO_4BYTE(__pdesc+4, 8, 4)
263
-#define GET_RX_DESC_AMSDU(__pdesc) \
264
- LE_BITS_TO_4BYTE(__pdesc+4, 13, 1)
265
-#define GET_RX_STATUS_DESC_RXID_MATCH(__pdesc) \
266
- LE_BITS_TO_4BYTE(__pdesc+4, 14, 1)
267
-#define GET_RX_DESC_PAGGR(__pdesc) \
268
- LE_BITS_TO_4BYTE(__pdesc+4, 15, 1)
269
-#define GET_RX_DESC_A1_FIT(__pdesc) \
270
- LE_BITS_TO_4BYTE(__pdesc+4, 16, 4)
271
-#define GET_RX_DESC_CHKERR(__pdesc) \
272
- LE_BITS_TO_4BYTE(__pdesc+4, 20, 1)
273
-#define GET_RX_DESC_IPVER(__pdesc) \
274
- LE_BITS_TO_4BYTE(__pdesc+4, 21, 1)
275
-#define GET_RX_STATUS_DESC_IS_TCPUDP(__pdesc) \
276
- LE_BITS_TO_4BYTE(__pdesc+4, 22, 1)
277
-#define GET_RX_STATUS_DESC_CHK_VLD(__pdesc) \
278
- LE_BITS_TO_4BYTE(__pdesc+4, 23, 1)
279
-#define GET_RX_DESC_PAM(__pdesc) \
280
- LE_BITS_TO_4BYTE(__pdesc+4, 24, 1)
281
-#define GET_RX_DESC_PWR(__pdesc) \
282
- LE_BITS_TO_4BYTE(__pdesc+4, 25, 1)
283
-#define GET_RX_DESC_MD(__pdesc) \
284
- LE_BITS_TO_4BYTE(__pdesc+4, 26, 1)
285
-#define GET_RX_DESC_MF(__pdesc) \
286
- LE_BITS_TO_4BYTE(__pdesc+4, 27, 1)
287
-#define GET_RX_DESC_TYPE(__pdesc) \
288
- LE_BITS_TO_4BYTE(__pdesc+4, 28, 2)
289
-#define GET_RX_DESC_MC(__pdesc) \
290
- LE_BITS_TO_4BYTE(__pdesc+4, 30, 1)
291
-#define GET_RX_DESC_BC(__pdesc) \
292
- LE_BITS_TO_4BYTE(__pdesc+4, 31, 1)
107
+static inline void set_tx_desc_hwseq_sel(__le32 *__pdesc, u32 __val)
108
+{
109
+ le32p_replace_bits(__pdesc + 3, __val, GENMASK(7, 6));
110
+}
293111
294
-#define GET_RX_DESC_SEQ(__pdesc) \
295
- LE_BITS_TO_4BYTE(__pdesc+8, 0, 12)
296
-#define GET_RX_DESC_FRAG(__pdesc) \
297
- LE_BITS_TO_4BYTE(__pdesc+8, 12, 4)
298
-#define GET_RX_STATUS_DESC_RX_IS_QOS(__pdesc) \
299
- LE_BITS_TO_4BYTE(__pdesc+8, 16, 1)
300
-#define GET_RX_STATUS_DESC_WLANHD_IV_LEN(__pdesc) \
301
- LE_BITS_TO_4BYTE(__pdesc+8, 18, 6)
302
-#define GET_RX_STATUS_DESC_RPT_SEL(__pdesc) \
303
- LE_BITS_TO_4BYTE(__pdesc+8, 28, 1)
112
+static inline void set_tx_desc_use_rate(__le32 *__pdesc, u32 __val)
113
+{
114
+ le32p_replace_bits(__pdesc + 3, __val, BIT(8));
115
+}
304116
305
-#define GET_RX_DESC_RXMCS(__pdesc) \
306
- LE_BITS_TO_4BYTE(__pdesc+12, 0, 7)
307
-#define GET_RX_DESC_HTC(__pdesc) \
308
- LE_BITS_TO_4BYTE(__pdesc+12, 10, 1)
309
-#define GET_RX_STATUS_DESC_EOSP(__pdesc) \
310
- LE_BITS_TO_4BYTE(__pdesc+12, 11, 1)
311
-#define GET_RX_STATUS_DESC_BSSID_FIT(__pdesc) \
312
- LE_BITS_TO_4BYTE(__pdesc+12, 12, 2)
117
+static inline void set_tx_desc_disable_fb(__le32 *__pdesc, u32 __val)
118
+{
119
+ le32p_replace_bits(__pdesc + 3, __val, BIT(10));
120
+}
313121
314
-#define GET_RX_STATUS_DESC_PATTERN_MATCH(__pdesc) \
315
- LE_BITS_TO_4BYTE(__pdesc+12, 29, 1)
316
-#define GET_RX_STATUS_DESC_UNICAST_MATCH(__pdesc) \
317
- LE_BITS_TO_4BYTE(__pdesc+12, 30, 1)
318
-#define GET_RX_STATUS_DESC_MAGIC_MATCH(__pdesc) \
319
- LE_BITS_TO_4BYTE(__pdesc+12, 31, 1)
122
+static inline void set_tx_desc_cts2self(__le32 *__pdesc, u32 __val)
123
+{
124
+ le32p_replace_bits(__pdesc + 3, __val, BIT(11));
125
+}
320126
321
-#define GET_RX_DESC_SPLCP(__pdesc) \
322
- LE_BITS_TO_4BYTE(__pdesc+16, 0, 1)
323
-#define GET_RX_STATUS_DESC_LDPC(__pdesc) \
324
- LE_BITS_TO_4BYTE(__pdesc+16, 1, 1)
325
-#define GET_RX_STATUS_DESC_STBC(__pdesc) \
326
- LE_BITS_TO_4BYTE(__pdesc+16, 2, 1)
327
-#define GET_RX_DESC_BW(__pdesc) \
328
- LE_BITS_TO_4BYTE(__pdesc+16, 4, 2)
127
+static inline void set_tx_desc_rts_enable(__le32 *__pdesc, u32 __val)
128
+{
129
+ le32p_replace_bits(__pdesc + 3, __val, BIT(12));
130
+}
329131
330
-#define GET_RX_DESC_TSFL(__pdesc) \
331
- LE_BITS_TO_4BYTE(__pdesc+20, 0, 32)
132
+static inline void set_tx_desc_hw_rts_enable(__le32 *__pdesc, u32 __val)
133
+{
134
+ le32p_replace_bits(__pdesc + 3, __val, BIT(13));
135
+}
332136
333
-#define GET_RX_DESC_BUFF_ADDR(__pdesc) \
334
- LE_BITS_TO_4BYTE(__pdesc+24, 0, 32)
335
-#define GET_RX_DESC_BUFF_ADDR64(__pdesc) \
336
- LE_BITS_TO_4BYTE(__pdesc+28, 0, 32)
137
+static inline void set_tx_desc_nav_use_hdr(__le32 *__pdesc, u32 __val)
138
+{
139
+ le32p_replace_bits(__pdesc + 3, __val, BIT(15));
140
+}
337141
338
-#define SET_RX_DESC_BUFF_ADDR(__pdesc, __val) \
339
- SET_BITS_TO_LE_4BYTE(__pdesc+24, 0, 32, __val)
340
-#define SET_RX_DESC_BUFF_ADDR64(__pdesc, __val) \
341
- SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 32, __val)
142
+static inline void set_tx_desc_max_agg_num(__le32 *__pdesc, u32 __val)
143
+{
144
+ le32p_replace_bits(__pdesc + 3, __val, GENMASK(21, 17));
145
+}
146
+
147
+static inline void set_tx_desc_tx_ant(__le32 *__pdesc, u32 __val)
148
+{
149
+ le32p_replace_bits(__pdesc + 5, __val, GENMASK(27, 24));
150
+}
151
+
152
+static inline void set_tx_desc_tx_rate(__le32 *__pdesc, u32 __val)
153
+{
154
+ le32p_replace_bits(__pdesc + 4, __val, GENMASK(6, 0));
155
+}
156
+
157
+static inline void set_tx_desc_data_rate_fb_limit(__le32 *__pdesc, u32 __val)
158
+{
159
+ le32p_replace_bits(__pdesc + 4, __val, GENMASK(12, 8));
160
+}
161
+
162
+static inline void set_tx_desc_rts_rate_fb_limit(__le32 *__pdesc, u32 __val)
163
+{
164
+ le32p_replace_bits(__pdesc + 4, __val, GENMASK(16, 13));
165
+}
166
+
167
+static inline void set_tx_desc_rts_rate(__le32 *__pdesc, u32 __val)
168
+{
169
+ le32p_replace_bits(__pdesc + 4, __val, GENMASK(28, 24));
170
+}
171
+
172
+static inline void set_tx_desc_tx_sub_carrier(__le32 *__pdesc, u32 __val)
173
+{
174
+ le32p_replace_bits(__pdesc + 5, __val, GENMASK(3, 0));
175
+}
176
+
177
+static inline void set_tx_desc_data_shortgi(__le32 *__pdesc, u32 __val)
178
+{
179
+ le32p_replace_bits(__pdesc + 5, __val, BIT(4));
180
+}
181
+
182
+static inline void set_tx_desc_data_bw(__le32 *__pdesc, u32 __val)
183
+{
184
+ le32p_replace_bits(__pdesc + 5, __val, GENMASK(6, 5));
185
+}
186
+
187
+static inline void set_tx_desc_rts_short(__le32 *__pdesc, u32 __val)
188
+{
189
+ le32p_replace_bits(__pdesc + 5, __val, BIT(12));
190
+}
191
+
192
+static inline void set_tx_desc_rts_sc(__le32 *__pdesc, u32 __val)
193
+{
194
+ le32p_replace_bits(__pdesc + 5, __val, GENMASK(16, 13));
195
+}
196
+
197
+static inline void set_tx_desc_tx_buffer_size(__le32 *__pdesc, u32 __val)
198
+{
199
+ le32p_replace_bits(__pdesc + 7, __val, GENMASK(15, 0));
200
+}
201
+
202
+static inline void set_tx_desc_hwseq_en(__le32 *__pdesc, u32 __val)
203
+{
204
+ le32p_replace_bits(__pdesc + 8, __val, BIT(15));
205
+}
206
+
207
+static inline void set_tx_desc_seq(__le32 *__pdesc, u32 __val)
208
+{
209
+ le32p_replace_bits(__pdesc + 9, __val, GENMASK(23, 12));
210
+}
211
+
212
+static inline void set_tx_desc_tx_buffer_address(__le32 *__pdesc, u32 __val)
213
+{
214
+ *(__pdesc + 10) = cpu_to_le32(__val);
215
+}
216
+
217
+static inline u32 get_tx_desc_tx_buffer_address(__le32 *__pdesc)
218
+{
219
+ return le32_to_cpu(*(__pdesc + 10));
220
+}
221
+
222
+static inline void set_tx_desc_next_desc_address(__le32 *__pdesc, u32 __val)
223
+{
224
+ *(__pdesc + 12) = cpu_to_le32(__val);
225
+}
226
+
227
+static inline int get_rx_desc_pkt_len(__le32 *__pdesc)
228
+{
229
+ return le32_get_bits(*(__pdesc), GENMASK(13, 0));
230
+}
231
+
232
+static inline int get_rx_desc_crc32(__le32 *__pdesc)
233
+{
234
+ return le32_get_bits(*(__pdesc), BIT(14));
235
+}
236
+
237
+static inline int get_rx_desc_icv(__le32 *__pdesc)
238
+{
239
+ return le32_get_bits(*(__pdesc), BIT(15));
240
+}
241
+
242
+static inline int get_rx_desc_drv_info_size(__le32 *__pdesc)
243
+{
244
+ return le32_get_bits(*(__pdesc), GENMASK(19, 16));
245
+}
246
+
247
+static inline int get_rx_desc_shift(__le32 *__pdesc)
248
+{
249
+ return le32_get_bits(*(__pdesc), GENMASK(25, 24));
250
+}
251
+
252
+static inline int get_rx_desc_physt(__le32 *__pdesc)
253
+{
254
+ return le32_get_bits(*(__pdesc), BIT(26));
255
+}
256
+
257
+static inline int get_rx_desc_swdec(__le32 *__pdesc)
258
+{
259
+ return le32_get_bits(*(__pdesc), BIT(27));
260
+}
261
+
262
+static inline int get_rx_desc_own(__le32 *__pdesc)
263
+{
264
+ return le32_get_bits(*(__pdesc), BIT(31));
265
+}
266
+
267
+static inline void set_rx_desc_pkt_len(__le32 *__pdesc, u32 __val)
268
+{
269
+ le32p_replace_bits(__pdesc, __val, GENMASK(13, 0));
270
+}
271
+
272
+static inline void set_rx_desc_eor(__le32 *__pdesc, u32 __val)
273
+{
274
+ le32p_replace_bits(__pdesc, __val, BIT(30));
275
+}
276
+
277
+static inline void set_rx_desc_own(__le32 *__pdesc, u32 __val)
278
+{
279
+ le32p_replace_bits(__pdesc, __val, BIT(31));
280
+}
281
+
282
+static inline int get_rx_desc_macid(__le32 *__pdesc)
283
+{
284
+ return le32_get_bits(*(__pdesc + 1), GENMASK(6, 0));
285
+}
286
+
287
+static inline int get_rx_desc_paggr(__le32 *__pdesc)
288
+{
289
+ return le32_get_bits(*(__pdesc + 1), BIT(15));
290
+}
291
+
292
+static inline int get_rx_status_desc_rpt_sel(__le32 *__pdesc)
293
+{
294
+ return le32_get_bits(*(__pdesc + 1), BIT(28));
295
+}
296
+
297
+static inline int get_rx_desc_rxmcs(__le32 *__pdesc)
298
+{
299
+ return le32_get_bits(*(__pdesc + 3), GENMASK(6, 0));
300
+}
301
+
302
+static inline int get_rx_status_desc_pattern_match(__le32 *__pdesc)
303
+{
304
+ return le32_get_bits(*(__pdesc + 3), BIT(29));
305
+}
306
+
307
+static inline int get_rx_status_desc_unicast_match(__le32 *__pdesc)
308
+{
309
+ return le32_get_bits(*(__pdesc + 3), BIT(30));
310
+}
311
+
312
+static inline int get_rx_status_desc_magic_match(__le32 *__pdesc)
313
+{
314
+ return le32_get_bits(*(__pdesc + 3), BIT(31));
315
+}
316
+
317
+static inline int get_rx_desc_splcp(__le32 *__pdesc)
318
+{
319
+ return le32_get_bits(*(__pdesc + 4), BIT(0));
320
+}
321
+
322
+static inline int get_rx_desc_bw(__le32 *__pdesc)
323
+{
324
+ return le32_get_bits(*(__pdesc + 4), GENMASK(5, 4));
325
+}
326
+
327
+static inline u32 get_rx_desc_tsfl(__le32 *__pdesc)
328
+{
329
+ return le32_to_cpu(*(__pdesc + 5));
330
+}
331
+
332
+static inline u32 get_rx_desc_buff_addr(__le32 *__pdesc)
333
+{
334
+ return le32_to_cpu(*(__pdesc + 6));
335
+}
336
+
337
+static inline void set_rx_desc_buff_addr(__le32 *__pdesc, u32 __val)
338
+{
339
+ *(__pdesc + 6) = cpu_to_le32(__val);
340
+}
342341
343342 /* TX report 2 format in Rx desc*/
344343
345
-#define GET_RX_RPT2_DESC_PKT_LEN(__status) \
346
- LE_BITS_TO_4BYTE(__status, 0, 9)
347
-#define GET_RX_RPT2_DESC_MACID_VALID_1(__status) \
348
- LE_BITS_TO_4BYTE(__status+16, 0, 32)
349
-#define GET_RX_RPT2_DESC_MACID_VALID_2(__status) \
350
- LE_BITS_TO_4BYTE(__status+20, 0, 32)
344
+static inline u32 get_rx_rpt2_desc_macid_valid_1(__le32 *__status)
345
+{
346
+ return le32_to_cpu(*(__status + 4));
347
+}
351348
352
-#define SET_EARLYMODE_PKTNUM(__paddr, __value) \
353
- SET_BITS_TO_LE_4BYTE(__paddr, 0, 4, __value)
354
-#define SET_EARLYMODE_LEN0(__paddr, __value) \
355
- SET_BITS_TO_LE_4BYTE(__paddr, 4, 12, __value)
356
-#define SET_EARLYMODE_LEN1(__paddr, __value) \
357
- SET_BITS_TO_LE_4BYTE(__paddr, 16, 12, __value)
358
-#define SET_EARLYMODE_LEN2_1(__paddr, __value) \
359
- SET_BITS_TO_LE_4BYTE(__paddr, 28, 4, __value)
360
-#define SET_EARLYMODE_LEN2_2(__paddr, __value) \
361
- SET_BITS_TO_LE_4BYTE(__paddr+4, 0, 8, __value)
362
-#define SET_EARLYMODE_LEN3(__paddr, __value) \
363
- SET_BITS_TO_LE_4BYTE(__paddr+4, 8, 12, __value)
364
-#define SET_EARLYMODE_LEN4(__paddr, __value) \
365
- SET_BITS_TO_LE_4BYTE(__paddr+4, 20, 12, __value)
349
+static inline u32 get_rx_rpt2_desc_macid_valid_2(__le32 *__status)
350
+{
351
+ return le32_to_cpu(*(__status + 5));
352
+}
366353
367
-#define CLEAR_PCI_TX_DESC_CONTENT(__pdesc, _size) \
368
-do { \
369
- if (_size > TX_DESC_NEXT_DESC_OFFSET) \
370
- memset(__pdesc, 0, TX_DESC_NEXT_DESC_OFFSET); \
371
- else \
372
- memset(__pdesc, 0, _size); \
373
-} while (0)
354
+static inline void set_earlymode_pktnum(__le32 *__paddr, u32 __value)
355
+{
356
+ le32p_replace_bits(__paddr, __value, GENMASK(3, 0));
357
+}
358
+
359
+static inline void set_earlymode_len0(__le32 *__paddr, u32 __value)
360
+{
361
+ le32p_replace_bits(__paddr, __value, GENMASK(15, 4));
362
+}
363
+
364
+static inline void set_earlymode_len1(__le32 *__paddr, u32 __value)
365
+{
366
+ le32p_replace_bits(__paddr, __value, GENMASK(27, 16));
367
+}
368
+
369
+static inline void set_earlymode_len2_1(__le32 *__paddr, u32 __value)
370
+{
371
+ le32p_replace_bits(__paddr, __value, GENMASK(31, 28));
372
+}
373
+
374
+static inline void set_earlymode_len2_2(__le32 *__paddr, u32 __value)
375
+{
376
+ le32p_replace_bits(__paddr, __value, GENMASK(7, 0));
377
+}
378
+
379
+static inline void set_earlymode_len3(__le32 *__paddr, u32 __value)
380
+{
381
+ le32p_replace_bits((__paddr + 1), __value, GENMASK(19, 8));
382
+}
383
+
384
+static inline void set_earlymode_len4(__le32 *__paddr, u32 __value)
385
+{
386
+ le32p_replace_bits((__paddr + 1), __value, GENMASK(31, 20));
387
+}
388
+
389
+static inline void clear_pci_tx_desc_content(__le32 *__pdesc, int _size)
390
+{
391
+ if (_size > TX_DESC_NEXT_DESC_OFFSET)
392
+ memset(__pdesc, 0, TX_DESC_NEXT_DESC_OFFSET);
393
+ else
394
+ memset(__pdesc, 0, _size);
395
+}
374396
375397 #define RTL8821AE_RX_HAL_IS_CCK_RATE(rxmcs)\
376398 (rxmcs == DESC_RATE1M ||\