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_NIC_H_ 17 #define _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_NIC_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) \ 109 LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 7) 110 #define H2C_CMD_HEADER_SET_CATEGORY(h2c_pkt, value) \ 111 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 7, value) 112 #define H2C_CMD_HEADER_GET_ACK(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 7, 1) 113 #define H2C_CMD_HEADER_SET_ACK(h2c_pkt, value) \ 114 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 7, 1, value) 115 #define H2C_CMD_HEADER_GET_TOTAL_LEN(h2c_pkt) \ 116 LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 16) 117 #define H2C_CMD_HEADER_SET_TOTAL_LEN(h2c_pkt, value) \ 118 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 16, value) 119 #define H2C_CMD_HEADER_GET_SEQ_NUM(h2c_pkt) \ 120 LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 16) 121 #define H2C_CMD_HEADER_SET_SEQ_NUM(h2c_pkt, value) \ 122 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 16, value) 123 #define FW_OFFLOAD_H2C_GET_CATEGORY(h2c_pkt) \ 124 LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 7) 125 #define FW_OFFLOAD_H2C_SET_CATEGORY(h2c_pkt, value) \ 126 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 7, value) 127 #define FW_OFFLOAD_H2C_GET_ACK(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 7, 1) 128 #define FW_OFFLOAD_H2C_SET_ACK(h2c_pkt, value) \ 129 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 7, 1, value) 130 #define FW_OFFLOAD_H2C_GET_CMD_ID(h2c_pkt) \ 131 LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8) 132 #define FW_OFFLOAD_H2C_SET_CMD_ID(h2c_pkt, value) \ 133 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value) 134 #define FW_OFFLOAD_H2C_GET_SUB_CMD_ID(h2c_pkt) \ 135 LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 16) 136 #define FW_OFFLOAD_H2C_SET_SUB_CMD_ID(h2c_pkt, value) \ 137 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 16, value) 138 #define FW_OFFLOAD_H2C_GET_TOTAL_LEN(h2c_pkt) \ 139 LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 16) 140 #define FW_OFFLOAD_H2C_SET_TOTAL_LEN(h2c_pkt, value) \ 141 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 16, value) 142 #define FW_OFFLOAD_H2C_GET_SEQ_NUM(h2c_pkt) \ 143 LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 16) 144 #define FW_OFFLOAD_H2C_SET_SEQ_NUM(h2c_pkt, value) \ 145 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 16, value) 146 #define FW_ACCESS_TEST_GET_ACCESS_TXFF(h2c_pkt) \ 147 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 148 #define FW_ACCESS_TEST_SET_ACCESS_TXFF(h2c_pkt, value) \ 149 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 150 #define FW_ACCESS_TEST_GET_ACCESS_RXFF(h2c_pkt) \ 151 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 152 #define FW_ACCESS_TEST_SET_ACCESS_RXFF(h2c_pkt, value) \ 153 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 154 #define FW_ACCESS_TEST_GET_ACCESS_FWFF(h2c_pkt) \ 155 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 156 #define FW_ACCESS_TEST_SET_ACCESS_FWFF(h2c_pkt, value) \ 157 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 158 #define FW_ACCESS_TEST_GET_ACCESS_PHYFF(h2c_pkt) \ 159 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 3, 1) 160 #define FW_ACCESS_TEST_SET_ACCESS_PHYFF(h2c_pkt, value) \ 161 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 3, 1, value) 162 #define FW_ACCESS_TEST_GET_ACCESS_RPT_BUF(h2c_pkt) \ 163 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 4, 1) 164 #define FW_ACCESS_TEST_SET_ACCESS_RPT_BUF(h2c_pkt, value) \ 165 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 4, 1, value) 166 #define FW_ACCESS_TEST_GET_ACCESS_CAM(h2c_pkt) \ 167 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 5, 1) 168 #define FW_ACCESS_TEST_SET_ACCESS_CAM(h2c_pkt, value) \ 169 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 5, 1, value) 170 #define FW_ACCESS_TEST_GET_ACCESS_WOW_CAM(h2c_pkt) \ 171 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 6, 1) 172 #define FW_ACCESS_TEST_SET_ACCESS_WOW_CAM(h2c_pkt, value) \ 173 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 6, 1, value) 174 #define FW_ACCESS_TEST_GET_ACCESS_RX_CAM(h2c_pkt) \ 175 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 7, 1) 176 #define FW_ACCESS_TEST_SET_ACCESS_RX_CAM(h2c_pkt, value) \ 177 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 7, 1, value) 178 #define FW_ACCESS_TEST_GET_ACCESS_BA_CAM(h2c_pkt) \ 179 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 1) 180 #define FW_ACCESS_TEST_SET_ACCESS_BA_CAM(h2c_pkt, value) \ 181 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 1, value) 182 #define FW_ACCESS_TEST_GET_ACCESS_MBSSID_CAM(h2c_pkt) \ 183 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 9, 1) 184 #define FW_ACCESS_TEST_SET_ACCESS_MBSSID_CAM(h2c_pkt, value) \ 185 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 9, 1, value) 186 #define FW_ACCESS_TEST_GET_ACCESS_PAGE0(h2c_pkt) \ 187 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 1) 188 #define FW_ACCESS_TEST_SET_ACCESS_PAGE0(h2c_pkt, value) \ 189 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 1, value) 190 #define FW_ACCESS_TEST_GET_ACCESS_PAGE1(h2c_pkt) \ 191 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 17, 1) 192 #define FW_ACCESS_TEST_SET_ACCESS_PAGE1(h2c_pkt, value) \ 193 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 17, 1, value) 194 #define FW_ACCESS_TEST_GET_ACCESS_PAGE2(h2c_pkt) \ 195 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 18, 1) 196 #define FW_ACCESS_TEST_SET_ACCESS_PAGE2(h2c_pkt, value) \ 197 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 18, 1, value) 198 #define FW_ACCESS_TEST_GET_ACCESS_PAGE3(h2c_pkt) \ 199 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 19, 1) 200 #define FW_ACCESS_TEST_SET_ACCESS_PAGE3(h2c_pkt, value) \ 201 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 19, 1, value) 202 #define FW_ACCESS_TEST_GET_ACCESS_PAGE4(h2c_pkt) \ 203 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 20, 1) 204 #define FW_ACCESS_TEST_SET_ACCESS_PAGE4(h2c_pkt, value) \ 205 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 20, 1, value) 206 #define FW_ACCESS_TEST_GET_ACCESS_PAGE5(h2c_pkt) \ 207 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 21, 1) 208 #define FW_ACCESS_TEST_SET_ACCESS_PAGE5(h2c_pkt, value) \ 209 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 21, 1, value) 210 #define FW_ACCESS_TEST_GET_ACCESS_PAGE6(h2c_pkt) \ 211 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 22, 1) 212 #define FW_ACCESS_TEST_SET_ACCESS_PAGE6(h2c_pkt, value) \ 213 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 22, 1, value) 214 #define FW_ACCESS_TEST_GET_ACCESS_PAGE7(h2c_pkt) \ 215 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 23, 1) 216 #define FW_ACCESS_TEST_SET_ACCESS_PAGE7(h2c_pkt, value) \ 217 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 23, 1, value) 218 #define CH_SWITCH_GET_START(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 219 #define CH_SWITCH_SET_START(h2c_pkt, value) \ 220 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 221 #define CH_SWITCH_GET_DEST_CH_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 222 #define CH_SWITCH_SET_DEST_CH_EN(h2c_pkt, value) \ 223 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 224 #define CH_SWITCH_GET_ABSOLUTE_TIME(h2c_pkt) \ 225 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 226 #define CH_SWITCH_SET_ABSOLUTE_TIME(h2c_pkt, value) \ 227 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 228 #define CH_SWITCH_GET_PERIODIC_OPT(h2c_pkt) \ 229 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 3, 2) 230 #define CH_SWITCH_SET_PERIODIC_OPT(h2c_pkt, value) \ 231 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 3, 2, value) 232 #define CH_SWITCH_GET_SCAN_MODE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 5, 1) 233 #define CH_SWITCH_SET_SCAN_MODE(h2c_pkt, value) \ 234 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 5, 1, value) 235 #define CH_SWITCH_GET_INFO_LOC(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 236 #define CH_SWITCH_SET_INFO_LOC(h2c_pkt, value) \ 237 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 238 #define CH_SWITCH_GET_CH_NUM(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 239 #define CH_SWITCH_SET_CH_NUM(h2c_pkt, value) \ 240 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 241 #define CH_SWITCH_GET_PRI_CH_IDX(h2c_pkt) \ 242 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 4) 243 #define CH_SWITCH_SET_PRI_CH_IDX(h2c_pkt, value) \ 244 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 4, value) 245 #define CH_SWITCH_GET_DEST_BW(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 28, 4) 246 #define CH_SWITCH_SET_DEST_BW(h2c_pkt, value) \ 247 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 28, 4, value) 248 #define CH_SWITCH_GET_DEST_CH(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 249 #define CH_SWITCH_SET_DEST_CH(h2c_pkt, value) \ 250 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 251 #define CH_SWITCH_GET_NORMAL_PERIOD(h2c_pkt) \ 252 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 8, 6) 253 #define CH_SWITCH_SET_NORMAL_PERIOD(h2c_pkt, value) \ 254 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 8, 6, value) 255 #define CH_SWITCH_GET_NORMAL_PERIOD_SEL(h2c_pkt) \ 256 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 14, 2) 257 #define CH_SWITCH_SET_NORMAL_PERIOD_SEL(h2c_pkt, value) \ 258 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 14, 2, value) 259 #define CH_SWITCH_GET_SLOW_PERIOD(h2c_pkt) \ 260 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 16, 6) 261 #define CH_SWITCH_SET_SLOW_PERIOD(h2c_pkt, value) \ 262 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 16, 6, value) 263 #define CH_SWITCH_GET_SLOW_PERIOD_SEL(h2c_pkt) \ 264 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 22, 2) 265 #define CH_SWITCH_SET_SLOW_PERIOD_SEL(h2c_pkt, value) \ 266 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 22, 2, value) 267 #define CH_SWITCH_GET_NORMAL_CYCLE(h2c_pkt) \ 268 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 24, 8) 269 #define CH_SWITCH_SET_NORMAL_CYCLE(h2c_pkt, value) \ 270 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 24, 8, value) 271 #define CH_SWITCH_GET_TSF_HIGH(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 32) 272 #define CH_SWITCH_SET_TSF_HIGH(h2c_pkt, value) \ 273 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 32, value) 274 #define CH_SWITCH_GET_TSF_LOW(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 32) 275 #define CH_SWITCH_SET_TSF_LOW(h2c_pkt, value) \ 276 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 32, value) 277 #define CH_SWITCH_GET_INFO_SIZE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 16) 278 #define CH_SWITCH_SET_INFO_SIZE(h2c_pkt, value) \ 279 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 16, value) 280 #define UPDATE_BEACON_PARSING_INFO_GET_FUNC_EN(h2c_pkt) \ 281 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 282 #define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(h2c_pkt, value) \ 283 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 284 #define UPDATE_BEACON_PARSING_INFO_GET_SIZE_TH(h2c_pkt) \ 285 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 4) 286 #define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(h2c_pkt, value) \ 287 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 4, value) 288 #define UPDATE_BEACON_PARSING_INFO_GET_TIMEOUT(h2c_pkt) \ 289 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 12, 4) 290 #define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(h2c_pkt, value) \ 291 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 12, 4, value) 292 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_0(h2c_pkt) \ 293 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 32) 294 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(h2c_pkt, value) \ 295 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 32, value) 296 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_1(h2c_pkt) \ 297 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 32) 298 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(h2c_pkt, value) \ 299 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 32, value) 300 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_2(h2c_pkt) \ 301 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 32) 302 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(h2c_pkt, value) \ 303 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 32, value) 304 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_3(h2c_pkt) \ 305 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 32) 306 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(h2c_pkt, value) \ 307 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 32, value) 308 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_4(h2c_pkt) \ 309 LE_BITS_TO_4BYTE(h2c_pkt + 0X1C, 0, 32) 310 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(h2c_pkt, value) \ 311 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X1C, 0, 32, value) 312 #define CFG_PARAM_GET_NUM(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 16) 313 #define CFG_PARAM_SET_NUM(h2c_pkt, value) \ 314 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 16, value) 315 #define CFG_PARAM_GET_INIT_CASE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 1) 316 #define CFG_PARAM_SET_INIT_CASE(h2c_pkt, value) \ 317 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 1, value) 318 #define CFG_PARAM_GET_LOC(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 319 #define CFG_PARAM_SET_LOC(h2c_pkt, value) \ 320 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 321 #define UPDATE_DATAPACK_GET_SIZE(h2c_pkt) \ 322 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 16) 323 #define UPDATE_DATAPACK_SET_SIZE(h2c_pkt, value) \ 324 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 16, value) 325 #define UPDATE_DATAPACK_GET_DATAPACK_ID(h2c_pkt) \ 326 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 327 #define UPDATE_DATAPACK_SET_DATAPACK_ID(h2c_pkt, value) \ 328 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 329 #define UPDATE_DATAPACK_GET_DATAPACK_LOC(h2c_pkt) \ 330 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 331 #define UPDATE_DATAPACK_SET_DATAPACK_LOC(h2c_pkt, value) \ 332 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 333 #define UPDATE_DATAPACK_GET_DATAPACK_SEGMENT(h2c_pkt) \ 334 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 335 #define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT(h2c_pkt, value) \ 336 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 337 #define UPDATE_DATAPACK_GET_END_SEGMENT(h2c_pkt) \ 338 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 8, 1) 339 #define UPDATE_DATAPACK_SET_END_SEGMENT(h2c_pkt, value) \ 340 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 8, 1, value) 341 #define RUN_DATAPACK_GET_DATAPACK_ID(h2c_pkt) \ 342 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 343 #define RUN_DATAPACK_SET_DATAPACK_ID(h2c_pkt, value) \ 344 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 345 #define DOWNLOAD_FLASH_GET_SPI_CMD(h2c_pkt) \ 346 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 347 #define DOWNLOAD_FLASH_SET_SPI_CMD(h2c_pkt, value) \ 348 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 349 #define DOWNLOAD_FLASH_GET_LOCATION(h2c_pkt) \ 350 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 16) 351 #define DOWNLOAD_FLASH_SET_LOCATION(h2c_pkt, value) \ 352 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 16, value) 353 #define DOWNLOAD_FLASH_GET_SIZE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 32) 354 #define DOWNLOAD_FLASH_SET_SIZE(h2c_pkt, value) \ 355 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 32, value) 356 #define DOWNLOAD_FLASH_GET_START_ADDR(h2c_pkt) \ 357 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 32) 358 #define DOWNLOAD_FLASH_SET_START_ADDR(h2c_pkt, value) \ 359 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 32, value) 360 #define UPDATE_PKT_GET_SIZE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 16) 361 #define UPDATE_PKT_SET_SIZE(h2c_pkt, value) \ 362 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 16, value) 363 #define UPDATE_PKT_GET_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 364 #define UPDATE_PKT_SET_ID(h2c_pkt, value) \ 365 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 366 #define UPDATE_PKT_GET_LOC(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 367 #define UPDATE_PKT_SET_LOC(h2c_pkt, value) \ 368 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 369 #define GENERAL_INFO_GET_FW_TX_BOUNDARY(h2c_pkt) \ 370 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 371 #define GENERAL_INFO_SET_FW_TX_BOUNDARY(h2c_pkt, value) \ 372 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 373 #define IQK_GET_CLEAR(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 374 #define IQK_SET_CLEAR(h2c_pkt, value) \ 375 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 376 #define IQK_GET_SEGMENT_IQK(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 377 #define IQK_SET_SEGMENT_IQK(h2c_pkt, value) \ 378 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 379 #define PWR_TRK_GET_ENABLE_A(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 380 #define PWR_TRK_SET_ENABLE_A(h2c_pkt, value) \ 381 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 382 #define PWR_TRK_GET_ENABLE_B(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 383 #define PWR_TRK_SET_ENABLE_B(h2c_pkt, value) \ 384 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 385 #define PWR_TRK_GET_ENABLE_C(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 386 #define PWR_TRK_SET_ENABLE_C(h2c_pkt, value) \ 387 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 388 #define PWR_TRK_GET_ENABLE_D(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 3, 1) 389 #define PWR_TRK_SET_ENABLE_D(h2c_pkt, value) \ 390 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 3, 1, value) 391 #define PWR_TRK_GET_TYPE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 4, 3) 392 #define PWR_TRK_SET_TYPE(h2c_pkt, value) \ 393 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 4, 3, value) 394 #define PWR_TRK_GET_BBSWING_INDEX(h2c_pkt) \ 395 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 396 #define PWR_TRK_SET_BBSWING_INDEX(h2c_pkt, value) \ 397 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 398 #define PWR_TRK_GET_TX_PWR_INDEX_A(h2c_pkt) \ 399 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 400 #define PWR_TRK_SET_TX_PWR_INDEX_A(h2c_pkt, value) \ 401 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 402 #define PWR_TRK_GET_OFFSET_VALUE_A(h2c_pkt) \ 403 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 8, 8) 404 #define PWR_TRK_SET_OFFSET_VALUE_A(h2c_pkt, value) \ 405 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 8, 8, value) 406 #define PWR_TRK_GET_TSSI_VALUE_A(h2c_pkt) \ 407 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 16, 8) 408 #define PWR_TRK_SET_TSSI_VALUE_A(h2c_pkt, value) \ 409 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 16, 8, value) 410 #define PWR_TRK_GET_TX_PWR_INDEX_B(h2c_pkt) \ 411 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 8) 412 #define PWR_TRK_SET_TX_PWR_INDEX_B(h2c_pkt, value) \ 413 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 8, value) 414 #define PWR_TRK_GET_OFFSET_VALUE_B(h2c_pkt) \ 415 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 8, 8) 416 #define PWR_TRK_SET_OFFSET_VALUE_B(h2c_pkt, value) \ 417 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 8, 8, value) 418 #define PWR_TRK_GET_TSSI_VALUE_B(h2c_pkt) \ 419 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 16, 8) 420 #define PWR_TRK_SET_TSSI_VALUE_B(h2c_pkt, value) \ 421 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 16, 8, value) 422 #define PWR_TRK_GET_TX_PWR_INDEX_C(h2c_pkt) \ 423 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 8) 424 #define PWR_TRK_SET_TX_PWR_INDEX_C(h2c_pkt, value) \ 425 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 8, value) 426 #define PWR_TRK_GET_OFFSET_VALUE_C(h2c_pkt) \ 427 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 8, 8) 428 #define PWR_TRK_SET_OFFSET_VALUE_C(h2c_pkt, value) \ 429 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 8, 8, value) 430 #define PWR_TRK_GET_TSSI_VALUE_C(h2c_pkt) \ 431 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 16, 8) 432 #define PWR_TRK_SET_TSSI_VALUE_C(h2c_pkt, value) \ 433 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 16, 8, value) 434 #define PWR_TRK_GET_TX_PWR_INDEX_D(h2c_pkt) \ 435 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 8) 436 #define PWR_TRK_SET_TX_PWR_INDEX_D(h2c_pkt, value) \ 437 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 8, value) 438 #define PWR_TRK_GET_OFFSET_VALUE_D(h2c_pkt) \ 439 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 8, 8) 440 #define PWR_TRK_SET_OFFSET_VALUE_D(h2c_pkt, value) \ 441 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 8, 8, value) 442 #define PWR_TRK_GET_TSSI_VALUE_D(h2c_pkt) \ 443 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 16, 8) 444 #define PWR_TRK_SET_TSSI_VALUE_D(h2c_pkt, value) \ 445 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 16, 8, value) 446 #define PSD_GET_START_PSD(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 16) 447 #define PSD_SET_START_PSD(h2c_pkt, value) \ 448 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 16, value) 449 #define PSD_GET_END_PSD(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 16) 450 #define PSD_SET_END_PSD(h2c_pkt, value) \ 451 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 16, value) 452 #define PHYDM_INFO_GET_REF_TYPE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 453 #define PHYDM_INFO_SET_REF_TYPE(h2c_pkt, value) \ 454 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 455 #define PHYDM_INFO_GET_RF_TYPE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 456 #define PHYDM_INFO_SET_RF_TYPE(h2c_pkt, value) \ 457 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 458 #define PHYDM_INFO_GET_CUT_VER(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 459 #define PHYDM_INFO_SET_CUT_VER(h2c_pkt, value) \ 460 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 461 #define PHYDM_INFO_GET_RX_ANT_STATUS(h2c_pkt) \ 462 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 4) 463 #define PHYDM_INFO_SET_RX_ANT_STATUS(h2c_pkt, value) \ 464 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 4, value) 465 #define PHYDM_INFO_GET_TX_ANT_STATUS(h2c_pkt) \ 466 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 28, 4) 467 #define PHYDM_INFO_SET_TX_ANT_STATUS(h2c_pkt, value) \ 468 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 28, 4, value) 469 #define PHYDM_INFO_GET_EXT_PA(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 0, 8) 470 #define PHYDM_INFO_SET_EXT_PA(h2c_pkt, value) \ 471 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 0, 8, value) 472 #define PHYDM_INFO_GET_PACKAGE_TYPE(h2c_pkt) \ 473 LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 8, 8) 474 #define PHYDM_INFO_SET_PACKAGE_TYPE(h2c_pkt, value) \ 475 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 8, 8, value) 476 #define PHYDM_INFO_GET_MP_MODE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 16, 1) 477 #define PHYDM_INFO_SET_MP_MODE(h2c_pkt, value) \ 478 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 16, 1, value) 479 #define FW_SNDING_GET_SU0(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 480 #define FW_SNDING_SET_SU0(h2c_pkt, value) \ 481 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 482 #define FW_SNDING_GET_SU1(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 483 #define FW_SNDING_SET_SU1(h2c_pkt, value) \ 484 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 485 #define FW_SNDING_GET_MU(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 486 #define FW_SNDING_SET_MU(h2c_pkt, value) \ 487 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 488 #define FW_SNDING_GET_PERIOD(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 489 #define FW_SNDING_SET_PERIOD(h2c_pkt, value) \ 490 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 491 #define FW_SNDING_GET_NDPA0_HEAD_PG(h2c_pkt) \ 492 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 493 #define FW_SNDING_SET_NDPA0_HEAD_PG(h2c_pkt, value) \ 494 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 495 #define FW_SNDING_GET_NDPA1_HEAD_PG(h2c_pkt) \ 496 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 497 #define FW_SNDING_SET_NDPA1_HEAD_PG(h2c_pkt, value) \ 498 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 499 #define FW_SNDING_GET_MU_NDPA_HEAD_PG(h2c_pkt) \ 500 LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 0, 8) 501 #define FW_SNDING_SET_MU_NDPA_HEAD_PG(h2c_pkt, value) \ 502 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 0, 8, value) 503 #define FW_SNDING_GET_RPT0_HEAD_PG(h2c_pkt) \ 504 LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 8, 8) 505 #define FW_SNDING_SET_RPT0_HEAD_PG(h2c_pkt, value) \ 506 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 8, 8, value) 507 #define FW_SNDING_GET_RPT1_HEAD_PG(h2c_pkt) \ 508 LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 16, 8) 509 #define FW_SNDING_SET_RPT1_HEAD_PG(h2c_pkt, value) \ 510 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 16, 8, value) 511 #define FW_SNDING_GET_RPT2_HEAD_PG(h2c_pkt) \ 512 LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 24, 8) 513 #define FW_SNDING_SET_RPT2_HEAD_PG(h2c_pkt, value) \ 514 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 24, 8, value) 515 #define FW_FWCTRL_GET_SEQ_NUM(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 516 #define FW_FWCTRL_SET_SEQ_NUM(h2c_pkt, value) \ 517 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 518 #define FW_FWCTRL_GET_MORE_CONTENT(h2c_pkt) \ 519 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 1) 520 #define FW_FWCTRL_SET_MORE_CONTENT(h2c_pkt, value) \ 521 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 1, value) 522 #define FW_FWCTRL_GET_CONTENT_IDX(h2c_pkt) \ 523 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 9, 7) 524 #define FW_FWCTRL_SET_CONTENT_IDX(h2c_pkt, value) \ 525 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 9, 7, value) 526 #define FW_FWCTRL_GET_CLASS_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 527 #define FW_FWCTRL_SET_CLASS_ID(h2c_pkt, value) \ 528 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 529 #define FW_FWCTRL_GET_LENGTH(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 530 #define FW_FWCTRL_SET_LENGTH(h2c_pkt, value) \ 531 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 532 #define FW_FWCTRL_GET_CONTENT(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 32) 533 #define FW_FWCTRL_SET_CONTENT(h2c_pkt, value) \ 534 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 32, value) 535 #define SEND_SCAN_PKT_GET_SIZE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 16) 536 #define SEND_SCAN_PKT_SET_SIZE(h2c_pkt, value) \ 537 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 16, value) 538 #define SEND_SCAN_PKT_GET_INDEX(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 539 #define SEND_SCAN_PKT_SET_INDEX(h2c_pkt, value) \ 540 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 541 #define SEND_SCAN_PKT_GET_LOC(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 542 #define SEND_SCAN_PKT_SET_LOC(h2c_pkt, value) \ 543 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 544 #define BCN_OFFLOAD_GET_REQUEST_VERSION(h2c_pkt) \ 545 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 546 #define BCN_OFFLOAD_SET_REQUEST_VERSION(h2c_pkt, value) \ 547 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 548 #define BCN_OFFLOAD_GET_ENABLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 549 #define BCN_OFFLOAD_SET_ENABLE(h2c_pkt, value) \ 550 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 551 #define BCN_OFFLOAD_GET_MORE_RULE(h2c_pkt) \ 552 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 553 #define BCN_OFFLOAD_SET_MORE_RULE(h2c_pkt, value) \ 554 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 555 #define BCN_OFFLOAD_GET_C2H_PERIODIC_REPORT(h2c_pkt) \ 556 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 3, 1) 557 #define BCN_OFFLOAD_SET_C2H_PERIODIC_REPORT(h2c_pkt, value) \ 558 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 3, 1, value) 559 #define BCN_OFFLOAD_GET_REPORT_PERIOD(h2c_pkt) \ 560 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 561 #define BCN_OFFLOAD_SET_REPORT_PERIOD(h2c_pkt, value) \ 562 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 563 #define BCN_OFFLOAD_GET_RULE_LENGTH(h2c_pkt) \ 564 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 565 #define BCN_OFFLOAD_SET_RULE_LENGTH(h2c_pkt, value) \ 566 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 567 #define BCN_OFFLOAD_GET_RULE_CONTENT(h2c_pkt) \ 568 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 569 #define BCN_OFFLOAD_SET_RULE_CONTENT(h2c_pkt, value) \ 570 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 571 #define DROP_SCAN_PKT_GET_DROP_ALL(h2c_pkt) \ 572 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 573 #define DROP_SCAN_PKT_SET_DROP_ALL(h2c_pkt, value) \ 574 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 575 #define DROP_SCAN_PKT_GET_DROP_SINGLE(h2c_pkt) \ 576 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 577 #define DROP_SCAN_PKT_SET_DROP_SINGLE(h2c_pkt, value) \ 578 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 579 #define DROP_SCAN_PKT_GET_DROP_IDX(h2c_pkt) \ 580 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 581 #define DROP_SCAN_PKT_SET_DROP_IDX(h2c_pkt, value) \ 582 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 583 #define P2PPS_GET_OFFLOAD_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 1) 584 #define P2PPS_SET_OFFLOAD_EN(h2c_pkt, value) \ 585 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 1, value) 586 #define P2PPS_GET_ROLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 1, 1) 587 #define P2PPS_SET_ROLE(h2c_pkt, value) \ 588 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 1, 1, value) 589 #define P2PPS_GET_CTWINDOW_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 590 #define P2PPS_SET_CTWINDOW_EN(h2c_pkt, value) \ 591 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 592 #define P2PPS_GET_NOA_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 3, 1) 593 #define P2PPS_SET_NOA_EN(h2c_pkt, value) \ 594 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 3, 1, value) 595 #define P2PPS_GET_NOA_SEL(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 4, 1) 596 #define P2PPS_SET_NOA_SEL(h2c_pkt, value) \ 597 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 4, 1, value) 598 #define P2PPS_GET_ALLSTASLEEP(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 5, 1) 599 #define P2PPS_SET_ALLSTASLEEP(h2c_pkt, value) \ 600 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 5, 1, value) 601 #define P2PPS_GET_DISCOVERY(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 6, 1) 602 #define P2PPS_SET_DISCOVERY(h2c_pkt, value) \ 603 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 6, 1, value) 604 #define P2PPS_GET_DISABLE_CLOSERF(h2c_pkt) \ 605 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 7, 1) 606 #define P2PPS_SET_DISABLE_CLOSERF(h2c_pkt, value) \ 607 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 7, 1, value) 608 #define P2PPS_GET_P2P_PORT_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 609 #define P2PPS_SET_P2P_PORT_ID(h2c_pkt, value) \ 610 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 611 #define P2PPS_GET_P2P_GROUP(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 612 #define P2PPS_SET_P2P_GROUP(h2c_pkt, value) \ 613 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 614 #define P2PPS_GET_P2P_MACID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 615 #define P2PPS_SET_P2P_MACID(h2c_pkt, value) \ 616 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 617 #define P2PPS_GET_CTWINDOW_LENGTH(h2c_pkt) \ 618 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 619 #define P2PPS_SET_CTWINDOW_LENGTH(h2c_pkt, value) \ 620 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 621 #define P2PPS_GET_NOA_DURATION_PARA(h2c_pkt) \ 622 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 32) 623 #define P2PPS_SET_NOA_DURATION_PARA(h2c_pkt, value) \ 624 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 32, value) 625 #define P2PPS_GET_NOA_INTERVAL_PARA(h2c_pkt) \ 626 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 32) 627 #define P2PPS_SET_NOA_INTERVAL_PARA(h2c_pkt, value) \ 628 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 32, value) 629 #define P2PPS_GET_NOA_START_TIME_PARA(h2c_pkt) \ 630 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 32) 631 #define P2PPS_SET_NOA_START_TIME_PARA(h2c_pkt, value) \ 632 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 32, value) 633 #define P2PPS_GET_NOA_COUNT_PARA(h2c_pkt) \ 634 LE_BITS_TO_4BYTE(h2c_pkt + 0X1C, 0, 32) 635 #define P2PPS_SET_NOA_COUNT_PARA(h2c_pkt, value) \ 636 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X1C, 0, 32, value) 637 #define BT_COEX_GET_DATA_START(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 638 #define BT_COEX_SET_DATA_START(h2c_pkt, value) \ 639 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 640 #define ACT_SCHEDULE_REQ_GET_MODULE_ID(h2c_pkt) \ 641 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 642 #define ACT_SCHEDULE_REQ_SET_MODULE_ID(h2c_pkt, value) \ 643 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 644 #define ACT_SCHEDULE_REQ_GET_PRIORITY(h2c_pkt) \ 645 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 646 #define ACT_SCHEDULE_REQ_SET_PRIORITY(h2c_pkt, value) \ 647 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 648 #define ACT_SCHEDULE_REQ_GET_RSVD1(h2c_pkt) \ 649 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 16) 650 #define ACT_SCHEDULE_REQ_SET_RSVD1(h2c_pkt, value) \ 651 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 16, value) 652 #define ACT_SCHEDULE_REQ_GET_START_TIME(h2c_pkt) \ 653 LE_BITS_TO_4BYTE(h2c_pkt + 0XC, 0, 32) 654 #define ACT_SCHEDULE_REQ_SET_START_TIME(h2c_pkt, value) \ 655 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0XC, 0, 32, value) 656 #define ACT_SCHEDULE_REQ_GET_DURATION(h2c_pkt) \ 657 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 32) 658 #define ACT_SCHEDULE_REQ_SET_DURATION(h2c_pkt, value) \ 659 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 32, value) 660 #define ACT_SCHEDULE_REQ_GET_PERIOD(h2c_pkt) \ 661 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 32) 662 #define ACT_SCHEDULE_REQ_SET_PERIOD(h2c_pkt, value) \ 663 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 32, value) 664 #define ACT_SCHEDULE_REQ_GET_TSF_IDX(h2c_pkt) \ 665 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 8) 666 #define ACT_SCHEDULE_REQ_SET_TSF_IDX(h2c_pkt, value) \ 667 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 8, value) 668 #define ACT_SCHEDULE_REQ_GET_CHANNEL(h2c_pkt) \ 669 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 8, 8) 670 #define ACT_SCHEDULE_REQ_SET_CHANNEL(h2c_pkt, value) \ 671 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 8, 8, value) 672 #define ACT_SCHEDULE_REQ_GET_BW(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 16, 8) 673 #define ACT_SCHEDULE_REQ_SET_BW(h2c_pkt, value) \ 674 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 16, 8, value) 675 #define ACT_SCHEDULE_REQ_GET_PRIMART_CH_IDX(h2c_pkt) \ 676 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 24, 9) 677 #define ACT_SCHEDULE_REQ_SET_PRIMART_CH_IDX(h2c_pkt, value) \ 678 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 24, 9, value) 679 #define NAN_CTRL_GET_NAN_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 2) 680 #define NAN_CTRL_SET_NAN_EN(h2c_pkt, value) \ 681 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 2, value) 682 #define NAN_CTRL_GET_WARMUP_TIMER_FLAG(h2c_pkt) \ 683 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 2, 1) 684 #define NAN_CTRL_SET_WARMUP_TIMER_FLAG(h2c_pkt, value) \ 685 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 2, 1, value) 686 #define NAN_CTRL_GET_SUPPORT_BAND(h2c_pkt) \ 687 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 2) 688 #define NAN_CTRL_SET_SUPPORT_BAND(h2c_pkt, value) \ 689 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 2, value) 690 #define NAN_CTRL_GET_DISABLE_2G_DISC_BCN(h2c_pkt) \ 691 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 10, 1) 692 #define NAN_CTRL_SET_DISABLE_2G_DISC_BCN(h2c_pkt, value) \ 693 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 10, 1, value) 694 #define NAN_CTRL_GET_DISABLE_5G_DISC_BCN(h2c_pkt) \ 695 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 11, 1) 696 #define NAN_CTRL_SET_DISABLE_5G_DISC_BCN(h2c_pkt, value) \ 697 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 11, 1, value) 698 #define NAN_CTRL_GET_BCN_RSVD_PAGE_OFFSET(h2c_pkt) \ 699 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 700 #define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET(h2c_pkt, value) \ 701 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 702 #define NAN_CTRL_GET_CHANNEL_2G(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 703 #define NAN_CTRL_SET_CHANNEL_2G(h2c_pkt, value) \ 704 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 705 #define NAN_CTRL_GET_CHANNEL_5G(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 706 #define NAN_CTRL_SET_CHANNEL_5G(h2c_pkt, value) \ 707 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 708 #define NAN_CTRL_GET_MASTERPREFERENCE_VALUE(h2c_pkt) \ 709 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 8, 8) 710 #define NAN_CTRL_SET_MASTERPREFERENCE_VALUE(h2c_pkt, value) \ 711 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 8, 8, value) 712 #define NAN_CTRL_GET_RANDOMFACTOR_VALUE(h2c_pkt) \ 713 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 16, 8) 714 #define NAN_CTRL_SET_RANDOMFACTOR_VALUE(h2c_pkt, value) \ 715 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 16, 8, value) 716 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_0(h2c_pkt) \ 717 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 718 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0(h2c_pkt, value) \ 719 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 720 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_0(h2c_pkt) \ 721 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 722 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0(h2c_pkt, value) \ 723 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 724 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_0(h2c_pkt) \ 725 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 16) 726 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0(h2c_pkt, value) \ 727 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 16, value) 728 #define NAN_CHANNEL_PLAN_0_GET_DURATION_0(h2c_pkt) \ 729 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 16, 16) 730 #define NAN_CHANNEL_PLAN_0_SET_DURATION_0(h2c_pkt, value) \ 731 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 16, 16, value) 732 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_1(h2c_pkt) \ 733 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 8) 734 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1(h2c_pkt, value) \ 735 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 8, value) 736 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_1(h2c_pkt) \ 737 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 8, 8) 738 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1(h2c_pkt, value) \ 739 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 8, 8, value) 740 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_1(h2c_pkt) \ 741 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 16) 742 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1(h2c_pkt, value) \ 743 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 16, value) 744 #define NAN_CHANNEL_PLAN_0_GET_DURATION_1(h2c_pkt) \ 745 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 16, 16) 746 #define NAN_CHANNEL_PLAN_0_SET_DURATION_1(h2c_pkt, value) \ 747 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 16, 16, value) 748 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_2(h2c_pkt) \ 749 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 8) 750 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2(h2c_pkt, value) \ 751 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 8, value) 752 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_2(h2c_pkt) \ 753 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 8, 8) 754 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2(h2c_pkt, value) \ 755 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 8, 8, value) 756 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_2(h2c_pkt) \ 757 LE_BITS_TO_4BYTE(h2c_pkt + 0X1C, 0, 16) 758 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2(h2c_pkt, value) \ 759 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X1C, 0, 16, value) 760 #define NAN_CHANNEL_PLAN_0_GET_DURATION_2(h2c_pkt) \ 761 LE_BITS_TO_4BYTE(h2c_pkt + 0X1C, 16, 16) 762 #define NAN_CHANNEL_PLAN_0_SET_DURATION_2(h2c_pkt, value) \ 763 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X1C, 16, 16, value) 764 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_3(h2c_pkt) \ 765 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 766 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3(h2c_pkt, value) \ 767 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 768 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_3(h2c_pkt) \ 769 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 770 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3(h2c_pkt, value) \ 771 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 772 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_3(h2c_pkt) \ 773 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 16) 774 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3(h2c_pkt, value) \ 775 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 16, value) 776 #define NAN_CHANNEL_PLAN_1_GET_DURATION_3(h2c_pkt) \ 777 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 16, 16) 778 #define NAN_CHANNEL_PLAN_1_SET_DURATION_3(h2c_pkt, value) \ 779 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 16, 16, value) 780 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_4(h2c_pkt) \ 781 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 8) 782 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4(h2c_pkt, value) \ 783 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 8, value) 784 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_4(h2c_pkt) \ 785 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 8, 8) 786 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4(h2c_pkt, value) \ 787 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 8, 8, value) 788 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_4(h2c_pkt) \ 789 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 0, 16) 790 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4(h2c_pkt, value) \ 791 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 0, 16, value) 792 #define NAN_CHANNEL_PLAN_1_GET_DURATION_4(h2c_pkt) \ 793 LE_BITS_TO_4BYTE(h2c_pkt + 0X14, 16, 16) 794 #define NAN_CHANNEL_PLAN_1_SET_DURATION_4(h2c_pkt, value) \ 795 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X14, 16, 16, value) 796 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_5(h2c_pkt) \ 797 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 0, 8) 798 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5(h2c_pkt, value) \ 799 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 0, 8, value) 800 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_5(h2c_pkt) \ 801 LE_BITS_TO_4BYTE(h2c_pkt + 0X18, 8, 8) 802 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5(h2c_pkt, value) \ 803 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X18, 8, 8, value) 804 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_5(h2c_pkt) \ 805 LE_BITS_TO_4BYTE(h2c_pkt + 0X1C, 0, 16) 806 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5(h2c_pkt, value) \ 807 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X1C, 0, 16, value) 808 #define NAN_CHANNEL_PLAN_1_GET_DURATION_5(h2c_pkt) \ 809 LE_BITS_TO_4BYTE(h2c_pkt + 0X1C, 16, 16) 810 #define NAN_CHANNEL_PLAN_1_SET_DURATION_5(h2c_pkt, value) \ 811 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X1C, 16, 16, value) 812 #define NAN_FUNC_CTRL_GET_PORT_IDX(h2c_pkt) \ 813 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 0, 8) 814 #define NAN_FUNC_CTRL_SET_PORT_IDX(h2c_pkt, value) \ 815 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 0, 8, value) 816 #define NAN_FUNC_CTRL_GET_MAC_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 8, 8) 817 #define NAN_FUNC_CTRL_SET_MAC_ID(h2c_pkt, value) \ 818 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 8, 8, value) 819 #define NAN_FUNC_CTRL_GET_MASTER_PREF(h2c_pkt) \ 820 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 16, 8) 821 #define NAN_FUNC_CTRL_SET_MASTER_PREF(h2c_pkt, value) \ 822 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 16, 8, value) 823 #define NAN_FUNC_CTRL_GET_RANDOM_FACTOR(h2c_pkt) \ 824 LE_BITS_TO_4BYTE(h2c_pkt + 0X08, 24, 8) 825 #define NAN_FUNC_CTRL_SET_RANDOM_FACTOR(h2c_pkt, value) \ 826 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X08, 24, 8, value) 827 #define NAN_FUNC_CTRL_GET_OP_CH_24G(h2c_pkt) \ 828 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 0, 8) 829 #define NAN_FUNC_CTRL_SET_OP_CH_24G(h2c_pkt, value) \ 830 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 0, 8, value) 831 #define NAN_FUNC_CTRL_GET_OP_CH_5G(h2c_pkt) \ 832 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 8, 8) 833 #define NAN_FUNC_CTRL_SET_OP_CH_5G(h2c_pkt, value) \ 834 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 8, 8, value) 835 #define NAN_FUNC_CTRL_GET_OPTIONS(h2c_pkt) \ 836 LE_BITS_TO_4BYTE(h2c_pkt + 0X0C, 16, 16) 837 #define NAN_FUNC_CTRL_SET_OPTIONS(h2c_pkt, value) \ 838 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X0C, 16, 16, value) 839 #define NAN_FUNC_CTRL_GET_SYNC_BCN_RSVD_OFFSET(h2c_pkt) \ 840 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 0, 8) 841 #define NAN_FUNC_CTRL_SET_SYNC_BCN_RSVD_OFFSET(h2c_pkt, value) \ 842 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 0, 8, value) 843 #define NAN_FUNC_CTRL_GET_DISC_BCN_RSVD_OFFSET(h2c_pkt) \ 844 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 8, 8) 845 #define NAN_FUNC_CTRL_SET_DISC_BCN_RSVD_OFFSET(h2c_pkt, value) \ 846 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 8, 8, value) 847 #define NAN_FUNC_CTRL_GET_DW_SCHDL_PRIORITY(h2c_pkt) \ 848 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 16, 8) 849 #define NAN_FUNC_CTRL_SET_DW_SCHDL_PRIORITY(h2c_pkt, value) \ 850 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 16, 8, value) 851 #define NAN_FUNC_CTRL_GET_TIME_INDICATE_PERIOD(h2c_pkt) \ 852 LE_BITS_TO_4BYTE(h2c_pkt + 0X10, 24, 8) 853 #define NAN_FUNC_CTRL_SET_TIME_INDICATE_PERIOD(h2c_pkt, value) \ 854 SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X10, 24, 8, value) 855 #endif 856