1 /******************************************************************************
3 * Copyright(c) 2016 - 2018 Realtek Corporation. All rights reserved.
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 ******************************************************************************/
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)