1 /****************************************************************************** 2 * 3 * Copyright(c) 2016 - 2019 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_FWOFFLOADH2CFORMAT_H2C_C2H_AP_H_ 17 #define _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_AP_H_ 18 #define CMD_ID_FW_OFFLOAD_H2C 0XFF 19 #define CMD_ID_FW_ACCESS_TEST 0XFF 20 #define CMD_ID_CH_SWITCH 0XFF 21 #define CMD_ID_DUMP_PHYSICAL_EFUSE 0XFF 22 #define CMD_ID_UPDATE_BEACON_PARSING_INFO 0XFF 23 #define CMD_ID_CFG_PARAM 0XFF 24 #define CMD_ID_UPDATE_DATAPACK 0XFF 25 #define CMD_ID_RUN_DATAPACK 0XFF 26 #define CMD_ID_DOWNLOAD_FLASH 0XFF 27 #define CMD_ID_UPDATE_PKT 0XFF 28 #define CMD_ID_GENERAL_INFO 0XFF 29 #define CMD_ID_IQK 0XFF 30 #define CMD_ID_PWR_TRK 0XFF 31 #define CMD_ID_PSD 0XFF 32 #define CMD_ID_PHYDM_INFO 0XFF 33 #define CMD_ID_FW_SNDING 0XFF 34 #define CMD_ID_FW_FWCTRL 0XFF 35 #define CMD_ID_H2C_LOOPBACK 0XFF 36 #define CMD_ID_FWCMD_LOOPBACK 0XFF 37 #define CMD_ID_SEND_SCAN_PKT 0XFF 38 #define CMD_ID_BCN_OFFLOAD 0XFF 39 #define CMD_ID_DROP_SCAN_PKT 0XFF 40 #define CMD_ID_P2PPS 0XFF 41 #define CMD_ID_BT_COEX 0XFF 42 #define CMD_ID_ACT_SCHEDULE_REQ 0XFF 43 #define CMD_ID_NAN_CTRL 0XFF 44 #define CMD_ID_NAN_CHANNEL_PLAN_0 0XFF 45 #define CMD_ID_NAN_CHANNEL_PLAN_1 0XFF 46 #define CMD_ID_NAN_FUNC_CTRL 0XFF 47 #define CMD_ID_DPK 0XFF 48 #define CATEGORY_H2C_CMD_HEADER 0X00 49 #define CATEGORY_FW_OFFLOAD_H2C 0X01 50 #define CATEGORY_FW_ACCESS_TEST 0X01 51 #define CATEGORY_CH_SWITCH 0X01 52 #define CATEGORY_DUMP_PHYSICAL_EFUSE 0X01 53 #define CATEGORY_UPDATE_BEACON_PARSING_INFO 0X01 54 #define CATEGORY_CFG_PARAM 0X01 55 #define CATEGORY_UPDATE_DATAPACK 0X01 56 #define CATEGORY_RUN_DATAPACK 0X01 57 #define CATEGORY_DOWNLOAD_FLASH 0X01 58 #define CATEGORY_UPDATE_PKT 0X01 59 #define CATEGORY_GENERAL_INFO 0X01 60 #define CATEGORY_IQK 0X01 61 #define CATEGORY_PWR_TRK 0X01 62 #define CATEGORY_PSD 0X01 63 #define CATEGORY_PHYDM_INFO 0X01 64 #define CATEGORY_FW_SNDING 0X01 65 #define CATEGORY_FW_FWCTRL 0X01 66 #define CATEGORY_H2C_LOOPBACK 0X01 67 #define CATEGORY_FWCMD_LOOPBACK 0X01 68 #define CATEGORY_SEND_SCAN_PKT 0X01 69 #define CATEGORY_BCN_OFFLOAD 0X01 70 #define CATEGORY_DROP_SCAN_PKT 0X01 71 #define CATEGORY_P2PPS 0X01 72 #define CATEGORY_BT_COEX 0X01 73 #define CATEGORY_ACT_SCHEDULE_REQ 0X01 74 #define CATEGORY_NAN_CTRL 0X01 75 #define CATEGORY_NAN_CHANNEL_PLAN_0 0X01 76 #define CATEGORY_NAN_CHANNEL_PLAN_1 0X01 77 #define CATEGORY_NAN_FUNC_CTRL 0X01 78 #define CATEGORY_DPK 0X01 79 #define SUB_CMD_ID_FW_ACCESS_TEST 0X00 80 #define SUB_CMD_ID_CH_SWITCH 0X02 81 #define SUB_CMD_ID_DUMP_PHYSICAL_EFUSE 0X03 82 #define SUB_CMD_ID_UPDATE_BEACON_PARSING_INFO 0X05 83 #define SUB_CMD_ID_CFG_PARAM 0X08 84 #define SUB_CMD_ID_UPDATE_DATAPACK 0X09 85 #define SUB_CMD_ID_RUN_DATAPACK 0X0A 86 #define SUB_CMD_ID_DOWNLOAD_FLASH 0X0B 87 #define SUB_CMD_ID_UPDATE_PKT 0X0C 88 #define SUB_CMD_ID_GENERAL_INFO 0X0D 89 #define SUB_CMD_ID_IQK 0X0E 90 #define SUB_CMD_ID_PWR_TRK 0X0F 91 #define SUB_CMD_ID_PSD 0X10 92 #define SUB_CMD_ID_PHYDM_INFO 0X11 93 #define SUB_CMD_ID_FW_SNDING 0X12 94 #define SUB_CMD_ID_FW_FWCTRL 0X13 95 #define SUB_CMD_ID_H2C_LOOPBACK 0X14 96 #define SUB_CMD_ID_FWCMD_LOOPBACK 0X15 97 #define SUB_CMD_ID_SEND_SCAN_PKT 0X16 98 #define SUB_CMD_ID_BCN_OFFLOAD 0X17 99 #define SUB_CMD_ID_DROP_SCAN_PKT 0X18 100 #define SUB_CMD_ID_P2PPS 0X24 101 #define SUB_CMD_ID_BT_COEX 0X60 102 #define SUB_CMD_ID_ACT_SCHEDULE_REQ 0X70 103 #define SUB_CMD_ID_NAN_CTRL 0XB2 104 #define SUB_CMD_ID_NAN_CHANNEL_PLAN_0 0XB4 105 #define SUB_CMD_ID_NAN_CHANNEL_PLAN_1 0XB5 106 #define SUB_CMD_ID_NAN_FUNC_CTRL 0XB6 107 #define SUB_CMD_ID_DPK 0XB7 108 #define H2C_CMD_HEADER_GET_CATEGORY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 7) 109 #define H2C_CMD_HEADER_SET_CATEGORY(h2c_pkt, value) \ 110 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 7, value) 111 #define H2C_CMD_HEADER_SET_CATEGORY_NO_CLR(h2c_pkt, value) \ 112 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 7, value) 113 #define H2C_CMD_HEADER_GET_ACK(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 7, 1) 114 #define H2C_CMD_HEADER_SET_ACK(h2c_pkt, value) \ 115 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 7, 1, value) 116 #define H2C_CMD_HEADER_SET_ACK_NO_CLR(h2c_pkt, value) \ 117 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 7, 1, value) 118 #define H2C_CMD_HEADER_GET_TOTAL_LEN(h2c_pkt) \ 119 GET_H2C_FIELD(h2c_pkt + 0X04, 0, 16) 120 #define H2C_CMD_HEADER_SET_TOTAL_LEN(h2c_pkt, value) \ 121 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 16, value) 122 #define H2C_CMD_HEADER_SET_TOTAL_LEN_NO_CLR(h2c_pkt, value) \ 123 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 16, value) 124 #define H2C_CMD_HEADER_GET_SEQ_NUM(h2c_pkt) \ 125 GET_H2C_FIELD(h2c_pkt + 0X04, 16, 16) 126 #define H2C_CMD_HEADER_SET_SEQ_NUM(h2c_pkt, value) \ 127 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 16, value) 128 #define H2C_CMD_HEADER_SET_SEQ_NUM_NO_CLR(h2c_pkt, value) \ 129 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 16, value) 130 #define FW_OFFLOAD_H2C_GET_CATEGORY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 7) 131 #define FW_OFFLOAD_H2C_SET_CATEGORY(h2c_pkt, value) \ 132 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 7, value) 133 #define FW_OFFLOAD_H2C_SET_CATEGORY_NO_CLR(h2c_pkt, value) \ 134 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 7, value) 135 #define FW_OFFLOAD_H2C_GET_ACK(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 7, 1) 136 #define FW_OFFLOAD_H2C_SET_ACK(h2c_pkt, value) \ 137 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 7, 1, value) 138 #define FW_OFFLOAD_H2C_SET_ACK_NO_CLR(h2c_pkt, value) \ 139 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 7, 1, value) 140 #define FW_OFFLOAD_H2C_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8) 141 #define FW_OFFLOAD_H2C_SET_CMD_ID(h2c_pkt, value) \ 142 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value) 143 #define FW_OFFLOAD_H2C_SET_CMD_ID_NO_CLR(h2c_pkt, value) \ 144 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value) 145 #define FW_OFFLOAD_H2C_GET_SUB_CMD_ID(h2c_pkt) \ 146 GET_H2C_FIELD(h2c_pkt + 0X00, 16, 16) 147 #define FW_OFFLOAD_H2C_SET_SUB_CMD_ID(h2c_pkt, value) \ 148 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 16, value) 149 #define FW_OFFLOAD_H2C_SET_SUB_CMD_ID_NO_CLR(h2c_pkt, value) \ 150 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 16, value) 151 #define FW_OFFLOAD_H2C_GET_TOTAL_LEN(h2c_pkt) \ 152 GET_H2C_FIELD(h2c_pkt + 0X04, 0, 16) 153 #define FW_OFFLOAD_H2C_SET_TOTAL_LEN(h2c_pkt, value) \ 154 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 16, value) 155 #define FW_OFFLOAD_H2C_SET_TOTAL_LEN_NO_CLR(h2c_pkt, value) \ 156 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 16, value) 157 #define FW_OFFLOAD_H2C_GET_SEQ_NUM(h2c_pkt) \ 158 GET_H2C_FIELD(h2c_pkt + 0X04, 16, 16) 159 #define FW_OFFLOAD_H2C_SET_SEQ_NUM(h2c_pkt, value) \ 160 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 16, value) 161 #define FW_OFFLOAD_H2C_SET_SEQ_NUM_NO_CLR(h2c_pkt, value) \ 162 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 16, value) 163 #define FW_ACCESS_TEST_GET_ACCESS_TXFF(h2c_pkt) \ 164 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 165 #define FW_ACCESS_TEST_SET_ACCESS_TXFF(h2c_pkt, value) \ 166 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 167 #define FW_ACCESS_TEST_SET_ACCESS_TXFF_NO_CLR(h2c_pkt, value) \ 168 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 169 #define FW_ACCESS_TEST_GET_ACCESS_RXFF(h2c_pkt) \ 170 GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 171 #define FW_ACCESS_TEST_SET_ACCESS_RXFF(h2c_pkt, value) \ 172 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 173 #define FW_ACCESS_TEST_SET_ACCESS_RXFF_NO_CLR(h2c_pkt, value) \ 174 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 175 #define FW_ACCESS_TEST_GET_ACCESS_FWFF(h2c_pkt) \ 176 GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 177 #define FW_ACCESS_TEST_SET_ACCESS_FWFF(h2c_pkt, value) \ 178 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 179 #define FW_ACCESS_TEST_SET_ACCESS_FWFF_NO_CLR(h2c_pkt, value) \ 180 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 181 #define FW_ACCESS_TEST_GET_ACCESS_PHYFF(h2c_pkt) \ 182 GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1) 183 #define FW_ACCESS_TEST_SET_ACCESS_PHYFF(h2c_pkt, value) \ 184 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value) 185 #define FW_ACCESS_TEST_SET_ACCESS_PHYFF_NO_CLR(h2c_pkt, value) \ 186 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value) 187 #define FW_ACCESS_TEST_GET_ACCESS_RPT_BUF(h2c_pkt) \ 188 GET_H2C_FIELD(h2c_pkt + 0X08, 4, 1) 189 #define FW_ACCESS_TEST_SET_ACCESS_RPT_BUF(h2c_pkt, value) \ 190 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 4, 1, value) 191 #define FW_ACCESS_TEST_SET_ACCESS_RPT_BUF_NO_CLR(h2c_pkt, value) \ 192 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 4, 1, value) 193 #define FW_ACCESS_TEST_GET_ACCESS_CAM(h2c_pkt) \ 194 GET_H2C_FIELD(h2c_pkt + 0X08, 5, 1) 195 #define FW_ACCESS_TEST_SET_ACCESS_CAM(h2c_pkt, value) \ 196 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 5, 1, value) 197 #define FW_ACCESS_TEST_SET_ACCESS_CAM_NO_CLR(h2c_pkt, value) \ 198 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 5, 1, value) 199 #define FW_ACCESS_TEST_GET_ACCESS_WOW_CAM(h2c_pkt) \ 200 GET_H2C_FIELD(h2c_pkt + 0X08, 6, 1) 201 #define FW_ACCESS_TEST_SET_ACCESS_WOW_CAM(h2c_pkt, value) \ 202 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 6, 1, value) 203 #define FW_ACCESS_TEST_SET_ACCESS_WOW_CAM_NO_CLR(h2c_pkt, value) \ 204 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 6, 1, value) 205 #define FW_ACCESS_TEST_GET_ACCESS_RX_CAM(h2c_pkt) \ 206 GET_H2C_FIELD(h2c_pkt + 0X08, 7, 1) 207 #define FW_ACCESS_TEST_SET_ACCESS_RX_CAM(h2c_pkt, value) \ 208 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 7, 1, value) 209 #define FW_ACCESS_TEST_SET_ACCESS_RX_CAM_NO_CLR(h2c_pkt, value) \ 210 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 7, 1, value) 211 #define FW_ACCESS_TEST_GET_ACCESS_BA_CAM(h2c_pkt) \ 212 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 1) 213 #define FW_ACCESS_TEST_SET_ACCESS_BA_CAM(h2c_pkt, value) \ 214 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 1, value) 215 #define FW_ACCESS_TEST_SET_ACCESS_BA_CAM_NO_CLR(h2c_pkt, value) \ 216 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 1, value) 217 #define FW_ACCESS_TEST_GET_ACCESS_MBSSID_CAM(h2c_pkt) \ 218 GET_H2C_FIELD(h2c_pkt + 0X08, 9, 1) 219 #define FW_ACCESS_TEST_SET_ACCESS_MBSSID_CAM(h2c_pkt, value) \ 220 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 9, 1, value) 221 #define FW_ACCESS_TEST_SET_ACCESS_MBSSID_CAM_NO_CLR(h2c_pkt, value) \ 222 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 9, 1, value) 223 #define FW_ACCESS_TEST_GET_ACCESS_PAGE0(h2c_pkt) \ 224 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 1) 225 #define FW_ACCESS_TEST_SET_ACCESS_PAGE0(h2c_pkt, value) \ 226 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 1, value) 227 #define FW_ACCESS_TEST_SET_ACCESS_PAGE0_NO_CLR(h2c_pkt, value) \ 228 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 1, value) 229 #define FW_ACCESS_TEST_GET_ACCESS_PAGE1(h2c_pkt) \ 230 GET_H2C_FIELD(h2c_pkt + 0X08, 17, 1) 231 #define FW_ACCESS_TEST_SET_ACCESS_PAGE1(h2c_pkt, value) \ 232 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 17, 1, value) 233 #define FW_ACCESS_TEST_SET_ACCESS_PAGE1_NO_CLR(h2c_pkt, value) \ 234 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 17, 1, value) 235 #define FW_ACCESS_TEST_GET_ACCESS_PAGE2(h2c_pkt) \ 236 GET_H2C_FIELD(h2c_pkt + 0X08, 18, 1) 237 #define FW_ACCESS_TEST_SET_ACCESS_PAGE2(h2c_pkt, value) \ 238 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 18, 1, value) 239 #define FW_ACCESS_TEST_SET_ACCESS_PAGE2_NO_CLR(h2c_pkt, value) \ 240 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 18, 1, value) 241 #define FW_ACCESS_TEST_GET_ACCESS_PAGE3(h2c_pkt) \ 242 GET_H2C_FIELD(h2c_pkt + 0X08, 19, 1) 243 #define FW_ACCESS_TEST_SET_ACCESS_PAGE3(h2c_pkt, value) \ 244 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 19, 1, value) 245 #define FW_ACCESS_TEST_SET_ACCESS_PAGE3_NO_CLR(h2c_pkt, value) \ 246 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 19, 1, value) 247 #define FW_ACCESS_TEST_GET_ACCESS_PAGE4(h2c_pkt) \ 248 GET_H2C_FIELD(h2c_pkt + 0X08, 20, 1) 249 #define FW_ACCESS_TEST_SET_ACCESS_PAGE4(h2c_pkt, value) \ 250 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 20, 1, value) 251 #define FW_ACCESS_TEST_SET_ACCESS_PAGE4_NO_CLR(h2c_pkt, value) \ 252 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 20, 1, value) 253 #define FW_ACCESS_TEST_GET_ACCESS_PAGE5(h2c_pkt) \ 254 GET_H2C_FIELD(h2c_pkt + 0X08, 21, 1) 255 #define FW_ACCESS_TEST_SET_ACCESS_PAGE5(h2c_pkt, value) \ 256 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 21, 1, value) 257 #define FW_ACCESS_TEST_SET_ACCESS_PAGE5_NO_CLR(h2c_pkt, value) \ 258 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 21, 1, value) 259 #define FW_ACCESS_TEST_GET_ACCESS_PAGE6(h2c_pkt) \ 260 GET_H2C_FIELD(h2c_pkt + 0X08, 22, 1) 261 #define FW_ACCESS_TEST_SET_ACCESS_PAGE6(h2c_pkt, value) \ 262 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 22, 1, value) 263 #define FW_ACCESS_TEST_SET_ACCESS_PAGE6_NO_CLR(h2c_pkt, value) \ 264 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 22, 1, value) 265 #define FW_ACCESS_TEST_GET_ACCESS_PAGE7(h2c_pkt) \ 266 GET_H2C_FIELD(h2c_pkt + 0X08, 23, 1) 267 #define FW_ACCESS_TEST_SET_ACCESS_PAGE7(h2c_pkt, value) \ 268 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 23, 1, value) 269 #define FW_ACCESS_TEST_SET_ACCESS_PAGE7_NO_CLR(h2c_pkt, value) \ 270 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 23, 1, value) 271 #define CH_SWITCH_GET_START(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 272 #define CH_SWITCH_SET_START(h2c_pkt, value) \ 273 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 274 #define CH_SWITCH_SET_START_NO_CLR(h2c_pkt, value) \ 275 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 276 #define CH_SWITCH_GET_DEST_CH_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 277 #define CH_SWITCH_SET_DEST_CH_EN(h2c_pkt, value) \ 278 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 279 #define CH_SWITCH_SET_DEST_CH_EN_NO_CLR(h2c_pkt, value) \ 280 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 281 #define CH_SWITCH_GET_ABSOLUTE_TIME(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 282 #define CH_SWITCH_SET_ABSOLUTE_TIME(h2c_pkt, value) \ 283 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 284 #define CH_SWITCH_SET_ABSOLUTE_TIME_NO_CLR(h2c_pkt, value) \ 285 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 286 #define CH_SWITCH_GET_PERIODIC_OPT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 3, 2) 287 #define CH_SWITCH_SET_PERIODIC_OPT(h2c_pkt, value) \ 288 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 2, value) 289 #define CH_SWITCH_SET_PERIODIC_OPT_NO_CLR(h2c_pkt, value) \ 290 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 2, value) 291 #define CH_SWITCH_GET_SCAN_MODE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 5, 1) 292 #define CH_SWITCH_SET_SCAN_MODE(h2c_pkt, value) \ 293 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 5, 1, value) 294 #define CH_SWITCH_SET_SCAN_MODE_NO_CLR(h2c_pkt, value) \ 295 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 5, 1, value) 296 #define CH_SWITCH_GET_INFO_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 297 #define CH_SWITCH_SET_INFO_LOC(h2c_pkt, value) \ 298 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 299 #define CH_SWITCH_SET_INFO_LOC_NO_CLR(h2c_pkt, value) \ 300 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 301 #define CH_SWITCH_GET_CH_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 302 #define CH_SWITCH_SET_CH_NUM(h2c_pkt, value) \ 303 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 304 #define CH_SWITCH_SET_CH_NUM_NO_CLR(h2c_pkt, value) \ 305 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 306 #define CH_SWITCH_GET_PRI_CH_IDX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 4) 307 #define CH_SWITCH_SET_PRI_CH_IDX(h2c_pkt, value) \ 308 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 4, value) 309 #define CH_SWITCH_SET_PRI_CH_IDX_NO_CLR(h2c_pkt, value) \ 310 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 4, value) 311 #define CH_SWITCH_GET_DEST_BW(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 28, 4) 312 #define CH_SWITCH_SET_DEST_BW(h2c_pkt, value) \ 313 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 28, 4, value) 314 #define CH_SWITCH_SET_DEST_BW_NO_CLR(h2c_pkt, value) \ 315 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 28, 4, value) 316 #define CH_SWITCH_GET_DEST_CH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 317 #define CH_SWITCH_SET_DEST_CH(h2c_pkt, value) \ 318 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 319 #define CH_SWITCH_SET_DEST_CH_NO_CLR(h2c_pkt, value) \ 320 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 321 #define CH_SWITCH_GET_NORMAL_PERIOD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 6) 322 #define CH_SWITCH_SET_NORMAL_PERIOD(h2c_pkt, value) \ 323 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 6, value) 324 #define CH_SWITCH_SET_NORMAL_PERIOD_NO_CLR(h2c_pkt, value) \ 325 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 6, value) 326 #define CH_SWITCH_GET_NORMAL_PERIOD_SEL(h2c_pkt) \ 327 GET_H2C_FIELD(h2c_pkt + 0X0C, 14, 2) 328 #define CH_SWITCH_SET_NORMAL_PERIOD_SEL(h2c_pkt, value) \ 329 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 14, 2, value) 330 #define CH_SWITCH_SET_NORMAL_PERIOD_SEL_NO_CLR(h2c_pkt, value) \ 331 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 14, 2, value) 332 #define CH_SWITCH_GET_SLOW_PERIOD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 6) 333 #define CH_SWITCH_SET_SLOW_PERIOD(h2c_pkt, value) \ 334 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 6, value) 335 #define CH_SWITCH_SET_SLOW_PERIOD_NO_CLR(h2c_pkt, value) \ 336 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 6, value) 337 #define CH_SWITCH_GET_SLOW_PERIOD_SEL(h2c_pkt) \ 338 GET_H2C_FIELD(h2c_pkt + 0X0C, 22, 2) 339 #define CH_SWITCH_SET_SLOW_PERIOD_SEL(h2c_pkt, value) \ 340 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 22, 2, value) 341 #define CH_SWITCH_SET_SLOW_PERIOD_SEL_NO_CLR(h2c_pkt, value) \ 342 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 22, 2, value) 343 #define CH_SWITCH_GET_NORMAL_CYCLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 24, 8) 344 #define CH_SWITCH_SET_NORMAL_CYCLE(h2c_pkt, value) \ 345 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 24, 8, value) 346 #define CH_SWITCH_SET_NORMAL_CYCLE_NO_CLR(h2c_pkt, value) \ 347 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 24, 8, value) 348 #define CH_SWITCH_GET_TSF_HIGH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32) 349 #define CH_SWITCH_SET_TSF_HIGH(h2c_pkt, value) \ 350 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value) 351 #define CH_SWITCH_SET_TSF_HIGH_NO_CLR(h2c_pkt, value) \ 352 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value) 353 #define CH_SWITCH_GET_TSF_LOW(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32) 354 #define CH_SWITCH_SET_TSF_LOW(h2c_pkt, value) \ 355 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value) 356 #define CH_SWITCH_SET_TSF_LOW_NO_CLR(h2c_pkt, value) \ 357 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value) 358 #define CH_SWITCH_GET_INFO_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 0, 16) 359 #define CH_SWITCH_SET_INFO_SIZE(h2c_pkt, value) \ 360 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 16, value) 361 #define CH_SWITCH_SET_INFO_SIZE_NO_CLR(h2c_pkt, value) \ 362 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 16, value) 363 #define UPDATE_BEACON_PARSING_INFO_GET_FUNC_EN(h2c_pkt) \ 364 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 365 #define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(h2c_pkt, value) \ 366 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 367 #define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN_NO_CLR(h2c_pkt, value) \ 368 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 369 #define UPDATE_BEACON_PARSING_INFO_GET_SIZE_TH(h2c_pkt) \ 370 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 4) 371 #define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(h2c_pkt, value) \ 372 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 4, value) 373 #define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH_NO_CLR(h2c_pkt, value) \ 374 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 4, value) 375 #define UPDATE_BEACON_PARSING_INFO_GET_TIMEOUT(h2c_pkt) \ 376 GET_H2C_FIELD(h2c_pkt + 0X08, 12, 4) 377 #define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(h2c_pkt, value) \ 378 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 12, 4, value) 379 #define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT_NO_CLR(h2c_pkt, value) \ 380 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 12, 4, value) 381 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_0(h2c_pkt) \ 382 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 32) 383 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(h2c_pkt, value) \ 384 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 32, value) 385 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0_NO_CLR(h2c_pkt, value) \ 386 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 32, value) 387 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_1(h2c_pkt) \ 388 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32) 389 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(h2c_pkt, value) \ 390 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value) 391 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1_NO_CLR(h2c_pkt, value) \ 392 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value) 393 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_2(h2c_pkt) \ 394 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32) 395 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(h2c_pkt, value) \ 396 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value) 397 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2_NO_CLR(h2c_pkt, value) \ 398 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value) 399 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_3(h2c_pkt) \ 400 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 32) 401 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(h2c_pkt, value) \ 402 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 32, value) 403 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3_NO_CLR(h2c_pkt, value) \ 404 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 32, value) 405 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_4(h2c_pkt) \ 406 GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 32) 407 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(h2c_pkt, value) \ 408 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 32, value) 409 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4_NO_CLR(h2c_pkt, value) \ 410 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 32, value) 411 #define CFG_PARAM_GET_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16) 412 #define CFG_PARAM_SET_NUM(h2c_pkt, value) \ 413 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value) 414 #define CFG_PARAM_SET_NUM_NO_CLR(h2c_pkt, value) \ 415 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value) 416 #define CFG_PARAM_GET_INIT_CASE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 1) 417 #define CFG_PARAM_SET_INIT_CASE(h2c_pkt, value) \ 418 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 1, value) 419 #define CFG_PARAM_SET_INIT_CASE_NO_CLR(h2c_pkt, value) \ 420 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 1, value) 421 #define CFG_PARAM_GET_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 422 #define CFG_PARAM_SET_LOC(h2c_pkt, value) \ 423 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 424 #define CFG_PARAM_SET_LOC_NO_CLR(h2c_pkt, value) \ 425 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 426 #define UPDATE_DATAPACK_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16) 427 #define UPDATE_DATAPACK_SET_SIZE(h2c_pkt, value) \ 428 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value) 429 #define UPDATE_DATAPACK_SET_SIZE_NO_CLR(h2c_pkt, value) \ 430 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value) 431 #define UPDATE_DATAPACK_GET_DATAPACK_ID(h2c_pkt) \ 432 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 433 #define UPDATE_DATAPACK_SET_DATAPACK_ID(h2c_pkt, value) \ 434 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 435 #define UPDATE_DATAPACK_SET_DATAPACK_ID_NO_CLR(h2c_pkt, value) \ 436 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 437 #define UPDATE_DATAPACK_GET_DATAPACK_LOC(h2c_pkt) \ 438 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 439 #define UPDATE_DATAPACK_SET_DATAPACK_LOC(h2c_pkt, value) \ 440 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 441 #define UPDATE_DATAPACK_SET_DATAPACK_LOC_NO_CLR(h2c_pkt, value) \ 442 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 443 #define UPDATE_DATAPACK_GET_DATAPACK_SEGMENT(h2c_pkt) \ 444 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 445 #define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT(h2c_pkt, value) \ 446 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 447 #define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT_NO_CLR(h2c_pkt, value) \ 448 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 449 #define UPDATE_DATAPACK_GET_END_SEGMENT(h2c_pkt) \ 450 GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 1) 451 #define UPDATE_DATAPACK_SET_END_SEGMENT(h2c_pkt, value) \ 452 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 1, value) 453 #define UPDATE_DATAPACK_SET_END_SEGMENT_NO_CLR(h2c_pkt, value) \ 454 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 1, value) 455 #define RUN_DATAPACK_GET_DATAPACK_ID(h2c_pkt) \ 456 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 457 #define RUN_DATAPACK_SET_DATAPACK_ID(h2c_pkt, value) \ 458 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 459 #define RUN_DATAPACK_SET_DATAPACK_ID_NO_CLR(h2c_pkt, value) \ 460 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 461 #define DOWNLOAD_FLASH_GET_SPI_CMD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 462 #define DOWNLOAD_FLASH_SET_SPI_CMD(h2c_pkt, value) \ 463 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 464 #define DOWNLOAD_FLASH_SET_SPI_CMD_NO_CLR(h2c_pkt, value) \ 465 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 466 #define DOWNLOAD_FLASH_GET_LOCATION(h2c_pkt) \ 467 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 16) 468 #define DOWNLOAD_FLASH_SET_LOCATION(h2c_pkt, value) \ 469 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 16, value) 470 #define DOWNLOAD_FLASH_SET_LOCATION_NO_CLR(h2c_pkt, value) \ 471 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 16, value) 472 #define DOWNLOAD_FLASH_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 32) 473 #define DOWNLOAD_FLASH_SET_SIZE(h2c_pkt, value) \ 474 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 32, value) 475 #define DOWNLOAD_FLASH_SET_SIZE_NO_CLR(h2c_pkt, value) \ 476 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 32, value) 477 #define DOWNLOAD_FLASH_GET_START_ADDR(h2c_pkt) \ 478 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32) 479 #define DOWNLOAD_FLASH_SET_START_ADDR(h2c_pkt, value) \ 480 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value) 481 #define DOWNLOAD_FLASH_SET_START_ADDR_NO_CLR(h2c_pkt, value) \ 482 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value) 483 #define UPDATE_PKT_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16) 484 #define UPDATE_PKT_SET_SIZE(h2c_pkt, value) \ 485 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value) 486 #define UPDATE_PKT_SET_SIZE_NO_CLR(h2c_pkt, value) \ 487 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value) 488 #define UPDATE_PKT_GET_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 489 #define UPDATE_PKT_SET_ID(h2c_pkt, value) \ 490 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 491 #define UPDATE_PKT_SET_ID_NO_CLR(h2c_pkt, value) \ 492 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 493 #define UPDATE_PKT_GET_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 494 #define UPDATE_PKT_SET_LOC(h2c_pkt, value) \ 495 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 496 #define UPDATE_PKT_SET_LOC_NO_CLR(h2c_pkt, value) \ 497 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 498 #define GENERAL_INFO_GET_FW_TX_BOUNDARY(h2c_pkt) \ 499 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 500 #define GENERAL_INFO_SET_FW_TX_BOUNDARY(h2c_pkt, value) \ 501 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 502 #define GENERAL_INFO_SET_FW_TX_BOUNDARY_NO_CLR(h2c_pkt, value) \ 503 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 504 #define IQK_GET_CLEAR(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 505 #define IQK_SET_CLEAR(h2c_pkt, value) \ 506 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 507 #define IQK_SET_CLEAR_NO_CLR(h2c_pkt, value) \ 508 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 509 #define IQK_GET_SEGMENT_IQK(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 510 #define IQK_SET_SEGMENT_IQK(h2c_pkt, value) \ 511 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 512 #define IQK_SET_SEGMENT_IQK_NO_CLR(h2c_pkt, value) \ 513 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 514 #define PWR_TRK_GET_ENABLE_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 515 #define PWR_TRK_SET_ENABLE_A(h2c_pkt, value) \ 516 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 517 #define PWR_TRK_SET_ENABLE_A_NO_CLR(h2c_pkt, value) \ 518 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 519 #define PWR_TRK_GET_ENABLE_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 520 #define PWR_TRK_SET_ENABLE_B(h2c_pkt, value) \ 521 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 522 #define PWR_TRK_SET_ENABLE_B_NO_CLR(h2c_pkt, value) \ 523 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 524 #define PWR_TRK_GET_ENABLE_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 525 #define PWR_TRK_SET_ENABLE_C(h2c_pkt, value) \ 526 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 527 #define PWR_TRK_SET_ENABLE_C_NO_CLR(h2c_pkt, value) \ 528 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 529 #define PWR_TRK_GET_ENABLE_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1) 530 #define PWR_TRK_SET_ENABLE_D(h2c_pkt, value) \ 531 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value) 532 #define PWR_TRK_SET_ENABLE_D_NO_CLR(h2c_pkt, value) \ 533 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value) 534 #define PWR_TRK_GET_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 4, 3) 535 #define PWR_TRK_SET_TYPE(h2c_pkt, value) \ 536 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 4, 3, value) 537 #define PWR_TRK_SET_TYPE_NO_CLR(h2c_pkt, value) \ 538 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 4, 3, value) 539 #define PWR_TRK_GET_BBSWING_INDEX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 540 #define PWR_TRK_SET_BBSWING_INDEX(h2c_pkt, value) \ 541 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 542 #define PWR_TRK_SET_BBSWING_INDEX_NO_CLR(h2c_pkt, value) \ 543 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 544 #define PWR_TRK_GET_TX_PWR_INDEX_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 545 #define PWR_TRK_SET_TX_PWR_INDEX_A(h2c_pkt, value) \ 546 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 547 #define PWR_TRK_SET_TX_PWR_INDEX_A_NO_CLR(h2c_pkt, value) \ 548 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 549 #define PWR_TRK_GET_OFFSET_VALUE_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 8) 550 #define PWR_TRK_SET_OFFSET_VALUE_A(h2c_pkt, value) \ 551 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 8, value) 552 #define PWR_TRK_SET_OFFSET_VALUE_A_NO_CLR(h2c_pkt, value) \ 553 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 8, value) 554 #define PWR_TRK_GET_TSSI_VALUE_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 8) 555 #define PWR_TRK_SET_TSSI_VALUE_A(h2c_pkt, value) \ 556 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 8, value) 557 #define PWR_TRK_SET_TSSI_VALUE_A_NO_CLR(h2c_pkt, value) \ 558 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 8, value) 559 #define PWR_TRK_GET_TX_PWR_INDEX_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8) 560 #define PWR_TRK_SET_TX_PWR_INDEX_B(h2c_pkt, value) \ 561 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value) 562 #define PWR_TRK_SET_TX_PWR_INDEX_B_NO_CLR(h2c_pkt, value) \ 563 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value) 564 #define PWR_TRK_GET_OFFSET_VALUE_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8) 565 #define PWR_TRK_SET_OFFSET_VALUE_B(h2c_pkt, value) \ 566 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value) 567 #define PWR_TRK_SET_OFFSET_VALUE_B_NO_CLR(h2c_pkt, value) \ 568 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value) 569 #define PWR_TRK_GET_TSSI_VALUE_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 16, 8) 570 #define PWR_TRK_SET_TSSI_VALUE_B(h2c_pkt, value) \ 571 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 16, 8, value) 572 #define PWR_TRK_SET_TSSI_VALUE_B_NO_CLR(h2c_pkt, value) \ 573 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 16, 8, value) 574 #define PWR_TRK_GET_TX_PWR_INDEX_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 0, 8) 575 #define PWR_TRK_SET_TX_PWR_INDEX_C(h2c_pkt, value) \ 576 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 8, value) 577 #define PWR_TRK_SET_TX_PWR_INDEX_C_NO_CLR(h2c_pkt, value) \ 578 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 8, value) 579 #define PWR_TRK_GET_OFFSET_VALUE_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 8, 8) 580 #define PWR_TRK_SET_OFFSET_VALUE_C(h2c_pkt, value) \ 581 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 8, 8, value) 582 #define PWR_TRK_SET_OFFSET_VALUE_C_NO_CLR(h2c_pkt, value) \ 583 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 8, 8, value) 584 #define PWR_TRK_GET_TSSI_VALUE_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 16, 8) 585 #define PWR_TRK_SET_TSSI_VALUE_C(h2c_pkt, value) \ 586 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 16, 8, value) 587 #define PWR_TRK_SET_TSSI_VALUE_C_NO_CLR(h2c_pkt, value) \ 588 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 16, 8, value) 589 #define PWR_TRK_GET_TX_PWR_INDEX_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8) 590 #define PWR_TRK_SET_TX_PWR_INDEX_D(h2c_pkt, value) \ 591 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value) 592 #define PWR_TRK_SET_TX_PWR_INDEX_D_NO_CLR(h2c_pkt, value) \ 593 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value) 594 #define PWR_TRK_GET_OFFSET_VALUE_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8) 595 #define PWR_TRK_SET_OFFSET_VALUE_D(h2c_pkt, value) \ 596 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value) 597 #define PWR_TRK_SET_OFFSET_VALUE_D_NO_CLR(h2c_pkt, value) \ 598 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value) 599 #define PWR_TRK_GET_TSSI_VALUE_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 16, 8) 600 #define PWR_TRK_SET_TSSI_VALUE_D(h2c_pkt, value) \ 601 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 16, 8, value) 602 #define PWR_TRK_SET_TSSI_VALUE_D_NO_CLR(h2c_pkt, value) \ 603 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 16, 8, value) 604 #define PSD_GET_START_PSD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16) 605 #define PSD_SET_START_PSD(h2c_pkt, value) \ 606 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value) 607 #define PSD_SET_START_PSD_NO_CLR(h2c_pkt, value) \ 608 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value) 609 #define PSD_GET_END_PSD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 16) 610 #define PSD_SET_END_PSD(h2c_pkt, value) \ 611 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 16, value) 612 #define PSD_SET_END_PSD_NO_CLR(h2c_pkt, value) \ 613 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 16, value) 614 #define PHYDM_INFO_GET_REF_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 615 #define PHYDM_INFO_SET_REF_TYPE(h2c_pkt, value) \ 616 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 617 #define PHYDM_INFO_SET_REF_TYPE_NO_CLR(h2c_pkt, value) \ 618 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 619 #define PHYDM_INFO_GET_RF_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 620 #define PHYDM_INFO_SET_RF_TYPE(h2c_pkt, value) \ 621 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 622 #define PHYDM_INFO_SET_RF_TYPE_NO_CLR(h2c_pkt, value) \ 623 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 624 #define PHYDM_INFO_GET_CUT_VER(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 625 #define PHYDM_INFO_SET_CUT_VER(h2c_pkt, value) \ 626 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 627 #define PHYDM_INFO_SET_CUT_VER_NO_CLR(h2c_pkt, value) \ 628 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 629 #define PHYDM_INFO_GET_RX_ANT_STATUS(h2c_pkt) \ 630 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 4) 631 #define PHYDM_INFO_SET_RX_ANT_STATUS(h2c_pkt, value) \ 632 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 4, value) 633 #define PHYDM_INFO_SET_RX_ANT_STATUS_NO_CLR(h2c_pkt, value) \ 634 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 4, value) 635 #define PHYDM_INFO_GET_TX_ANT_STATUS(h2c_pkt) \ 636 GET_H2C_FIELD(h2c_pkt + 0X08, 28, 4) 637 #define PHYDM_INFO_SET_TX_ANT_STATUS(h2c_pkt, value) \ 638 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 28, 4, value) 639 #define PHYDM_INFO_SET_TX_ANT_STATUS_NO_CLR(h2c_pkt, value) \ 640 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 28, 4, value) 641 #define PHYDM_INFO_GET_EXT_PA(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 0, 8) 642 #define PHYDM_INFO_SET_EXT_PA(h2c_pkt, value) \ 643 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 0, 8, value) 644 #define PHYDM_INFO_SET_EXT_PA_NO_CLR(h2c_pkt, value) \ 645 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 0, 8, value) 646 #define PHYDM_INFO_GET_PACKAGE_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 8, 8) 647 #define PHYDM_INFO_SET_PACKAGE_TYPE(h2c_pkt, value) \ 648 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 8, 8, value) 649 #define PHYDM_INFO_SET_PACKAGE_TYPE_NO_CLR(h2c_pkt, value) \ 650 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 8, 8, value) 651 #define PHYDM_INFO_GET_MP_MODE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 16, 1) 652 #define PHYDM_INFO_SET_MP_MODE(h2c_pkt, value) \ 653 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 16, 1, value) 654 #define PHYDM_INFO_SET_MP_MODE_NO_CLR(h2c_pkt, value) \ 655 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 16, 1, value) 656 #define FW_SNDING_GET_SU0(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 657 #define FW_SNDING_SET_SU0(h2c_pkt, value) \ 658 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 659 #define FW_SNDING_SET_SU0_NO_CLR(h2c_pkt, value) \ 660 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 661 #define FW_SNDING_GET_SU1(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 662 #define FW_SNDING_SET_SU1(h2c_pkt, value) \ 663 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 664 #define FW_SNDING_SET_SU1_NO_CLR(h2c_pkt, value) \ 665 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 666 #define FW_SNDING_GET_MU(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 667 #define FW_SNDING_SET_MU(h2c_pkt, value) \ 668 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 669 #define FW_SNDING_SET_MU_NO_CLR(h2c_pkt, value) \ 670 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 671 #define FW_SNDING_GET_PERIOD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 672 #define FW_SNDING_SET_PERIOD(h2c_pkt, value) \ 673 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 674 #define FW_SNDING_SET_PERIOD_NO_CLR(h2c_pkt, value) \ 675 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 676 #define FW_SNDING_GET_NDPA0_HEAD_PG(h2c_pkt) \ 677 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 678 #define FW_SNDING_SET_NDPA0_HEAD_PG(h2c_pkt, value) \ 679 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 680 #define FW_SNDING_SET_NDPA0_HEAD_PG_NO_CLR(h2c_pkt, value) \ 681 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 682 #define FW_SNDING_GET_NDPA1_HEAD_PG(h2c_pkt) \ 683 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 684 #define FW_SNDING_SET_NDPA1_HEAD_PG(h2c_pkt, value) \ 685 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 686 #define FW_SNDING_SET_NDPA1_HEAD_PG_NO_CLR(h2c_pkt, value) \ 687 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 688 #define FW_SNDING_GET_MU_NDPA_HEAD_PG(h2c_pkt) \ 689 GET_H2C_FIELD(h2c_pkt + 0XC, 0, 8) 690 #define FW_SNDING_SET_MU_NDPA_HEAD_PG(h2c_pkt, value) \ 691 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 0, 8, value) 692 #define FW_SNDING_SET_MU_NDPA_HEAD_PG_NO_CLR(h2c_pkt, value) \ 693 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 0, 8, value) 694 #define FW_SNDING_GET_RPT0_HEAD_PG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 8, 8) 695 #define FW_SNDING_SET_RPT0_HEAD_PG(h2c_pkt, value) \ 696 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 8, 8, value) 697 #define FW_SNDING_SET_RPT0_HEAD_PG_NO_CLR(h2c_pkt, value) \ 698 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 8, 8, value) 699 #define FW_SNDING_GET_RPT1_HEAD_PG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 16, 8) 700 #define FW_SNDING_SET_RPT1_HEAD_PG(h2c_pkt, value) \ 701 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 16, 8, value) 702 #define FW_SNDING_SET_RPT1_HEAD_PG_NO_CLR(h2c_pkt, value) \ 703 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 16, 8, value) 704 #define FW_SNDING_GET_RPT2_HEAD_PG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 24, 8) 705 #define FW_SNDING_SET_RPT2_HEAD_PG(h2c_pkt, value) \ 706 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 24, 8, value) 707 #define FW_SNDING_SET_RPT2_HEAD_PG_NO_CLR(h2c_pkt, value) \ 708 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 24, 8, value) 709 #define FW_FWCTRL_GET_SEQ_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 710 #define FW_FWCTRL_SET_SEQ_NUM(h2c_pkt, value) \ 711 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 712 #define FW_FWCTRL_SET_SEQ_NUM_NO_CLR(h2c_pkt, value) \ 713 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 714 #define FW_FWCTRL_GET_MORE_CONTENT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 1) 715 #define FW_FWCTRL_SET_MORE_CONTENT(h2c_pkt, value) \ 716 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 1, value) 717 #define FW_FWCTRL_SET_MORE_CONTENT_NO_CLR(h2c_pkt, value) \ 718 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 1, value) 719 #define FW_FWCTRL_GET_CONTENT_IDX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 9, 7) 720 #define FW_FWCTRL_SET_CONTENT_IDX(h2c_pkt, value) \ 721 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 9, 7, value) 722 #define FW_FWCTRL_SET_CONTENT_IDX_NO_CLR(h2c_pkt, value) \ 723 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 9, 7, value) 724 #define FW_FWCTRL_GET_CLASS_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 725 #define FW_FWCTRL_SET_CLASS_ID(h2c_pkt, value) \ 726 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 727 #define FW_FWCTRL_SET_CLASS_ID_NO_CLR(h2c_pkt, value) \ 728 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 729 #define FW_FWCTRL_GET_LENGTH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 730 #define FW_FWCTRL_SET_LENGTH(h2c_pkt, value) \ 731 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 732 #define FW_FWCTRL_SET_LENGTH_NO_CLR(h2c_pkt, value) \ 733 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 734 #define FW_FWCTRL_GET_CONTENT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 32) 735 #define FW_FWCTRL_SET_CONTENT(h2c_pkt, value) \ 736 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 32, value) 737 #define FW_FWCTRL_SET_CONTENT_NO_CLR(h2c_pkt, value) \ 738 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 32, value) 739 #define SEND_SCAN_PKT_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16) 740 #define SEND_SCAN_PKT_SET_SIZE(h2c_pkt, value) \ 741 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value) 742 #define SEND_SCAN_PKT_SET_SIZE_NO_CLR(h2c_pkt, value) \ 743 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value) 744 #define SEND_SCAN_PKT_GET_INDEX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 745 #define SEND_SCAN_PKT_SET_INDEX(h2c_pkt, value) \ 746 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 747 #define SEND_SCAN_PKT_SET_INDEX_NO_CLR(h2c_pkt, value) \ 748 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 749 #define SEND_SCAN_PKT_GET_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 750 #define SEND_SCAN_PKT_SET_LOC(h2c_pkt, value) \ 751 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 752 #define SEND_SCAN_PKT_SET_LOC_NO_CLR(h2c_pkt, value) \ 753 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 754 #define BCN_OFFLOAD_GET_REQUEST_VERSION(h2c_pkt) \ 755 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 756 #define BCN_OFFLOAD_SET_REQUEST_VERSION(h2c_pkt, value) \ 757 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 758 #define BCN_OFFLOAD_SET_REQUEST_VERSION_NO_CLR(h2c_pkt, value) \ 759 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 760 #define BCN_OFFLOAD_GET_ENABLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 761 #define BCN_OFFLOAD_SET_ENABLE(h2c_pkt, value) \ 762 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 763 #define BCN_OFFLOAD_SET_ENABLE_NO_CLR(h2c_pkt, value) \ 764 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 765 #define BCN_OFFLOAD_GET_MORE_RULE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 766 #define BCN_OFFLOAD_SET_MORE_RULE(h2c_pkt, value) \ 767 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 768 #define BCN_OFFLOAD_SET_MORE_RULE_NO_CLR(h2c_pkt, value) \ 769 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 770 #define BCN_OFFLOAD_GET_C2H_PERIODIC_REPORT(h2c_pkt) \ 771 GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1) 772 #define BCN_OFFLOAD_SET_C2H_PERIODIC_REPORT(h2c_pkt, value) \ 773 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value) 774 #define BCN_OFFLOAD_SET_C2H_PERIODIC_REPORT_NO_CLR(h2c_pkt, value) \ 775 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value) 776 #define BCN_OFFLOAD_GET_REPORT_PERIOD(h2c_pkt) \ 777 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 778 #define BCN_OFFLOAD_SET_REPORT_PERIOD(h2c_pkt, value) \ 779 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 780 #define BCN_OFFLOAD_SET_REPORT_PERIOD_NO_CLR(h2c_pkt, value) \ 781 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 782 #define BCN_OFFLOAD_GET_RULE_LENGTH(h2c_pkt) \ 783 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 784 #define BCN_OFFLOAD_SET_RULE_LENGTH(h2c_pkt, value) \ 785 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 786 #define BCN_OFFLOAD_SET_RULE_LENGTH_NO_CLR(h2c_pkt, value) \ 787 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 788 #define BCN_OFFLOAD_GET_RULE_CONTENT(h2c_pkt) \ 789 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 790 #define BCN_OFFLOAD_SET_RULE_CONTENT(h2c_pkt, value) \ 791 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 792 #define BCN_OFFLOAD_SET_RULE_CONTENT_NO_CLR(h2c_pkt, value) \ 793 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 794 #define DROP_SCAN_PKT_GET_DROP_ALL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 795 #define DROP_SCAN_PKT_SET_DROP_ALL(h2c_pkt, value) \ 796 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 797 #define DROP_SCAN_PKT_SET_DROP_ALL_NO_CLR(h2c_pkt, value) \ 798 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 799 #define DROP_SCAN_PKT_GET_DROP_SINGLE(h2c_pkt) \ 800 GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 801 #define DROP_SCAN_PKT_SET_DROP_SINGLE(h2c_pkt, value) \ 802 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 803 #define DROP_SCAN_PKT_SET_DROP_SINGLE_NO_CLR(h2c_pkt, value) \ 804 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 805 #define DROP_SCAN_PKT_GET_DROP_IDX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 806 #define DROP_SCAN_PKT_SET_DROP_IDX(h2c_pkt, value) \ 807 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 808 #define DROP_SCAN_PKT_SET_DROP_IDX_NO_CLR(h2c_pkt, value) \ 809 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 810 #define P2PPS_GET_OFFLOAD_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1) 811 #define P2PPS_SET_OFFLOAD_EN(h2c_pkt, value) \ 812 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value) 813 #define P2PPS_SET_OFFLOAD_EN_NO_CLR(h2c_pkt, value) \ 814 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value) 815 #define P2PPS_GET_ROLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1) 816 #define P2PPS_SET_ROLE(h2c_pkt, value) \ 817 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value) 818 #define P2PPS_SET_ROLE_NO_CLR(h2c_pkt, value) \ 819 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value) 820 #define P2PPS_GET_CTWINDOW_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 821 #define P2PPS_SET_CTWINDOW_EN(h2c_pkt, value) \ 822 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 823 #define P2PPS_SET_CTWINDOW_EN_NO_CLR(h2c_pkt, value) \ 824 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 825 #define P2PPS_GET_NOA_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1) 826 #define P2PPS_SET_NOA_EN(h2c_pkt, value) \ 827 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value) 828 #define P2PPS_SET_NOA_EN_NO_CLR(h2c_pkt, value) \ 829 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value) 830 #define P2PPS_GET_NOA_SEL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 4, 1) 831 #define P2PPS_SET_NOA_SEL(h2c_pkt, value) \ 832 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 4, 1, value) 833 #define P2PPS_SET_NOA_SEL_NO_CLR(h2c_pkt, value) \ 834 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 4, 1, value) 835 #define P2PPS_GET_ALLSTASLEEP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 5, 1) 836 #define P2PPS_SET_ALLSTASLEEP(h2c_pkt, value) \ 837 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 5, 1, value) 838 #define P2PPS_SET_ALLSTASLEEP_NO_CLR(h2c_pkt, value) \ 839 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 5, 1, value) 840 #define P2PPS_GET_DISCOVERY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 6, 1) 841 #define P2PPS_SET_DISCOVERY(h2c_pkt, value) \ 842 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 6, 1, value) 843 #define P2PPS_SET_DISCOVERY_NO_CLR(h2c_pkt, value) \ 844 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 6, 1, value) 845 #define P2PPS_GET_DISABLE_CLOSERF(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 7, 1) 846 #define P2PPS_SET_DISABLE_CLOSERF(h2c_pkt, value) \ 847 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 7, 1, value) 848 #define P2PPS_SET_DISABLE_CLOSERF_NO_CLR(h2c_pkt, value) \ 849 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 7, 1, value) 850 #define P2PPS_GET_P2P_PORT_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 851 #define P2PPS_SET_P2P_PORT_ID(h2c_pkt, value) \ 852 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 853 #define P2PPS_SET_P2P_PORT_ID_NO_CLR(h2c_pkt, value) \ 854 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 855 #define P2PPS_GET_P2P_GROUP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 856 #define P2PPS_SET_P2P_GROUP(h2c_pkt, value) \ 857 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 858 #define P2PPS_SET_P2P_GROUP_NO_CLR(h2c_pkt, value) \ 859 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 860 #define P2PPS_GET_P2P_MACID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 861 #define P2PPS_SET_P2P_MACID(h2c_pkt, value) \ 862 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 863 #define P2PPS_SET_P2P_MACID_NO_CLR(h2c_pkt, value) \ 864 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 865 #define P2PPS_GET_CTWINDOW_LENGTH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 866 #define P2PPS_SET_CTWINDOW_LENGTH(h2c_pkt, value) \ 867 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 868 #define P2PPS_SET_CTWINDOW_LENGTH_NO_CLR(h2c_pkt, value) \ 869 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 870 #define P2PPS_GET_NOA_DURATION_PARA(h2c_pkt) \ 871 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32) 872 #define P2PPS_SET_NOA_DURATION_PARA(h2c_pkt, value) \ 873 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value) 874 #define P2PPS_SET_NOA_DURATION_PARA_NO_CLR(h2c_pkt, value) \ 875 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value) 876 #define P2PPS_GET_NOA_INTERVAL_PARA(h2c_pkt) \ 877 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32) 878 #define P2PPS_SET_NOA_INTERVAL_PARA(h2c_pkt, value) \ 879 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value) 880 #define P2PPS_SET_NOA_INTERVAL_PARA_NO_CLR(h2c_pkt, value) \ 881 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value) 882 #define P2PPS_GET_NOA_START_TIME_PARA(h2c_pkt) \ 883 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 32) 884 #define P2PPS_SET_NOA_START_TIME_PARA(h2c_pkt, value) \ 885 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 32, value) 886 #define P2PPS_SET_NOA_START_TIME_PARA_NO_CLR(h2c_pkt, value) \ 887 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 32, value) 888 #define P2PPS_GET_NOA_COUNT_PARA(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 32) 889 #define P2PPS_SET_NOA_COUNT_PARA(h2c_pkt, value) \ 890 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 32, value) 891 #define P2PPS_SET_NOA_COUNT_PARA_NO_CLR(h2c_pkt, value) \ 892 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 32, value) 893 #define BT_COEX_GET_DATA_START(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 894 #define BT_COEX_SET_DATA_START(h2c_pkt, value) \ 895 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 896 #define BT_COEX_SET_DATA_START_NO_CLR(h2c_pkt, value) \ 897 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 898 #define ACT_SCHEDULE_REQ_GET_MODULE_ID(h2c_pkt) \ 899 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 900 #define ACT_SCHEDULE_REQ_SET_MODULE_ID(h2c_pkt, value) \ 901 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 902 #define ACT_SCHEDULE_REQ_SET_MODULE_ID_NO_CLR(h2c_pkt, value) \ 903 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 904 #define ACT_SCHEDULE_REQ_GET_PRIORITY(h2c_pkt) \ 905 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 906 #define ACT_SCHEDULE_REQ_SET_PRIORITY(h2c_pkt, value) \ 907 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 908 #define ACT_SCHEDULE_REQ_SET_PRIORITY_NO_CLR(h2c_pkt, value) \ 909 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 910 #define ACT_SCHEDULE_REQ_GET_RSVD1(h2c_pkt) \ 911 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 16) 912 #define ACT_SCHEDULE_REQ_SET_RSVD1(h2c_pkt, value) \ 913 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 16, value) 914 #define ACT_SCHEDULE_REQ_SET_RSVD1_NO_CLR(h2c_pkt, value) \ 915 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 16, value) 916 #define ACT_SCHEDULE_REQ_GET_START_TIME(h2c_pkt) \ 917 GET_H2C_FIELD(h2c_pkt + 0XC, 0, 32) 918 #define ACT_SCHEDULE_REQ_SET_START_TIME(h2c_pkt, value) \ 919 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 0, 32, value) 920 #define ACT_SCHEDULE_REQ_SET_START_TIME_NO_CLR(h2c_pkt, value) \ 921 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 0, 32, value) 922 #define ACT_SCHEDULE_REQ_GET_DURATION(h2c_pkt) \ 923 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32) 924 #define ACT_SCHEDULE_REQ_SET_DURATION(h2c_pkt, value) \ 925 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value) 926 #define ACT_SCHEDULE_REQ_SET_DURATION_NO_CLR(h2c_pkt, value) \ 927 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value) 928 #define ACT_SCHEDULE_REQ_GET_PERIOD(h2c_pkt) \ 929 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32) 930 #define ACT_SCHEDULE_REQ_SET_PERIOD(h2c_pkt, value) \ 931 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value) 932 #define ACT_SCHEDULE_REQ_SET_PERIOD_NO_CLR(h2c_pkt, value) \ 933 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value) 934 #define ACT_SCHEDULE_REQ_GET_TSF_IDX(h2c_pkt) \ 935 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8) 936 #define ACT_SCHEDULE_REQ_SET_TSF_IDX(h2c_pkt, value) \ 937 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value) 938 #define ACT_SCHEDULE_REQ_SET_TSF_IDX_NO_CLR(h2c_pkt, value) \ 939 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value) 940 #define ACT_SCHEDULE_REQ_GET_CHANNEL(h2c_pkt) \ 941 GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8) 942 #define ACT_SCHEDULE_REQ_SET_CHANNEL(h2c_pkt, value) \ 943 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value) 944 #define ACT_SCHEDULE_REQ_SET_CHANNEL_NO_CLR(h2c_pkt, value) \ 945 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value) 946 #define ACT_SCHEDULE_REQ_GET_BW(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 16, 8) 947 #define ACT_SCHEDULE_REQ_SET_BW(h2c_pkt, value) \ 948 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 16, 8, value) 949 #define ACT_SCHEDULE_REQ_SET_BW_NO_CLR(h2c_pkt, value) \ 950 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 16, 8, value) 951 #define ACT_SCHEDULE_REQ_GET_PRIMART_CH_IDX(h2c_pkt) \ 952 GET_H2C_FIELD(h2c_pkt + 0X18, 24, 9) 953 #define ACT_SCHEDULE_REQ_SET_PRIMART_CH_IDX(h2c_pkt, value) \ 954 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 24, 9, value) 955 #define ACT_SCHEDULE_REQ_SET_PRIMART_CH_IDX_NO_CLR(h2c_pkt, value) \ 956 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 24, 9, value) 957 #define NAN_CTRL_GET_NAN_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 2) 958 #define NAN_CTRL_SET_NAN_EN(h2c_pkt, value) \ 959 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 2, value) 960 #define NAN_CTRL_SET_NAN_EN_NO_CLR(h2c_pkt, value) \ 961 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 2, value) 962 #define NAN_CTRL_GET_WARMUP_TIMER_FLAG(h2c_pkt) \ 963 GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1) 964 #define NAN_CTRL_SET_WARMUP_TIMER_FLAG(h2c_pkt, value) \ 965 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value) 966 #define NAN_CTRL_SET_WARMUP_TIMER_FLAG_NO_CLR(h2c_pkt, value) \ 967 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value) 968 #define NAN_CTRL_GET_SUPPORT_BAND(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 2) 969 #define NAN_CTRL_SET_SUPPORT_BAND(h2c_pkt, value) \ 970 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 2, value) 971 #define NAN_CTRL_SET_SUPPORT_BAND_NO_CLR(h2c_pkt, value) \ 972 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 2, value) 973 #define NAN_CTRL_GET_DISABLE_2G_DISC_BCN(h2c_pkt) \ 974 GET_H2C_FIELD(h2c_pkt + 0X08, 10, 1) 975 #define NAN_CTRL_SET_DISABLE_2G_DISC_BCN(h2c_pkt, value) \ 976 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 10, 1, value) 977 #define NAN_CTRL_SET_DISABLE_2G_DISC_BCN_NO_CLR(h2c_pkt, value) \ 978 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 10, 1, value) 979 #define NAN_CTRL_GET_DISABLE_5G_DISC_BCN(h2c_pkt) \ 980 GET_H2C_FIELD(h2c_pkt + 0X08, 11, 1) 981 #define NAN_CTRL_SET_DISABLE_5G_DISC_BCN(h2c_pkt, value) \ 982 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 11, 1, value) 983 #define NAN_CTRL_SET_DISABLE_5G_DISC_BCN_NO_CLR(h2c_pkt, value) \ 984 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 11, 1, value) 985 #define NAN_CTRL_GET_BCN_RSVD_PAGE_OFFSET(h2c_pkt) \ 986 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 987 #define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET(h2c_pkt, value) \ 988 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 989 #define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET_NO_CLR(h2c_pkt, value) \ 990 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 991 #define NAN_CTRL_GET_CHANNEL_2G(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 992 #define NAN_CTRL_SET_CHANNEL_2G(h2c_pkt, value) \ 993 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 994 #define NAN_CTRL_SET_CHANNEL_2G_NO_CLR(h2c_pkt, value) \ 995 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 996 #define NAN_CTRL_GET_CHANNEL_5G(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 997 #define NAN_CTRL_SET_CHANNEL_5G(h2c_pkt, value) \ 998 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 999 #define NAN_CTRL_SET_CHANNEL_5G_NO_CLR(h2c_pkt, value) \ 1000 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 1001 #define NAN_CTRL_GET_MASTERPREFERENCE_VALUE(h2c_pkt) \ 1002 GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 8) 1003 #define NAN_CTRL_SET_MASTERPREFERENCE_VALUE(h2c_pkt, value) \ 1004 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 8, value) 1005 #define NAN_CTRL_SET_MASTERPREFERENCE_VALUE_NO_CLR(h2c_pkt, value) \ 1006 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 8, value) 1007 #define NAN_CTRL_GET_RANDOMFACTOR_VALUE(h2c_pkt) \ 1008 GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 8) 1009 #define NAN_CTRL_SET_RANDOMFACTOR_VALUE(h2c_pkt, value) \ 1010 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 8, value) 1011 #define NAN_CTRL_SET_RANDOMFACTOR_VALUE_NO_CLR(h2c_pkt, value) \ 1012 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 8, value) 1013 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_0(h2c_pkt) \ 1014 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 1015 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0(h2c_pkt, value) \ 1016 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 1017 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0_NO_CLR(h2c_pkt, value) \ 1018 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 1019 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_0(h2c_pkt) \ 1020 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 1021 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0(h2c_pkt, value) \ 1022 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 1023 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0_NO_CLR(h2c_pkt, value) \ 1024 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 1025 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_0(h2c_pkt) \ 1026 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 16) 1027 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0(h2c_pkt, value) \ 1028 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 16, value) 1029 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0_NO_CLR(h2c_pkt, value) \ 1030 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 16, value) 1031 #define NAN_CHANNEL_PLAN_0_GET_DURATION_0(h2c_pkt) \ 1032 GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 16) 1033 #define NAN_CHANNEL_PLAN_0_SET_DURATION_0(h2c_pkt, value) \ 1034 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 16, value) 1035 #define NAN_CHANNEL_PLAN_0_SET_DURATION_0_NO_CLR(h2c_pkt, value) \ 1036 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 16, value) 1037 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_1(h2c_pkt) \ 1038 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8) 1039 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1(h2c_pkt, value) \ 1040 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value) 1041 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1_NO_CLR(h2c_pkt, value) \ 1042 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value) 1043 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_1(h2c_pkt) \ 1044 GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8) 1045 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1(h2c_pkt, value) \ 1046 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value) 1047 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1_NO_CLR(h2c_pkt, value) \ 1048 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value) 1049 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_1(h2c_pkt) \ 1050 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 16) 1051 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1(h2c_pkt, value) \ 1052 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 16, value) 1053 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1_NO_CLR(h2c_pkt, value) \ 1054 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 16, value) 1055 #define NAN_CHANNEL_PLAN_0_GET_DURATION_1(h2c_pkt) \ 1056 GET_H2C_FIELD(h2c_pkt + 0X14, 16, 16) 1057 #define NAN_CHANNEL_PLAN_0_SET_DURATION_1(h2c_pkt, value) \ 1058 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 16, 16, value) 1059 #define NAN_CHANNEL_PLAN_0_SET_DURATION_1_NO_CLR(h2c_pkt, value) \ 1060 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 16, 16, value) 1061 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_2(h2c_pkt) \ 1062 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8) 1063 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2(h2c_pkt, value) \ 1064 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value) 1065 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2_NO_CLR(h2c_pkt, value) \ 1066 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value) 1067 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_2(h2c_pkt) \ 1068 GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8) 1069 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2(h2c_pkt, value) \ 1070 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value) 1071 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2_NO_CLR(h2c_pkt, value) \ 1072 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value) 1073 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_2(h2c_pkt) \ 1074 GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 16) 1075 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2(h2c_pkt, value) \ 1076 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 16, value) 1077 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2_NO_CLR(h2c_pkt, value) \ 1078 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 16, value) 1079 #define NAN_CHANNEL_PLAN_0_GET_DURATION_2(h2c_pkt) \ 1080 GET_H2C_FIELD(h2c_pkt + 0X1C, 16, 16) 1081 #define NAN_CHANNEL_PLAN_0_SET_DURATION_2(h2c_pkt, value) \ 1082 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 16, 16, value) 1083 #define NAN_CHANNEL_PLAN_0_SET_DURATION_2_NO_CLR(h2c_pkt, value) \ 1084 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 16, 16, value) 1085 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_3(h2c_pkt) \ 1086 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 1087 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3(h2c_pkt, value) \ 1088 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 1089 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3_NO_CLR(h2c_pkt, value) \ 1090 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 1091 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_3(h2c_pkt) \ 1092 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 1093 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3(h2c_pkt, value) \ 1094 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 1095 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3_NO_CLR(h2c_pkt, value) \ 1096 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 1097 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_3(h2c_pkt) \ 1098 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 16) 1099 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3(h2c_pkt, value) \ 1100 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 16, value) 1101 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3_NO_CLR(h2c_pkt, value) \ 1102 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 16, value) 1103 #define NAN_CHANNEL_PLAN_1_GET_DURATION_3(h2c_pkt) \ 1104 GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 16) 1105 #define NAN_CHANNEL_PLAN_1_SET_DURATION_3(h2c_pkt, value) \ 1106 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 16, value) 1107 #define NAN_CHANNEL_PLAN_1_SET_DURATION_3_NO_CLR(h2c_pkt, value) \ 1108 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 16, value) 1109 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_4(h2c_pkt) \ 1110 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8) 1111 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4(h2c_pkt, value) \ 1112 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value) 1113 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4_NO_CLR(h2c_pkt, value) \ 1114 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value) 1115 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_4(h2c_pkt) \ 1116 GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8) 1117 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4(h2c_pkt, value) \ 1118 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value) 1119 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4_NO_CLR(h2c_pkt, value) \ 1120 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value) 1121 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_4(h2c_pkt) \ 1122 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 16) 1123 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4(h2c_pkt, value) \ 1124 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 16, value) 1125 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4_NO_CLR(h2c_pkt, value) \ 1126 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 16, value) 1127 #define NAN_CHANNEL_PLAN_1_GET_DURATION_4(h2c_pkt) \ 1128 GET_H2C_FIELD(h2c_pkt + 0X14, 16, 16) 1129 #define NAN_CHANNEL_PLAN_1_SET_DURATION_4(h2c_pkt, value) \ 1130 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 16, 16, value) 1131 #define NAN_CHANNEL_PLAN_1_SET_DURATION_4_NO_CLR(h2c_pkt, value) \ 1132 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 16, 16, value) 1133 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_5(h2c_pkt) \ 1134 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8) 1135 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5(h2c_pkt, value) \ 1136 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value) 1137 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5_NO_CLR(h2c_pkt, value) \ 1138 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value) 1139 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_5(h2c_pkt) \ 1140 GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8) 1141 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5(h2c_pkt, value) \ 1142 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value) 1143 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5_NO_CLR(h2c_pkt, value) \ 1144 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value) 1145 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_5(h2c_pkt) \ 1146 GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 16) 1147 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5(h2c_pkt, value) \ 1148 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 16, value) 1149 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5_NO_CLR(h2c_pkt, value) \ 1150 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 16, value) 1151 #define NAN_CHANNEL_PLAN_1_GET_DURATION_5(h2c_pkt) \ 1152 GET_H2C_FIELD(h2c_pkt + 0X1C, 16, 16) 1153 #define NAN_CHANNEL_PLAN_1_SET_DURATION_5(h2c_pkt, value) \ 1154 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 16, 16, value) 1155 #define NAN_CHANNEL_PLAN_1_SET_DURATION_5_NO_CLR(h2c_pkt, value) \ 1156 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 16, 16, value) 1157 #define NAN_FUNC_CTRL_GET_PORT_IDX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8) 1158 #define NAN_FUNC_CTRL_SET_PORT_IDX(h2c_pkt, value) \ 1159 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value) 1160 #define NAN_FUNC_CTRL_SET_PORT_IDX_NO_CLR(h2c_pkt, value) \ 1161 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value) 1162 #define NAN_FUNC_CTRL_GET_MAC_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8) 1163 #define NAN_FUNC_CTRL_SET_MAC_ID(h2c_pkt, value) \ 1164 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value) 1165 #define NAN_FUNC_CTRL_SET_MAC_ID_NO_CLR(h2c_pkt, value) \ 1166 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value) 1167 #define NAN_FUNC_CTRL_GET_MASTER_PREF(h2c_pkt) \ 1168 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8) 1169 #define NAN_FUNC_CTRL_SET_MASTER_PREF(h2c_pkt, value) \ 1170 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value) 1171 #define NAN_FUNC_CTRL_SET_MASTER_PREF_NO_CLR(h2c_pkt, value) \ 1172 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value) 1173 #define NAN_FUNC_CTRL_GET_RANDOM_FACTOR(h2c_pkt) \ 1174 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8) 1175 #define NAN_FUNC_CTRL_SET_RANDOM_FACTOR(h2c_pkt, value) \ 1176 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value) 1177 #define NAN_FUNC_CTRL_SET_RANDOM_FACTOR_NO_CLR(h2c_pkt, value) \ 1178 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value) 1179 #define NAN_FUNC_CTRL_GET_OP_CH_24G(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8) 1180 #define NAN_FUNC_CTRL_SET_OP_CH_24G(h2c_pkt, value) \ 1181 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value) 1182 #define NAN_FUNC_CTRL_SET_OP_CH_24G_NO_CLR(h2c_pkt, value) \ 1183 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value) 1184 #define NAN_FUNC_CTRL_GET_OP_CH_5G(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 8) 1185 #define NAN_FUNC_CTRL_SET_OP_CH_5G(h2c_pkt, value) \ 1186 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 8, value) 1187 #define NAN_FUNC_CTRL_SET_OP_CH_5G_NO_CLR(h2c_pkt, value) \ 1188 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 8, value) 1189 #define NAN_FUNC_CTRL_GET_OPTIONS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 16) 1190 #define NAN_FUNC_CTRL_SET_OPTIONS(h2c_pkt, value) \ 1191 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 16, value) 1192 #define NAN_FUNC_CTRL_SET_OPTIONS_NO_CLR(h2c_pkt, value) \ 1193 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 16, value) 1194 #define NAN_FUNC_CTRL_GET_SYNC_BCN_RSVD_OFFSET(h2c_pkt) \ 1195 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8) 1196 #define NAN_FUNC_CTRL_SET_SYNC_BCN_RSVD_OFFSET(h2c_pkt, value) \ 1197 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value) 1198 #define NAN_FUNC_CTRL_SET_SYNC_BCN_RSVD_OFFSET_NO_CLR(h2c_pkt, value) \ 1199 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value) 1200 #define NAN_FUNC_CTRL_GET_DISC_BCN_RSVD_OFFSET(h2c_pkt) \ 1201 GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8) 1202 #define NAN_FUNC_CTRL_SET_DISC_BCN_RSVD_OFFSET(h2c_pkt, value) \ 1203 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value) 1204 #define NAN_FUNC_CTRL_SET_DISC_BCN_RSVD_OFFSET_NO_CLR(h2c_pkt, value) \ 1205 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value) 1206 #define NAN_FUNC_CTRL_GET_DW_SCHDL_PRIORITY(h2c_pkt) \ 1207 GET_H2C_FIELD(h2c_pkt + 0X10, 16, 8) 1208 #define NAN_FUNC_CTRL_SET_DW_SCHDL_PRIORITY(h2c_pkt, value) \ 1209 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 16, 8, value) 1210 #define NAN_FUNC_CTRL_SET_DW_SCHDL_PRIORITY_NO_CLR(h2c_pkt, value) \ 1211 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 16, 8, value) 1212 #define NAN_FUNC_CTRL_GET_TIME_INDICATE_PERIOD(h2c_pkt) \ 1213 GET_H2C_FIELD(h2c_pkt + 0X10, 24, 8) 1214 #define NAN_FUNC_CTRL_SET_TIME_INDICATE_PERIOD(h2c_pkt, value) \ 1215 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 24, 8, value) 1216 #define NAN_FUNC_CTRL_SET_TIME_INDICATE_PERIOD_NO_CLR(h2c_pkt, value) \ 1217 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 24, 8, value) 1218 #endif 1219