1 /******************************************************************************
3 * Copyright(c) 2016 Realtek Corporation.
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.
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
14 * The full GNU General Public License is included in this distribution in the
15 * file called LICENSE.
17 * Contact Information:
18 * wlanfae <wlanfae@realtek.com>
19 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20 * Hsinchu 300, Taiwan.
22 * Larry Finger <Larry.Finger@lwfinger.net>
24 *****************************************************************************/
25 #ifndef _HAL_ORIGINALC2HFORMAT_H2C_C2H_NIC_H_
26 #define _HAL_ORIGINALC2HFORMAT_H2C_C2H_NIC_H_
27 #define CMD_ID_C2H 0X00
28 #define CMD_ID_DBG 0X00
29 #define CMD_ID_C2H_LB 0X01
30 #define CMD_ID_C2H_SND_TXBF 0X02
31 #define CMD_ID_C2H_CCX_RPT 0X03
32 #define CMD_ID_C2H_AP_REQ_TXRPT 0X04
33 #define CMD_ID_C2H_INITIAL_RATE_COLLECTION 0X05
34 #define CMD_ID_C2H_RA_RPT 0X0C
35 #define CMD_ID_C2H_SPECIAL_STATISTICS 0X0D
36 #define CMD_ID_C2H_RA_PARA_RPT 0X0E
37 #define CMD_ID_C2H_CUR_CHANNEL 0X10
38 #define CMD_ID_C2H_GPIO_WAKEUP 0X14
39 #define C2H_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
40 #define C2H_SET_CMD_ID(__c2h, __value) \
41 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
42 #define C2H_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
43 #define C2H_SET_SEQ(__c2h, __value) \
44 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
45 #define DBG_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
46 #define DBG_SET_CMD_ID(__c2h, __value) \
47 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
48 #define DBG_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
49 #define DBG_SET_SEQ(__c2h, __value) \
50 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
51 #define DBG_GET_DBG_STR1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
52 #define DBG_SET_DBG_STR1(__c2h, __value) \
53 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
54 #define DBG_GET_DBG_STR2(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
55 #define DBG_SET_DBG_STR2(__c2h, __value) \
56 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
57 #define DBG_GET_DBG_STR3(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
58 #define DBG_SET_DBG_STR3(__c2h, __value) \
59 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
60 #define DBG_GET_DBG_STR4(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
61 #define DBG_SET_DBG_STR4(__c2h, __value) \
62 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
63 #define DBG_GET_DBG_STR5(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
64 #define DBG_SET_DBG_STR5(__c2h, __value) \
65 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
66 #define DBG_GET_DBG_STR6(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
67 #define DBG_SET_DBG_STR6(__c2h, __value) \
68 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
69 #define DBG_GET_DBG_STR7(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
70 #define DBG_SET_DBG_STR7(__c2h, __value) \
71 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
72 #define DBG_GET_DBG_STR8(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
73 #define DBG_SET_DBG_STR8(__c2h, __value) \
74 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
75 #define DBG_GET_DBG_STR9(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8)
76 #define DBG_SET_DBG_STR9(__c2h, __value) \
77 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value)
78 #define DBG_GET_DBG_STR10(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 24, 8)
79 #define DBG_SET_DBG_STR10(__c2h, __value) \
80 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 24, 8, __value)
81 #define DBG_GET_DBG_STR11(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 0, 8)
82 #define DBG_SET_DBG_STR11(__c2h, __value) \
83 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 0, 8, __value)
84 #define DBG_GET_DBG_STR12(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 8, 8)
85 #define DBG_SET_DBG_STR12(__c2h, __value) \
86 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 8, 8, __value)
87 #define DBG_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
88 #define DBG_SET_LEN(__c2h, __value) \
89 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
90 #define DBG_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
91 #define DBG_SET_TRIGGER(__c2h, __value) \
92 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
93 #define C2H_LB_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
94 #define C2H_LB_SET_CMD_ID(__c2h, __value) \
95 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
96 #define C2H_LB_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
97 #define C2H_LB_SET_SEQ(__c2h, __value) \
98 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
99 #define C2H_LB_GET_PAYLOAD1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 16)
100 #define C2H_LB_SET_PAYLOAD1(__c2h, __value) \
101 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 16, __value)
102 #define C2H_LB_GET_PAYLOAD2(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 32)
103 #define C2H_LB_SET_PAYLOAD2(__c2h, __value) \
104 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 32, __value)
105 #define C2H_LB_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
106 #define C2H_LB_SET_LEN(__c2h, __value) \
107 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
108 #define C2H_LB_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
109 #define C2H_LB_SET_TRIGGER(__c2h, __value) \
110 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
111 #define C2H_SND_TXBF_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
112 #define C2H_SND_TXBF_SET_CMD_ID(__c2h, __value) \
113 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
114 #define C2H_SND_TXBF_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
115 #define C2H_SND_TXBF_SET_SEQ(__c2h, __value) \
116 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
117 #define C2H_SND_TXBF_GET_SND_RESULT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 1)
118 #define C2H_SND_TXBF_SET_SND_RESULT(__c2h, __value) \
119 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 1, __value)
120 #define C2H_SND_TXBF_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
121 #define C2H_SND_TXBF_SET_LEN(__c2h, __value) \
122 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
123 #define C2H_SND_TXBF_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
124 #define C2H_SND_TXBF_SET_TRIGGER(__c2h, __value) \
125 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
126 #define C2H_CCX_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
127 #define C2H_CCX_RPT_SET_CMD_ID(__c2h, __value) \
128 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
129 #define C2H_CCX_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
130 #define C2H_CCX_RPT_SET_SEQ(__c2h, __value) \
131 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
132 #define C2H_CCX_RPT_GET_QSEL(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 5)
133 #define C2H_CCX_RPT_SET_QSEL(__c2h, __value) \
134 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 5, __value)
135 #define C2H_CCX_RPT_GET_BMC(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 21, 1)
136 #define C2H_CCX_RPT_SET_BMC(__c2h, __value) \
137 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 21, 1, __value)
138 #define C2H_CCX_RPT_GET_LIFE_TIME_OVER(__c2h) \
139 LE_BITS_TO_4BYTE(__c2h + 0X00, 22, 1)
140 #define C2H_CCX_RPT_SET_LIFE_TIME_OVER(__c2h, __value) \
141 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 22, 1, __value)
142 #define C2H_CCX_RPT_GET_RETRY_OVER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 23, 1)
143 #define C2H_CCX_RPT_SET_RETRY_OVER(__c2h, __value) \
144 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 23, 1, __value)
145 #define C2H_CCX_RPT_GET_MACID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
146 #define C2H_CCX_RPT_SET_MACID(__c2h, __value) \
147 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
148 #define C2H_CCX_RPT_GET_DATA_RETRY_CNT(__c2h) \
149 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 6)
150 #define C2H_CCX_RPT_SET_DATA_RETRY_CNT(__c2h, __value) \
151 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 6, __value)
152 #define C2H_CCX_RPT_GET_QUEUE7_0(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
153 #define C2H_CCX_RPT_SET_QUEUE7_0(__c2h, __value) \
154 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
155 #define C2H_CCX_RPT_GET_QUEUE15_8(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
156 #define C2H_CCX_RPT_SET_QUEUE15_8(__c2h, __value) \
157 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
158 #define C2H_CCX_RPT_GET_FINAL_DATA_RATE(__c2h) \
159 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
160 #define C2H_CCX_RPT_SET_FINAL_DATA_RATE(__c2h, __value) \
161 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
162 #define C2H_CCX_RPT_GET_SW_DEFINE_0(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
163 #define C2H_CCX_RPT_SET_SW_DEFINE_0(__c2h, __value) \
164 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
165 #define C2H_CCX_RPT_GET_SW_DEFINE_1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 4)
166 #define C2H_CCX_RPT_SET_SW_DEFINE_1(__c2h, __value) \
167 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 4, __value)
168 #define C2H_CCX_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
169 #define C2H_CCX_RPT_SET_LEN(__c2h, __value) \
170 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
171 #define C2H_CCX_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
172 #define C2H_CCX_RPT_SET_TRIGGER(__c2h, __value) \
173 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
174 #define C2H_AP_REQ_TXRPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
175 #define C2H_AP_REQ_TXRPT_SET_CMD_ID(__c2h, __value) \
176 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
177 #define C2H_AP_REQ_TXRPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
178 #define C2H_AP_REQ_TXRPT_SET_SEQ(__c2h, __value) \
179 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
180 #define C2H_AP_REQ_TXRPT_GET_STA1_MACID(__c2h) \
181 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
182 #define C2H_AP_REQ_TXRPT_SET_STA1_MACID(__c2h, __value) \
183 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
184 #define C2H_AP_REQ_TXRPT_GET_TX_OK1_0(__c2h) \
185 LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
186 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_0(__c2h, __value) \
187 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
188 #define C2H_AP_REQ_TXRPT_GET_TX_OK1_1(__c2h) \
189 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
190 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_1(__c2h, __value) \
191 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
192 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_0(__c2h) \
193 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
194 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_0(__c2h, __value) \
195 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
196 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_1(__c2h) \
197 LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
198 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_1(__c2h, __value) \
199 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
200 #define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE1(__c2h) \
201 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
202 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE1(__c2h, __value) \
203 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
204 #define C2H_AP_REQ_TXRPT_GET_STA2_MACID(__c2h) \
205 LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
206 #define C2H_AP_REQ_TXRPT_SET_STA2_MACID(__c2h, __value) \
207 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
208 #define C2H_AP_REQ_TXRPT_GET_TX_OK2_0(__c2h) \
209 LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
210 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_0(__c2h, __value) \
211 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
212 #define C2H_AP_REQ_TXRPT_GET_TX_OK2_1(__c2h) \
213 LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8)
214 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_1(__c2h, __value) \
215 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value)
216 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_0(__c2h) \
217 LE_BITS_TO_4BYTE(__c2h + 0X08, 24, 8)
218 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_0(__c2h, __value) \
219 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 24, 8, __value)
220 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_1(__c2h) \
221 LE_BITS_TO_4BYTE(__c2h + 0X0C, 0, 8)
222 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_1(__c2h, __value) \
223 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 0, 8, __value)
224 #define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE2(__c2h) \
225 LE_BITS_TO_4BYTE(__c2h + 0X0C, 8, 8)
226 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE2(__c2h, __value) \
227 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 8, 8, __value)
228 #define C2H_AP_REQ_TXRPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
229 #define C2H_AP_REQ_TXRPT_SET_LEN(__c2h, __value) \
230 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
231 #define C2H_AP_REQ_TXRPT_GET_TRIGGER(__c2h) \
232 LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
233 #define C2H_AP_REQ_TXRPT_SET_TRIGGER(__c2h, __value) \
234 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
235 #define C2H_INITIAL_RATE_COLLECTION_GET_CMD_ID(__c2h) \
236 LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
237 #define C2H_INITIAL_RATE_COLLECTION_SET_CMD_ID(__c2h, __value) \
238 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
239 #define C2H_INITIAL_RATE_COLLECTION_GET_SEQ(__c2h) \
240 LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
241 #define C2H_INITIAL_RATE_COLLECTION_SET_SEQ(__c2h, __value) \
242 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
243 #define C2H_INITIAL_RATE_COLLECTION_GET_TRYING_BITMAP(__c2h) \
244 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 7)
245 #define C2H_INITIAL_RATE_COLLECTION_SET_TRYING_BITMAP(__c2h, __value) \
246 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 7, __value)
247 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE1(__c2h) \
248 LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
249 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE1(__c2h, __value) \
250 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
251 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE2(__c2h) \
252 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
253 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE2(__c2h, __value) \
254 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
255 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE3(__c2h) \
256 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
257 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE3(__c2h, __value) \
258 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
259 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE4(__c2h) \
260 LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
261 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE4(__c2h, __value) \
262 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
263 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE5(__c2h) \
264 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
265 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE5(__c2h, __value) \
266 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
267 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE6(__c2h) \
268 LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
269 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE6(__c2h, __value) \
270 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
271 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE7(__c2h) \
272 LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
273 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE7(__c2h, __value) \
274 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
275 #define C2H_INITIAL_RATE_COLLECTION_GET_LEN(__c2h) \
276 LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
277 #define C2H_INITIAL_RATE_COLLECTION_SET_LEN(__c2h, __value) \
278 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
279 #define C2H_INITIAL_RATE_COLLECTION_GET_TRIGGER(__c2h) \
280 LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
281 #define C2H_INITIAL_RATE_COLLECTION_SET_TRIGGER(__c2h, __value) \
282 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
283 #define C2H_RA_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
284 #define C2H_RA_RPT_SET_CMD_ID(__c2h, __value) \
285 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
286 #define C2H_RA_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
287 #define C2H_RA_RPT_SET_SEQ(__c2h, __value) \
288 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
289 #define C2H_RA_RPT_GET_RATE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
290 #define C2H_RA_RPT_SET_RATE(__c2h, __value) \
291 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
292 #define C2H_RA_RPT_GET_MACID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
293 #define C2H_RA_RPT_SET_MACID(__c2h, __value) \
294 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
295 #define C2H_RA_RPT_GET_USE_LDPC(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 1)
296 #define C2H_RA_RPT_SET_USE_LDPC(__c2h, __value) \
297 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 1, __value)
298 #define C2H_RA_RPT_GET_USE_TXBF(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 1, 1)
299 #define C2H_RA_RPT_SET_USE_TXBF(__c2h, __value) \
300 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 1, 1, __value)
301 #define C2H_RA_RPT_GET_COLLISION_STATE(__c2h) \
302 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
303 #define C2H_RA_RPT_SET_COLLISION_STATE(__c2h, __value) \
304 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
305 #define C2H_RA_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
306 #define C2H_RA_RPT_SET_LEN(__c2h, __value) \
307 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
308 #define C2H_RA_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
309 #define C2H_RA_RPT_SET_TRIGGER(__c2h, __value) \
310 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
311 #define C2H_SPECIAL_STATISTICS_GET_CMD_ID(__c2h) \
312 LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
313 #define C2H_SPECIAL_STATISTICS_SET_CMD_ID(__c2h, __value) \
314 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
315 #define C2H_SPECIAL_STATISTICS_GET_SEQ(__c2h) \
316 LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
317 #define C2H_SPECIAL_STATISTICS_SET_SEQ(__c2h, __value) \
318 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
319 #define C2H_SPECIAL_STATISTICS_GET_STATISTICS_IDX(__c2h) \
320 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
321 #define C2H_SPECIAL_STATISTICS_SET_STATISTICS_IDX(__c2h, __value) \
322 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
323 #define C2H_SPECIAL_STATISTICS_GET_DATA0(__c2h) \
324 LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8)
325 #define C2H_SPECIAL_STATISTICS_SET_DATA0(__c2h, __value) \
326 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value)
327 #define C2H_SPECIAL_STATISTICS_GET_DATA1(__c2h) \
328 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8)
329 #define C2H_SPECIAL_STATISTICS_SET_DATA1(__c2h, __value) \
330 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value)
331 #define C2H_SPECIAL_STATISTICS_GET_DATA2(__c2h) \
332 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8)
333 #define C2H_SPECIAL_STATISTICS_SET_DATA2(__c2h, __value) \
334 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value)
335 #define C2H_SPECIAL_STATISTICS_GET_DATA3(__c2h) \
336 LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8)
337 #define C2H_SPECIAL_STATISTICS_SET_DATA3(__c2h, __value) \
338 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value)
339 #define C2H_SPECIAL_STATISTICS_GET_DATA4(__c2h) \
340 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8)
341 #define C2H_SPECIAL_STATISTICS_SET_DATA4(__c2h, __value) \
342 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value)
343 #define C2H_SPECIAL_STATISTICS_GET_DATA5(__c2h) \
344 LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8)
345 #define C2H_SPECIAL_STATISTICS_SET_DATA5(__c2h, __value) \
346 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value)
347 #define C2H_SPECIAL_STATISTICS_GET_DATA6(__c2h) \
348 LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8)
349 #define C2H_SPECIAL_STATISTICS_SET_DATA6(__c2h, __value) \
350 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value)
351 #define C2H_SPECIAL_STATISTICS_GET_DATA7(__c2h) \
352 LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8)
353 #define C2H_SPECIAL_STATISTICS_SET_DATA7(__c2h, __value) \
354 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value)
355 #define C2H_SPECIAL_STATISTICS_GET_LEN(__c2h) \
356 LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
357 #define C2H_SPECIAL_STATISTICS_SET_LEN(__c2h, __value) \
358 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
359 #define C2H_SPECIAL_STATISTICS_GET_TRIGGER(__c2h) \
360 LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
361 #define C2H_SPECIAL_STATISTICS_SET_TRIGGER(__c2h, __value) \
362 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
363 #define C2H_RA_PARA_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
364 #define C2H_RA_PARA_RPT_SET_CMD_ID(__c2h, __value) \
365 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
366 #define C2H_RA_PARA_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
367 #define C2H_RA_PARA_RPT_SET_SEQ(__c2h, __value) \
368 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
369 #define C2H_RA_PARA_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
370 #define C2H_RA_PARA_RPT_SET_LEN(__c2h, __value) \
371 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
372 #define C2H_RA_PARA_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
373 #define C2H_RA_PARA_RPT_SET_TRIGGER(__c2h, __value) \
374 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
375 #define C2H_CUR_CHANNEL_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
376 #define C2H_CUR_CHANNEL_SET_CMD_ID(__c2h, __value) \
377 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
378 #define C2H_CUR_CHANNEL_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
379 #define C2H_CUR_CHANNEL_SET_SEQ(__c2h, __value) \
380 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
381 #define C2H_CUR_CHANNEL_GET_CHANNEL_NUM(__c2h) \
382 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8)
383 #define C2H_CUR_CHANNEL_SET_CHANNEL_NUM(__c2h, __value) \
384 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value)
385 #define C2H_CUR_CHANNEL_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
386 #define C2H_CUR_CHANNEL_SET_LEN(__c2h, __value) \
387 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
388 #define C2H_CUR_CHANNEL_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
389 #define C2H_CUR_CHANNEL_SET_TRIGGER(__c2h, __value) \
390 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)
391 #define C2H_GPIO_WAKEUP_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8)
392 #define C2H_GPIO_WAKEUP_SET_CMD_ID(__c2h, __value) \
393 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value)
394 #define C2H_GPIO_WAKEUP_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8)
395 #define C2H_GPIO_WAKEUP_SET_SEQ(__c2h, __value) \
396 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value)
397 #define C2H_GPIO_WAKEUP_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8)
398 #define C2H_GPIO_WAKEUP_SET_LEN(__c2h, __value) \
399 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value)
400 #define C2H_GPIO_WAKEUP_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8)
401 #define C2H_GPIO_WAKEUP_SET_TRIGGER(__c2h, __value) \
402 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value)