OSDN Git Service

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