forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.h
....@@ -1,27 +1,5 @@
1
-/******************************************************************************
2
- *
3
- * Copyright(c) 2009-2014 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-2014 Realtek Corporation.*/
253
264 #ifndef __RTL8723BE_TRX_H__
275 #define __RTL8723BE_TRX_H__
....@@ -36,351 +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
32
+static inline void set_tx_desc_htc(__le32 *__pdesc, u32 __val)
33
+{
34
+ le32p_replace_bits(__pdesc, __val, BIT(25));
35
+}
10036
101
-#define SET_TX_DESC_PAID(__pdesc, __val) \
102
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 0, 9, __val)
103
-#define SET_TX_DESC_CCA_RTS(__pdesc, __val) \
104
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 10, 2, __val)
105
-#define SET_TX_DESC_AGG_ENABLE(__pdesc, __val) \
106
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 12, 1, __val)
107
-#define SET_TX_DESC_RDG_ENABLE(__pdesc, __val) \
108
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 13, 1, __val)
109
-#define SET_TX_DESC_BAR_RTY_TH(__pdesc, __val) \
110
- SET_BITS_TO_LE_4BYTE((__pdesc) + 8, 14, 2, __val)
111
-#define SET_TX_DESC_AGG_BREAK(__pdesc, __val) \
112
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 16, 1, __val)
113
-#define SET_TX_DESC_MORE_FRAG(__pdesc, __val) \
114
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 17, 1, __val)
115
-#define SET_TX_DESC_RAW(__pdesc, __val) \
116
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 18, 1, __val)
117
-#define SET_TX_DESC_SPE_RPT(__pdesc, __val) \
118
- SET_BITS_TO_LE_4BYTE((__pdesc) + 8, 19, 1, __val)
119
-#define SET_TX_DESC_AMPDU_DENSITY(__pdesc, __val) \
120
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 20, 3, __val)
121
-#define SET_TX_DESC_BT_INT(__pdesc, __val) \
122
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 23, 1, __val)
123
-#define SET_TX_DESC_GID(__pdesc, __val) \
124
- SET_BITS_TO_LE_4BYTE(__pdesc+8, 24, 6, __val)
37
+static inline void set_tx_desc_last_seg(__le32 *__pdesc, u32 __val)
38
+{
39
+ le32p_replace_bits(__pdesc, __val, BIT(26));
40
+}
12541
42
+static inline void set_tx_desc_first_seg(__le32 *__pdesc, u32 __val)
43
+{
44
+ le32p_replace_bits(__pdesc, __val, BIT(27));
45
+}
12646
127
-#define SET_TX_DESC_WHEADER_LEN(__pdesc, __val) \
128
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 0, 4, __val)
129
-#define SET_TX_DESC_CHK_EN(__pdesc, __val) \
130
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 4, 1, __val)
131
-#define SET_TX_DESC_EARLY_MODE(__pdesc, __val) \
132
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 5, 1, __val)
133
-#define SET_TX_DESC_HWSEQ_SEL(__pdesc, __val) \
134
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 6, 2, __val)
135
-#define SET_TX_DESC_USE_RATE(__pdesc, __val) \
136
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 8, 1, __val)
137
-#define SET_TX_DESC_DISABLE_RTS_FB(__pdesc, __val) \
138
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 9, 1, __val)
139
-#define SET_TX_DESC_DISABLE_FB(__pdesc, __val) \
140
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 10, 1, __val)
141
-#define SET_TX_DESC_CTS2SELF(__pdesc, __val) \
142
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 11, 1, __val)
143
-#define SET_TX_DESC_RTS_ENABLE(__pdesc, __val) \
144
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 12, 1, __val)
145
-#define SET_TX_DESC_HW_RTS_ENABLE(__pdesc, __val) \
146
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 13, 1, __val)
147
-#define SET_TX_DESC_NAV_USE_HDR(__pdesc, __val) \
148
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 15, 1, __val)
149
-#define SET_TX_DESC_USE_MAX_LEN(__pdesc, __val) \
150
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 16, 1, __val)
151
-#define SET_TX_DESC_MAX_AGG_NUM(__pdesc, __val) \
152
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 17, 5, __val)
153
-#define SET_TX_DESC_NDPA(__pdesc, __val) \
154
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 22, 2, __val)
155
-#define SET_TX_DESC_AMPDU_MAX_TIME(__pdesc, __val) \
156
- SET_BITS_TO_LE_4BYTE(__pdesc+12, 24, 8, __val)
47
+static inline void set_tx_desc_linip(__le32 *__pdesc, u32 __val)
48
+{
49
+ le32p_replace_bits(__pdesc, __val, BIT(28));
50
+}
15751
52
+static inline void set_tx_desc_own(__le32 *__pdesc, u32 __val)
53
+{
54
+ le32p_replace_bits(__pdesc, __val, BIT(31));
55
+}
15856
159
-#define SET_TX_DESC_TX_RATE(__pdesc, __val) \
160
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 0, 7, __val)
161
-#define SET_TX_DESC_DATA_RATE_FB_LIMIT(__pdesc, __val) \
162
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 8, 5, __val)
163
-#define SET_TX_DESC_RTS_RATE_FB_LIMIT(__pdesc, __val) \
164
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 13, 4, __val)
165
-#define SET_TX_DESC_RETRY_LIMIT_ENABLE(__pdesc, __val) \
166
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 17, 1, __val)
167
-#define SET_TX_DESC_DATA_RETRY_LIMIT(__pdesc, __val) \
168
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 18, 6, __val)
169
-#define SET_TX_DESC_RTS_RATE(__pdesc, __val) \
170
- SET_BITS_TO_LE_4BYTE(__pdesc+16, 24, 5, __val)
57
+static inline u32 get_tx_desc_own(__le32 *__pdesc)
58
+{
59
+ return le32_get_bits(*__pdesc, BIT(31));
60
+}
17161
62
+static inline void set_tx_desc_macid(__le32 *__pdesc, u32 __val)
63
+{
64
+ le32p_replace_bits((__pdesc + 1), __val, GENMASK(6, 0));
65
+}
17266
173
-#define SET_TX_DESC_TX_SUB_CARRIER(__pdesc, __val) \
174
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 0, 4, __val)
175
-#define SET_TX_DESC_DATA_SHORTGI(__pdesc, __val) \
176
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 4, 1, __val)
177
-#define SET_TX_DESC_DATA_BW(__pdesc, __val) \
178
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 5, 2, __val)
179
-#define SET_TX_DESC_DATA_LDPC(__pdesc, __val) \
180
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 7, 1, __val)
181
-#define SET_TX_DESC_DATA_STBC(__pdesc, __val) \
182
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 8, 2, __val)
183
-#define SET_TX_DESC_CTROL_STBC(__pdesc, __val) \
184
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 10, 2, __val)
185
-#define SET_TX_DESC_RTS_SHORT(__pdesc, __val) \
186
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 12, 1, __val)
187
-#define SET_TX_DESC_RTS_SC(__pdesc, __val) \
188
- SET_BITS_TO_LE_4BYTE(__pdesc+20, 13, 4, __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
+}
18971
190
-#define SET_TX_DESC_SW_DEFINE(__pdesc, __val) \
191
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 0, 12, __val)
192
-#define SET_TX_DESC_MBSSID(__pdesc, __val) \
193
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 12, 4, __val)
194
-#define SET_TX_DESC_ANTSEL_A(__pdesc, __val) \
195
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 16, 3, __val)
196
-#define SET_TX_DESC_ANTSEL_B(__pdesc, __val) \
197
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 19, 3, __val)
198
-#define SET_TX_DESC_ANTSEL_C(__pdesc, __val) \
199
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 22, 3, __val)
200
-#define SET_TX_DESC_ANTSEL_D(__pdesc, __val) \
201
- SET_BITS_TO_LE_4BYTE((__pdesc) + 24, 25, 3, __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
+}
20276
203
-#define SET_TX_DESC_TX_BUFFER_SIZE(__pdesc, __val) \
204
- SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 16, __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
+}
20581
206
-#define GET_TX_DESC_TX_BUFFER_SIZE(__pdesc) \
207
- LE_BITS_TO_4BYTE(__pdesc+28, 0, 16)
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
+}
20886
209
-#define SET_TX_DESC_HWSEQ_EN(__pdesc, __val) \
210
- SET_BITS_TO_LE_4BYTE(__pdesc+32, 15, 1, __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
+}
21191
212
-#define SET_TX_DESC_SEQ(__pdesc, __val) \
213
- SET_BITS_TO_LE_4BYTE(__pdesc+36, 12, 12, __val)
92
+static inline void set_tx_desc_rdg_enable(__le32 *__pdesc, u32 __val)
93
+{
94
+ le32p_replace_bits((__pdesc + 2), __val, BIT(13));
95
+}
21496
215
-#define SET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc, __val) \
216
- SET_BITS_TO_LE_4BYTE(__pdesc+40, 0, 32, __val)
97
+static inline void set_tx_desc_more_frag(__le32 *__pdesc, u32 __val)
98
+{
99
+ le32p_replace_bits((__pdesc + 2), __val, BIT(17));
100
+}
217101
218
-#define GET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc) \
219
- LE_BITS_TO_4BYTE(__pdesc+40, 0, 32)
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
+}
220106
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
+}
221111
222
-#define SET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc, __val) \
223
- SET_BITS_TO_LE_4BYTE(__pdesc+48, 0, 32, __val)
112
+static inline void set_tx_desc_use_rate(__le32 *__pdesc, u32 __val)
113
+{
114
+ le32p_replace_bits((__pdesc + 3), __val, BIT(8));
115
+}
224116
225
-#define GET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc) \
226
- LE_BITS_TO_4BYTE(__pdesc+48, 0, 32)
117
+static inline void set_tx_desc_disable_fb(__le32 *__pdesc, u32 __val)
118
+{
119
+ le32p_replace_bits((__pdesc + 3), __val, BIT(10));
120
+}
227121
228
-#define GET_RX_DESC_PKT_LEN(__pdesc) \
229
- LE_BITS_TO_4BYTE(__pdesc, 0, 14)
230
-#define GET_RX_DESC_CRC32(__pdesc) \
231
- LE_BITS_TO_4BYTE(__pdesc, 14, 1)
232
-#define GET_RX_DESC_ICV(__pdesc) \
233
- LE_BITS_TO_4BYTE(__pdesc, 15, 1)
234
-#define GET_RX_DESC_DRV_INFO_SIZE(__pdesc) \
235
- LE_BITS_TO_4BYTE(__pdesc, 16, 4)
236
-#define GET_RX_DESC_SECURITY(__pdesc) \
237
- LE_BITS_TO_4BYTE(__pdesc, 20, 3)
238
-#define GET_RX_DESC_QOS(__pdesc) \
239
- LE_BITS_TO_4BYTE(__pdesc, 23, 1)
240
-#define GET_RX_DESC_SHIFT(__pdesc) \
241
- LE_BITS_TO_4BYTE(__pdesc, 24, 2)
242
-#define GET_RX_DESC_PHYST(__pdesc) \
243
- LE_BITS_TO_4BYTE(__pdesc, 26, 1)
244
-#define GET_RX_DESC_SWDEC(__pdesc) \
245
- LE_BITS_TO_4BYTE(__pdesc, 27, 1)
246
-#define GET_RX_DESC_LS(__pdesc) \
247
- LE_BITS_TO_4BYTE(__pdesc, 28, 1)
248
-#define GET_RX_DESC_FS(__pdesc) \
249
- LE_BITS_TO_4BYTE(__pdesc, 29, 1)
250
-#define GET_RX_DESC_EOR(__pdesc) \
251
- LE_BITS_TO_4BYTE(__pdesc, 30, 1)
252
-#define GET_RX_DESC_OWN(__pdesc) \
253
- LE_BITS_TO_4BYTE(__pdesc, 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
+}
254126
255
-#define SET_RX_DESC_PKT_LEN(__pdesc, __val) \
256
- SET_BITS_TO_LE_4BYTE(__pdesc, 0, 14, __val)
257
-#define SET_RX_DESC_EOR(__pdesc, __val) \
258
- SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val)
259
-#define SET_RX_DESC_OWN(__pdesc, __val) \
260
- SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val)
127
+static inline void set_tx_desc_rts_enable(__le32 *__pdesc, u32 __val)
128
+{
129
+ le32p_replace_bits((__pdesc + 3), __val, BIT(12));
130
+}
261131
262
-#define GET_RX_DESC_MACID(__pdesc) \
263
- LE_BITS_TO_4BYTE(__pdesc+4, 0, 7)
264
-#define GET_RX_DESC_TID(__pdesc) \
265
- LE_BITS_TO_4BYTE(__pdesc+4, 8, 4)
266
-#define GET_RX_DESC_AMSDU(__pdesc) \
267
- LE_BITS_TO_4BYTE(__pdesc+4, 13, 1)
268
-#define GET_RX_STATUS_DESC_RXID_MATCH(__pdesc) \
269
- LE_BITS_TO_4BYTE(__pdesc+4, 14, 1)
270
-#define GET_RX_DESC_PAGGR(__pdesc) \
271
- LE_BITS_TO_4BYTE(__pdesc+4, 15, 1)
272
-#define GET_RX_DESC_A1_FIT(__pdesc) \
273
- LE_BITS_TO_4BYTE(__pdesc+4, 16, 4)
274
-#define GET_RX_DESC_CHKERR(__pdesc) \
275
- LE_BITS_TO_4BYTE(__pdesc+4, 20, 1)
276
-#define GET_RX_DESC_IPVER(__pdesc) \
277
- LE_BITS_TO_4BYTE(__pdesc+4, 21, 1)
278
-#define GET_RX_STATUS_DESC_IS_TCPUDP(__pdesc) \
279
- LE_BITS_TO_4BYTE(__pdesc+4, 22, 1)
280
-#define GET_RX_STATUS_DESC_CHK_VLD(__pdesc) \
281
- LE_BITS_TO_4BYTE(__pdesc+4, 23, 1)
282
-#define GET_RX_DESC_PAM(__pdesc) \
283
- LE_BITS_TO_4BYTE(__pdesc+4, 24, 1)
284
-#define GET_RX_DESC_PWR(__pdesc) \
285
- LE_BITS_TO_4BYTE(__pdesc+4, 25, 1)
286
-#define GET_RX_DESC_MD(__pdesc) \
287
- LE_BITS_TO_4BYTE(__pdesc+4, 26, 1)
288
-#define GET_RX_DESC_MF(__pdesc) \
289
- LE_BITS_TO_4BYTE(__pdesc+4, 27, 1)
290
-#define GET_RX_DESC_TYPE(__pdesc) \
291
- LE_BITS_TO_4BYTE(__pdesc+4, 28, 2)
292
-#define GET_RX_DESC_MC(__pdesc) \
293
- LE_BITS_TO_4BYTE(__pdesc+4, 30, 1)
294
-#define GET_RX_DESC_BC(__pdesc) \
295
- LE_BITS_TO_4BYTE(__pdesc+4, 31, 1)
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
+}
296136
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
+}
297141
298
-#define GET_RX_DESC_SEQ(__pdesc) \
299
- LE_BITS_TO_4BYTE(__pdesc+8, 0, 12)
300
-#define GET_RX_DESC_FRAG(__pdesc) \
301
- LE_BITS_TO_4BYTE(__pdesc+8, 12, 4)
302
-#define GET_RX_STATUS_DESC_RX_IS_QOS(__pdesc) \
303
- LE_BITS_TO_4BYTE(__pdesc+8, 16, 1)
304
-#define GET_RX_STATUS_DESC_WLANHD_IV_LEN(__pdesc) \
305
- LE_BITS_TO_4BYTE(__pdesc+8, 18, 6)
306
-#define GET_RX_STATUS_DESC_RPT_SEL(__pdesc) \
307
- LE_BITS_TO_4BYTE(__pdesc+8, 28, 1)
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
+}
308146
147
+static inline void set_tx_desc_tx_rate(__le32 *__pdesc, u32 __val)
148
+{
149
+ le32p_replace_bits((__pdesc + 4), __val, GENMASK(6, 0));
150
+}
309151
310
-#define GET_RX_DESC_RXMCS(__pdesc) \
311
- LE_BITS_TO_4BYTE(__pdesc+12, 0, 7)
312
-#define GET_RX_DESC_RXHT(__pdesc) \
313
- LE_BITS_TO_4BYTE(__pdesc+12, 6, 1)
314
-#define GET_RX_STATUS_DESC_RX_GF(__pdesc) \
315
- LE_BITS_TO_4BYTE(__pdesc+12, 7, 1)
316
-#define GET_RX_DESC_HTC(__pdesc) \
317
- LE_BITS_TO_4BYTE(__pdesc+12, 10, 1)
318
-#define GET_RX_STATUS_DESC_EOSP(__pdesc) \
319
- LE_BITS_TO_4BYTE(__pdesc+12, 11, 1)
320
-#define GET_RX_STATUS_DESC_BSSID_FIT(__pdesc) \
321
- LE_BITS_TO_4BYTE(__pdesc+12, 12, 2)
152
+static inline void set_tx_desc_data_rate_fb_limit(__le32 *__pdesc, u32 __val)
153
+{
154
+ le32p_replace_bits((__pdesc + 4), __val, GENMASK(12, 8));
155
+}
322156
323
-#define GET_RX_STATUS_DESC_PATTERN_MATCH(__pdesc) \
324
- LE_BITS_TO_4BYTE(__pdesc+12, 29, 1)
325
-#define GET_RX_STATUS_DESC_UNICAST_MATCH(__pdesc) \
326
- LE_BITS_TO_4BYTE(__pdesc+12, 30, 1)
327
-#define GET_RX_STATUS_DESC_MAGIC_MATCH(__pdesc) \
328
- LE_BITS_TO_4BYTE(__pdesc+12, 31, 1)
157
+static inline void set_tx_desc_rts_rate_fb_limit(__le32 *__pdesc, u32 __val)
158
+{
159
+ le32p_replace_bits((__pdesc + 4), __val, GENMASK(16, 13));
160
+}
329161
330
-#define GET_RX_DESC_SPLCP(__pdesc) \
331
- LE_BITS_TO_4BYTE(__pdesc+16, 0, 1)
332
-#define GET_RX_STATUS_DESC_LDPC(__pdesc) \
333
- LE_BITS_TO_4BYTE(__pdesc+16, 1, 1)
334
-#define GET_RX_STATUS_DESC_STBC(__pdesc) \
335
- LE_BITS_TO_4BYTE(__pdesc+16, 2, 1)
336
-#define GET_RX_DESC_BW(__pdesc) \
337
- LE_BITS_TO_4BYTE(__pdesc+16, 4, 2)
162
+static inline void set_tx_desc_rts_rate(__le32 *__pdesc, u32 __val)
163
+{
164
+ le32p_replace_bits((__pdesc + 4), __val, GENMASK(28, 24));
165
+}
338166
339
-#define GET_RX_DESC_TSFL(__pdesc) \
340
- LE_BITS_TO_4BYTE(__pdesc+20, 0, 32)
167
+static inline void set_tx_desc_tx_sub_carrier(__le32 *__pdesc, u32 __val)
168
+{
169
+ le32p_replace_bits((__pdesc + 5), __val, GENMASK(3, 0));
170
+}
341171
342
-#define GET_RX_DESC_BUFF_ADDR(__pdesc) \
343
- LE_BITS_TO_4BYTE(__pdesc+24, 0, 32)
344
-#define GET_RX_DESC_BUFF_ADDR64(__pdesc) \
345
- LE_BITS_TO_4BYTE(__pdesc+28, 0, 32)
172
+static inline void set_tx_desc_data_shortgi(__le32 *__pdesc, u32 __val)
173
+{
174
+ le32p_replace_bits((__pdesc + 5), __val, BIT(4));
175
+}
346176
347
-#define SET_RX_DESC_BUFF_ADDR(__pdesc, __val) \
348
- SET_BITS_TO_LE_4BYTE(__pdesc+24, 0, 32, __val)
349
-#define SET_RX_DESC_BUFF_ADDR64(__pdesc, __val) \
350
- SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 32, __val)
177
+static inline void set_tx_desc_data_bw(__le32 *__pdesc, u32 __val)
178
+{
179
+ le32p_replace_bits((__pdesc + 5), __val, GENMASK(6, 5));
180
+}
351181
182
+static inline void set_tx_desc_rts_short(__le32 *__pdesc, u32 __val)
183
+{
184
+ le32p_replace_bits((__pdesc + 5), __val, BIT(12));
185
+}
186
+
187
+static inline void set_tx_desc_rts_sc(__le32 *__pdesc, u32 __val)
188
+{
189
+ le32p_replace_bits((__pdesc + 5), __val, GENMASK(16, 13));
190
+}
191
+
192
+static inline void set_tx_desc_tx_buffer_size(__le32 *__pdesc, u32 __val)
193
+{
194
+ le32p_replace_bits((__pdesc + 7), __val, GENMASK(15, 0));
195
+}
196
+
197
+static inline void set_tx_desc_hwseq_en(__le32 *__pdesc, u32 __val)
198
+{
199
+ le32p_replace_bits((__pdesc + 8), __val, BIT(15));
200
+}
201
+
202
+static inline void set_tx_desc_seq(__le32 *__pdesc, u32 __val)
203
+{
204
+ le32p_replace_bits((__pdesc + 9), __val, GENMASK(23, 12));
205
+}
206
+
207
+static inline void set_tx_desc_tx_buffer_address(__le32 *__pdesc, u32 __val)
208
+{
209
+ *(__pdesc + 10) = cpu_to_le32(__val);
210
+}
211
+
212
+static inline u32 get_tx_desc_tx_buffer_address(__le32 *__pdesc)
213
+{
214
+ return le32_to_cpu(*((__pdesc + 10)));
215
+}
216
+
217
+static inline void set_tx_desc_next_desc_address(__le32 *__pdesc, u32 __val)
218
+{
219
+ *(__pdesc + 12) = cpu_to_le32(__val);
220
+}
221
+
222
+static inline u32 get_rx_desc_pkt_len(__le32 *__pdesc)
223
+{
224
+ return le32_get_bits(*__pdesc, GENMASK(13, 0));
225
+}
226
+
227
+static inline u32 get_rx_desc_crc32(__le32 *__pdesc)
228
+{
229
+ return le32_get_bits(*__pdesc, BIT(14));
230
+}
231
+
232
+static inline u32 get_rx_desc_icv(__le32 *__pdesc)
233
+{
234
+ return le32_get_bits(*__pdesc, BIT(15));
235
+}
236
+
237
+static inline u32 get_rx_desc_drv_info_size(__le32 *__pdesc)
238
+{
239
+ return le32_get_bits(*__pdesc, GENMASK(19, 16));
240
+}
241
+
242
+static inline u32 get_rx_desc_shift(__le32 *__pdesc)
243
+{
244
+ return le32_get_bits(*__pdesc, GENMASK(25, 24));
245
+}
246
+
247
+static inline u32 get_rx_desc_physt(__le32 *__pdesc)
248
+{
249
+ return le32_get_bits(*__pdesc, BIT(26));
250
+}
251
+
252
+static inline u32 get_rx_desc_swdec(__le32 *__pdesc)
253
+{
254
+ return le32_get_bits(*__pdesc, BIT(27));
255
+}
256
+
257
+static inline u32 get_rx_desc_own(__le32 *__pdesc)
258
+{
259
+ return le32_get_bits(*__pdesc, BIT(31));
260
+}
261
+
262
+static inline void set_rx_desc_pkt_len(__le32 *__pdesc, u32 __val)
263
+{
264
+ le32p_replace_bits(__pdesc, __val, GENMASK(13, 0));
265
+}
266
+
267
+static inline void set_rx_desc_eor(__le32 *__pdesc, u32 __val)
268
+{
269
+ le32p_replace_bits(__pdesc, __val, BIT(30));
270
+}
271
+
272
+static inline void set_rx_desc_own(__le32 *__pdesc, u32 __val)
273
+{
274
+ le32p_replace_bits(__pdesc, __val, BIT(31));
275
+}
276
+
277
+static inline u32 get_rx_desc_macid(__le32 *__pdesc)
278
+{
279
+ return le32_get_bits(*(__pdesc + 1), GENMASK(6, 0));
280
+}
281
+
282
+static inline u32 get_rx_desc_paggr(__le32 *__pdesc)
283
+{
284
+ return le32_get_bits(*(__pdesc + 1), BIT(15));
285
+}
286
+
287
+static inline u32 get_rx_status_desc_rpt_sel(__le32 *__pdesc)
288
+{
289
+ return le32_get_bits(*(__pdesc + 2), BIT(28));
290
+}
291
+
292
+static inline u32 get_rx_desc_rxmcs(__le32 *__pdesc)
293
+{
294
+ return le32_get_bits(*(__pdesc + 3), GENMASK(6, 0));
295
+}
296
+
297
+static inline u32 get_rx_desc_rxht(__le32 *__pdesc)
298
+{
299
+ return le32_get_bits(*(__pdesc + 3), BIT(6));
300
+}
301
+
302
+static inline u32 get_rx_status_desc_pattern_match(__le32 *__pdesc)
303
+{
304
+ return le32_get_bits(*(__pdesc + 3), BIT(29));
305
+}
306
+
307
+static inline u32 get_rx_status_desc_unicast_match(__le32 *__pdesc)
308
+{
309
+ return le32_get_bits(*(__pdesc + 3), BIT(30));
310
+}
311
+
312
+static inline u32 get_rx_status_desc_magic_match(__le32 *__pdesc)
313
+{
314
+ return le32_get_bits(*(__pdesc + 3), BIT(31));
315
+}
316
+
317
+static inline u32 get_rx_desc_splcp(__le32 *__pdesc)
318
+{
319
+ return le32_get_bits(*(__pdesc + 4), BIT(0));
320
+}
321
+
322
+static inline u32 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
+}
352341
353342 /* TX report 2 format in Rx desc*/
354343
355
-#define GET_RX_RPT2_DESC_PKT_LEN(__rxstatusdesc) \
356
- LE_BITS_TO_4BYTE(__rxstatusdesc, 0, 9)
357
-#define GET_RX_RPT2_DESC_MACID_VALID_1(__rxstatusdesc) \
358
- LE_BITS_TO_4BYTE(__rxstatusdesc+16, 0, 32)
359
-#define GET_RX_RPT2_DESC_MACID_VALID_2(__rxstatusdesc) \
360
- LE_BITS_TO_4BYTE(__rxstatusdesc+20, 0, 32)
344
+static inline u32 get_rx_rpt2_desc_macid_valid_1(__le32 *__rxstatusdesc)
345
+{
346
+ return le32_to_cpu(*((__rxstatusdesc + 4)));
347
+}
361348
362
-#define SET_EARLYMODE_PKTNUM(__paddr, __value) \
363
- SET_BITS_TO_LE_4BYTE(__paddr, 0, 4, __value)
364
-#define SET_EARLYMODE_LEN0(__paddr, __value) \
365
- SET_BITS_TO_LE_4BYTE(__paddr, 4, 12, __value)
366
-#define SET_EARLYMODE_LEN1(__paddr, __value) \
367
- SET_BITS_TO_LE_4BYTE(__paddr, 16, 12, __value)
368
-#define SET_EARLYMODE_LEN2_1(__paddr, __value) \
369
- SET_BITS_TO_LE_4BYTE(__paddr, 28, 4, __value)
370
-#define SET_EARLYMODE_LEN2_2(__paddr, __value) \
371
- SET_BITS_TO_LE_4BYTE(__paddr+4, 0, 8, __value)
372
-#define SET_EARLYMODE_LEN3(__paddr, __value) \
373
- SET_BITS_TO_LE_4BYTE(__paddr+4, 8, 12, __value)
374
-#define SET_EARLYMODE_LEN4(__paddr, __value) \
375
- SET_BITS_TO_LE_4BYTE(__paddr+4, 20, 12, __value)
349
+static inline u32 get_rx_rpt2_desc_macid_valid_2(__le32 *__rxstatusdesc)
350
+{
351
+ return le32_to_cpu(*((__rxstatusdesc + 5)));
352
+}
376353
377
-#define CLEAR_PCI_TX_DESC_CONTENT(__pdesc, _size) \
378
-do { \
379
- if (_size > TX_DESC_NEXT_DESC_OFFSET) \
380
- memset(__pdesc, 0, TX_DESC_NEXT_DESC_OFFSET); \
381
- else \
382
- memset(__pdesc, 0, _size); \
383
-} 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 + 1), __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, u32 _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
+}
384396
385397 struct phy_rx_agc_info_t {
386398 #ifdef __LITTLE_ENDIAN