1*4882a593Smuzhiyun /****************************************************************************** 2*4882a593Smuzhiyun * 3*4882a593Smuzhiyun * Copyright(c) 2019 Realtek Corporation. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify it 6*4882a593Smuzhiyun * under the terms of version 2 of the GNU General Public License as 7*4882a593Smuzhiyun * published by the Free Software Foundation. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful, but WITHOUT 10*4882a593Smuzhiyun * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11*4882a593Smuzhiyun * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12*4882a593Smuzhiyun * more details. 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun *****************************************************************************/ 15*4882a593Smuzhiyun #ifndef _RTW_GENERAL_DEF_H_ 16*4882a593Smuzhiyun #define _RTW_GENERAL_DEF_H_ 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #define SEC_CAP_CHK_BMC BIT0 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define BIT0 0x00000001 21*4882a593Smuzhiyun #define BIT1 0x00000002 22*4882a593Smuzhiyun #define BIT2 0x00000004 23*4882a593Smuzhiyun #define BIT3 0x00000008 24*4882a593Smuzhiyun #define BIT4 0x00000010 25*4882a593Smuzhiyun #define BIT5 0x00000020 26*4882a593Smuzhiyun #define BIT6 0x00000040 27*4882a593Smuzhiyun #define BIT7 0x00000080 28*4882a593Smuzhiyun #define BIT8 0x00000100 29*4882a593Smuzhiyun #define BIT9 0x00000200 30*4882a593Smuzhiyun #define BIT10 0x00000400 31*4882a593Smuzhiyun #define BIT11 0x00000800 32*4882a593Smuzhiyun #define BIT12 0x00001000 33*4882a593Smuzhiyun #define BIT13 0x00002000 34*4882a593Smuzhiyun #define BIT14 0x00004000 35*4882a593Smuzhiyun #define BIT15 0x00008000 36*4882a593Smuzhiyun #define BIT16 0x00010000 37*4882a593Smuzhiyun #define BIT17 0x00020000 38*4882a593Smuzhiyun #define BIT18 0x00040000 39*4882a593Smuzhiyun #define BIT19 0x00080000 40*4882a593Smuzhiyun #define BIT20 0x00100000 41*4882a593Smuzhiyun #define BIT21 0x00200000 42*4882a593Smuzhiyun #define BIT22 0x00400000 43*4882a593Smuzhiyun #define BIT23 0x00800000 44*4882a593Smuzhiyun #define BIT24 0x01000000 45*4882a593Smuzhiyun #define BIT25 0x02000000 46*4882a593Smuzhiyun #define BIT26 0x04000000 47*4882a593Smuzhiyun #define BIT27 0x08000000 48*4882a593Smuzhiyun #define BIT28 0x10000000 49*4882a593Smuzhiyun #define BIT29 0x20000000 50*4882a593Smuzhiyun #define BIT30 0x40000000 51*4882a593Smuzhiyun #define BIT31 0x80000000 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #define RTW_U32_MAX 0xFFFFFFFF 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun enum rtl_ic_id { 56*4882a593Smuzhiyun RTL8852A, 57*4882a593Smuzhiyun RTL8834A, 58*4882a593Smuzhiyun RTL8852B, 59*4882a593Smuzhiyun RTL8852C, 60*4882a593Smuzhiyun MAX_IC_ID 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun /* BIT definition for combination */ 64*4882a593Smuzhiyun enum rtw_hci_type { 65*4882a593Smuzhiyun RTW_HCI_PCIE = BIT0, 66*4882a593Smuzhiyun RTW_HCI_USB = BIT1, 67*4882a593Smuzhiyun RTW_HCI_SDIO = BIT2, 68*4882a593Smuzhiyun RTW_HCI_GSPI = BIT3, 69*4882a593Smuzhiyun RTW_HCI_MAX, 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun #define SM_PS_STATIC 0 73*4882a593Smuzhiyun #define SM_PS_DYNAMIC 1 74*4882a593Smuzhiyun #define SM_PS_INVALID 2 75*4882a593Smuzhiyun #define SM_PS_DISABLE 3 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun #define MAC_ADDRESS_LENGTH 6 78*4882a593Smuzhiyun #define IPV4_ADDRESS_LENGTH 4 79*4882a593Smuzhiyun #define IPV6_ADDRESS_LENGTH 16 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun /* Core shall translate system condition into device state for PHL controller */ 82*4882a593Smuzhiyun enum rtw_dev_state { 83*4882a593Smuzhiyun RTW_DEV_WORKING = BIT0, 84*4882a593Smuzhiyun RTW_DEV_SUSPENDING = BIT1, 85*4882a593Smuzhiyun RTW_DEV_RESUMING = BIT2, 86*4882a593Smuzhiyun RTW_DEV_SURPRISE_REMOVAL = BIT3, 87*4882a593Smuzhiyun RTW_DEV_SHUTTING_DOWN = BIT4, /* set by core */ 88*4882a593Smuzhiyun RTW_DEV_MAX 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun #define RTW_RATE_MODE_MASK (BIT(7) | BIT(8)) 92*4882a593Smuzhiyun #define RTW_RATE_MODE_SHIFT 7 93*4882a593Smuzhiyun #define RTW_RATE_INDEX_MASK 0x007f 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #define RTW_GET_RATE_MODE(_rtw_data_rate) (u16)((_rtw_data_rate & RTW_RATE_MODE_MASK) >> RTW_RATE_MODE_SHIFT) 96*4882a593Smuzhiyun #define RTW_GET_RATE_INDEX(_rtw_data_rate) (u16)(_rtw_data_rate & RTW_RATE_INDEX_MASK) 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun enum rtw_rate_mode { 99*4882a593Smuzhiyun RTW_LEGACY_MODE = 0, 100*4882a593Smuzhiyun RTW_HT_MODE = 1, 101*4882a593Smuzhiyun RTW_VHT_MODE = 2, 102*4882a593Smuzhiyun RTW_HE_MODE = 3 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun enum rtw_data_rate { 106*4882a593Smuzhiyun RTW_DATA_RATE_CCK1 = 0x0, 107*4882a593Smuzhiyun RTW_DATA_RATE_CCK2 = 0x1, 108*4882a593Smuzhiyun RTW_DATA_RATE_CCK5_5 = 0x2, 109*4882a593Smuzhiyun RTW_DATA_RATE_CCK11 = 0x3, 110*4882a593Smuzhiyun RTW_DATA_RATE_OFDM6 = 0x4, 111*4882a593Smuzhiyun RTW_DATA_RATE_OFDM9 = 0x5, 112*4882a593Smuzhiyun RTW_DATA_RATE_OFDM12 = 0x6, 113*4882a593Smuzhiyun RTW_DATA_RATE_OFDM18 = 0x7, 114*4882a593Smuzhiyun RTW_DATA_RATE_OFDM24 = 0x8, 115*4882a593Smuzhiyun RTW_DATA_RATE_OFDM36 = 0x9, 116*4882a593Smuzhiyun RTW_DATA_RATE_OFDM48 = 0xA, 117*4882a593Smuzhiyun RTW_DATA_RATE_OFDM54 = 0xB, 118*4882a593Smuzhiyun RTW_DATA_RATE_MCS0 = 0x80, 119*4882a593Smuzhiyun RTW_DATA_RATE_MCS1 = 0x81, 120*4882a593Smuzhiyun RTW_DATA_RATE_MCS2 = 0x82, 121*4882a593Smuzhiyun RTW_DATA_RATE_MCS3 = 0x83, 122*4882a593Smuzhiyun RTW_DATA_RATE_MCS4 = 0x84, 123*4882a593Smuzhiyun RTW_DATA_RATE_MCS5 = 0x85, 124*4882a593Smuzhiyun RTW_DATA_RATE_MCS6 = 0x86, 125*4882a593Smuzhiyun RTW_DATA_RATE_MCS7 = 0x87, 126*4882a593Smuzhiyun RTW_DATA_RATE_MCS8 = 0x88, 127*4882a593Smuzhiyun RTW_DATA_RATE_MCS9 = 0x89, 128*4882a593Smuzhiyun RTW_DATA_RATE_MCS10 = 0x8A, 129*4882a593Smuzhiyun RTW_DATA_RATE_MCS11 = 0x8B, 130*4882a593Smuzhiyun RTW_DATA_RATE_MCS12 = 0x8C, 131*4882a593Smuzhiyun RTW_DATA_RATE_MCS13 = 0x8D, 132*4882a593Smuzhiyun RTW_DATA_RATE_MCS14 = 0x8E, 133*4882a593Smuzhiyun RTW_DATA_RATE_MCS15 = 0x8F, 134*4882a593Smuzhiyun RTW_DATA_RATE_MCS16 = 0x90, 135*4882a593Smuzhiyun RTW_DATA_RATE_MCS17 = 0x91, 136*4882a593Smuzhiyun RTW_DATA_RATE_MCS18 = 0x92, 137*4882a593Smuzhiyun RTW_DATA_RATE_MCS19 = 0x93, 138*4882a593Smuzhiyun RTW_DATA_RATE_MCS20 = 0x94, 139*4882a593Smuzhiyun RTW_DATA_RATE_MCS21 = 0x95, 140*4882a593Smuzhiyun RTW_DATA_RATE_MCS22 = 0x96, 141*4882a593Smuzhiyun RTW_DATA_RATE_MCS23 = 0x97, 142*4882a593Smuzhiyun RTW_DATA_RATE_MCS24 = 0x98, 143*4882a593Smuzhiyun RTW_DATA_RATE_MCS25 = 0x99, 144*4882a593Smuzhiyun RTW_DATA_RATE_MCS26 = 0x9A, 145*4882a593Smuzhiyun RTW_DATA_RATE_MCS27 = 0x9B, 146*4882a593Smuzhiyun RTW_DATA_RATE_MCS28 = 0x9C, 147*4882a593Smuzhiyun RTW_DATA_RATE_MCS29 = 0x9D, 148*4882a593Smuzhiyun RTW_DATA_RATE_MCS30 = 0x9E, 149*4882a593Smuzhiyun RTW_DATA_RATE_MCS31 = 0x9F, 150*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS0 = 0x100, 151*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS1 = 0x101, 152*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS2 = 0x102, 153*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS3 = 0x103, 154*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS4 = 0x104, 155*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS5 = 0x105, 156*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS6 = 0x106, 157*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS7 = 0x107, 158*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS8 = 0x108, 159*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS1_MCS9 = 0x109, 160*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS0 = 0x110, 161*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS1 = 0x111, 162*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS2 = 0x112, 163*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS3 = 0x113, 164*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS4 = 0x114, 165*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS5 = 0x115, 166*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS6 = 0x116, 167*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS7 = 0x117, 168*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS8 = 0x118, 169*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS2_MCS9 = 0x119, 170*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS0 = 0x120, 171*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS1 = 0x121, 172*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS2 = 0x122, 173*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS3 = 0x123, 174*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS4 = 0x124, 175*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS5 = 0x125, 176*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS6 = 0x126, 177*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS7 = 0x127, 178*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS8 = 0x128, 179*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS3_MCS9 = 0x129, 180*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS0 = 0x130, 181*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS1 = 0x131, 182*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS2 = 0x132, 183*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS3 = 0x133, 184*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS4 = 0x134, 185*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS5 = 0x135, 186*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS6 = 0x136, 187*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS7 = 0x137, 188*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS8 = 0x138, 189*4882a593Smuzhiyun RTW_DATA_RATE_VHT_NSS4_MCS9 = 0x139, 190*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS0 = 0x180, 191*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS1 = 0x181, 192*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS2 = 0x182, 193*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS3 = 0x183, 194*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS4 = 0x184, 195*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS5 = 0x185, 196*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS6 = 0x186, 197*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS7 = 0x187, 198*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS8 = 0x188, 199*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS9 = 0x189, 200*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS10 = 0x18A, 201*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS1_MCS11 = 0x18B, 202*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS0 = 0x190, 203*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS1 = 0x191, 204*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS2 = 0x192, 205*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS3 = 0x193, 206*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS4 = 0x194, 207*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS5 = 0x195, 208*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS6 = 0x196, 209*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS7 = 0x197, 210*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS8 = 0x198, 211*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS9 = 0x199, 212*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS10 = 0x19A, 213*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS2_MCS11 = 0x19B, 214*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS0 = 0x1A0, 215*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS1 = 0x1A1, 216*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS2 = 0x1A2, 217*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS3 = 0x1A3, 218*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS4 = 0x1A4, 219*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS5 = 0x1A5, 220*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS6 = 0x1A6, 221*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS7 = 0x1A7, 222*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS8 = 0x1A8, 223*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS9 = 0x1A9, 224*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS10 = 0x1AA, 225*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS3_MCS11 = 0x1AB, 226*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS0 = 0x1B0, 227*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS1 = 0x1B1, 228*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS2 = 0x1B2, 229*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS3 = 0x1B3, 230*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS4 = 0x1B4, 231*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS5 = 0x1B5, 232*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS6 = 0x1B6, 233*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS7 = 0x1B7, 234*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS8 = 0x1B8, 235*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS9 = 0x1B9, 236*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS10 = 0x1BA, 237*4882a593Smuzhiyun RTW_DATA_RATE_HE_NSS4_MCS11 = 0x1BB, 238*4882a593Smuzhiyun RTW_DATA_RATE_MAX = 0x1FF 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun enum rtw_gi_ltf { 242*4882a593Smuzhiyun RTW_GILTF_LGI_4XHE32 = 0, 243*4882a593Smuzhiyun RTW_GILTF_SGI_4XHE08 = 1, 244*4882a593Smuzhiyun RTW_GILTF_2XHE16 = 2, 245*4882a593Smuzhiyun RTW_GILTF_2XHE08 = 3, 246*4882a593Smuzhiyun RTW_GILTF_1XHE16 = 4, 247*4882a593Smuzhiyun RTW_GILTF_1XHE08 = 5, 248*4882a593Smuzhiyun RTW_GILTF_MAX 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun /* 11ax spec define for HE Trigger Frame, only used for HE Trigger Frame! */ 253*4882a593Smuzhiyun enum rtw_gi_ltf_ul_tb { 254*4882a593Smuzhiyun RTW_TB_GILTF_1XHE16 = 0, 255*4882a593Smuzhiyun RTW_TB_GILTF_2XHE16 = 1, 256*4882a593Smuzhiyun RTW_TB_GILTF_4XHE32 = 2, 257*4882a593Smuzhiyun RTW_TB_GILTF_MAX 258*4882a593Smuzhiyun }; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun #define RTW_PHL_MAX_RF_PATH 4 261*4882a593Smuzhiyun enum rf_path { 262*4882a593Smuzhiyun RF_PATH_A = 0, 263*4882a593Smuzhiyun RF_PATH_B = 1, 264*4882a593Smuzhiyun RF_PATH_C = 2, 265*4882a593Smuzhiyun RF_PATH_D = 3, 266*4882a593Smuzhiyun RF_PATH_AB, 267*4882a593Smuzhiyun RF_PATH_AC, 268*4882a593Smuzhiyun RF_PATH_AD, 269*4882a593Smuzhiyun RF_PATH_BC, 270*4882a593Smuzhiyun RF_PATH_BD, 271*4882a593Smuzhiyun RF_PATH_CD, 272*4882a593Smuzhiyun RF_PATH_ABC, 273*4882a593Smuzhiyun RF_PATH_ABD, 274*4882a593Smuzhiyun RF_PATH_ACD, 275*4882a593Smuzhiyun RF_PATH_BCD, 276*4882a593Smuzhiyun RF_PATH_ABCD, 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun /*HW SPEC & SW/HW CAP*/ 280*4882a593Smuzhiyun #define PROTO_CAP_11B BIT0 281*4882a593Smuzhiyun #define PROTO_CAP_11G BIT1 282*4882a593Smuzhiyun #define PROTO_CAP_11N BIT2 283*4882a593Smuzhiyun #define PROTO_CAP_11AC BIT3 284*4882a593Smuzhiyun #define PROTO_CAP_11AX BIT4 285*4882a593Smuzhiyun #define PROTO_CAP_BIT_NUM 4 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun enum wlan_mode { 288*4882a593Smuzhiyun WLAN_MD_INVALID = 0, 289*4882a593Smuzhiyun WLAN_MD_11B = BIT0, 290*4882a593Smuzhiyun WLAN_MD_11A = BIT1, 291*4882a593Smuzhiyun WLAN_MD_11G = BIT2, 292*4882a593Smuzhiyun WLAN_MD_11N = BIT3, 293*4882a593Smuzhiyun WLAN_MD_11AC = BIT4, 294*4882a593Smuzhiyun WLAN_MD_11AX = BIT5, 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun /* Type for current wireless mode */ 297*4882a593Smuzhiyun WLAN_MD_11BG = (WLAN_MD_11B | WLAN_MD_11G), 298*4882a593Smuzhiyun WLAN_MD_11GN = (WLAN_MD_11G | WLAN_MD_11N), 299*4882a593Smuzhiyun WLAN_MD_11AN = (WLAN_MD_11A | WLAN_MD_11N), 300*4882a593Smuzhiyun WLAN_MD_11BN = (WLAN_MD_11B | WLAN_MD_11N), 301*4882a593Smuzhiyun WLAN_MD_11BGN = (WLAN_MD_11B | WLAN_MD_11G | WLAN_MD_11N), 302*4882a593Smuzhiyun WLAN_MD_11BGAC = (WLAN_MD_11B | WLAN_MD_11G | WLAN_MD_11AC), 303*4882a593Smuzhiyun WLAN_MD_11BGAX = (WLAN_MD_11B | WLAN_MD_11G | WLAN_MD_11AX), 304*4882a593Smuzhiyun WLAN_MD_11GAC = (WLAN_MD_11G | WLAN_MD_11AC), 305*4882a593Smuzhiyun WLAN_MD_11GAX = (WLAN_MD_11G | WLAN_MD_11AX), 306*4882a593Smuzhiyun WLAN_MD_11A_AC = (WLAN_MD_11A | WLAN_MD_11AC), 307*4882a593Smuzhiyun WLAN_MD_11A_AX = (WLAN_MD_11A | WLAN_MD_11AX), 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun /* Capability -Type for registry default wireless mode */ 310*4882a593Smuzhiyun WLAN_MD_11AGN = (WLAN_MD_11A | WLAN_MD_11G | WLAN_MD_11N ), 311*4882a593Smuzhiyun WLAN_MD_11ABGN = (WLAN_MD_11A | WLAN_MD_11B | WLAN_MD_11G | WLAN_MD_11N ), 312*4882a593Smuzhiyun WLAN_MD_11ANAC = (WLAN_MD_11A | WLAN_MD_11N | WLAN_MD_11AC), 313*4882a593Smuzhiyun WLAN_MD_11BGNAC = (WLAN_MD_11B | WLAN_MD_11G | WLAN_MD_11N | WLAN_MD_11AC), 314*4882a593Smuzhiyun WLAN_MD_11GNAC = (WLAN_MD_11G | WLAN_MD_11N | WLAN_MD_11AC), 315*4882a593Smuzhiyun WLAN_MD_24G_MIX = (WLAN_MD_11B | WLAN_MD_11G | WLAN_MD_11N | WLAN_MD_11AC | WLAN_MD_11AX), 316*4882a593Smuzhiyun WLAN_MD_5G_MIX = (WLAN_MD_11A | WLAN_MD_11N | WLAN_MD_11AC | WLAN_MD_11AX), 317*4882a593Smuzhiyun WLAN_MD_MAX = (WLAN_MD_24G_MIX|WLAN_MD_5G_MIX), 318*4882a593Smuzhiyun }; 319*4882a593Smuzhiyun 320*4882a593Smuzhiyun enum band_type { 321*4882a593Smuzhiyun BAND_ON_24G = 0, 322*4882a593Smuzhiyun BAND_ON_5G = 1, 323*4882a593Smuzhiyun BAND_ON_6G = 2, 324*4882a593Smuzhiyun BAND_MAX, 325*4882a593Smuzhiyun }; 326*4882a593Smuzhiyun 327*4882a593Smuzhiyun /*HW SPEC & SW/HW CAP*/ 328*4882a593Smuzhiyun #define BAND_CAP_2G BIT(BAND_ON_24G) 329*4882a593Smuzhiyun #define BAND_CAP_5G BIT(BAND_ON_5G) 330*4882a593Smuzhiyun #define BAND_CAP_6G BIT(BAND_ON_6G) 331*4882a593Smuzhiyun #define BAND_CAP_BIT_NUM 3 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun enum channel_width { 334*4882a593Smuzhiyun CHANNEL_WIDTH_20 = 0, 335*4882a593Smuzhiyun CHANNEL_WIDTH_40 = 1, 336*4882a593Smuzhiyun CHANNEL_WIDTH_80 = 2, 337*4882a593Smuzhiyun CHANNEL_WIDTH_160 = 3, 338*4882a593Smuzhiyun CHANNEL_WIDTH_80_80 = 4, 339*4882a593Smuzhiyun CHANNEL_WIDTH_5 = 5, 340*4882a593Smuzhiyun CHANNEL_WIDTH_10 = 6, 341*4882a593Smuzhiyun CHANNEL_WIDTH_MAX = 7, 342*4882a593Smuzhiyun }; 343*4882a593Smuzhiyun 344*4882a593Smuzhiyun /*HW SPEC & SW/HW CAP*/ 345*4882a593Smuzhiyun #define BW_CAP_20M BIT(CHANNEL_WIDTH_20) 346*4882a593Smuzhiyun #define BW_CAP_40M BIT(CHANNEL_WIDTH_40) 347*4882a593Smuzhiyun #define BW_CAP_80M BIT(CHANNEL_WIDTH_80) 348*4882a593Smuzhiyun #define BW_CAP_160M BIT(CHANNEL_WIDTH_160) 349*4882a593Smuzhiyun #define BW_CAP_80_80M BIT(CHANNEL_WIDTH_80_80) 350*4882a593Smuzhiyun #define BW_CAP_5M BIT(CHANNEL_WIDTH_5) 351*4882a593Smuzhiyun #define BW_CAP_10M BIT(CHANNEL_WIDTH_10) 352*4882a593Smuzhiyun #define BW_CAP_BIT_NUM 7 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun /* 356*4882a593Smuzhiyun * Represent Extention Channel Offset in HT Capabilities 357*4882a593Smuzhiyun * Secondary Channel Offset 358*4882a593Smuzhiyun * 0 -SCN, 1 -SCA, 2 -RSVD, 3 - SCB 359*4882a593Smuzhiyun * 360*4882a593Smuzhiyun */ 361*4882a593Smuzhiyun enum chan_offset { 362*4882a593Smuzhiyun CHAN_OFFSET_NO_EXT = 0, /*SCN - no secondary channel*/ 363*4882a593Smuzhiyun CHAN_OFFSET_UPPER = 1, /*SCA - secondary channel above*/ 364*4882a593Smuzhiyun CHAN_OFFSET_NO_DEF = 2, /*Reserved*/ 365*4882a593Smuzhiyun CHAN_OFFSET_LOWER = 3, /*SCB - secondary channel below*/ 366*4882a593Smuzhiyun }; 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun enum rf_type { 369*4882a593Smuzhiyun RF_1T1R = 0, 370*4882a593Smuzhiyun RF_1T2R = 1, 371*4882a593Smuzhiyun RF_2T2R = 2, 372*4882a593Smuzhiyun RF_2T3R = 3, 373*4882a593Smuzhiyun RF_2T4R = 4, 374*4882a593Smuzhiyun RF_3T3R = 5, 375*4882a593Smuzhiyun RF_3T4R = 6, 376*4882a593Smuzhiyun RF_4T4R = 7, 377*4882a593Smuzhiyun RF_TYPE_MAX, 378*4882a593Smuzhiyun }; 379*4882a593Smuzhiyun 380*4882a593Smuzhiyun enum rtw_rf_state { 381*4882a593Smuzhiyun RTW_RF_ON, 382*4882a593Smuzhiyun RTW_RF_OFF, 383*4882a593Smuzhiyun RTW_RF_MAX 384*4882a593Smuzhiyun }; 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun enum rtw_usb_speed { 387*4882a593Smuzhiyun RTW_USB_SPEED_LOW = 0, /*U2 (2.0)- 1.0 - 1.5 Mbps - 0.192MBs*/ 388*4882a593Smuzhiyun RTW_USB_SPEED_FULL = 1, /*U2 (2.0)- 1.1 - 12 Mbps - 1.5MBs*/ 389*4882a593Smuzhiyun RTW_USB_SPEED_HIGH = 2, /*U2 (2.0)- 2.1 - 480 Mbps - 60MBs*/ 390*4882a593Smuzhiyun RTW_USB_SPEED_SUPER = 3, /*U3 (3.2 Gen 1)- 3.0 - 5 Gbps - 640MBs*/ 391*4882a593Smuzhiyun RTW_USB_SPEED_SUPER_10G = 4, /*U3 (3.2 Gen 2)- 3.1 - 10 Gbps - 1280MBs*/ 392*4882a593Smuzhiyun RTW_USB_SPEED_SUPER_20G = 5, /*U3 (3.2 Gen 2x2)- 3.2 - 20 Gbps - 2560MBs*/ 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun /* keep last */ 395*4882a593Smuzhiyun RTW_USB_SPEED_MAX, 396*4882a593Smuzhiyun RTW_USB_SPEED_UNKNOWN = RTW_USB_SPEED_MAX, 397*4882a593Smuzhiyun }; 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun #define USB_SUPER_SPEED_BULK_SIZE 1024 /* usb 3.0 */ 400*4882a593Smuzhiyun #define USB_HIGH_SPEED_BULK_SIZE 512 /* usb 2.0 */ 401*4882a593Smuzhiyun #define USB_FULL_SPEED_BULK_SIZE 64 /* usb 1.1 */ 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun #define IV_LENGTH 8 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun enum rtw_enc_algo { 406*4882a593Smuzhiyun RTW_ENC_NONE, 407*4882a593Smuzhiyun RTW_ENC_WEP40, 408*4882a593Smuzhiyun RTW_ENC_WEP104, 409*4882a593Smuzhiyun RTW_ENC_TKIP, 410*4882a593Smuzhiyun RTW_ENC_WAPI, 411*4882a593Smuzhiyun RTW_ENC_GCMSMS4, 412*4882a593Smuzhiyun RTW_ENC_CCMP, 413*4882a593Smuzhiyun RTW_ENC_CCMP256, 414*4882a593Smuzhiyun RTW_ENC_GCMP, 415*4882a593Smuzhiyun RTW_ENC_GCMP256, 416*4882a593Smuzhiyun RTW_ENC_BIP_CCMP128, 417*4882a593Smuzhiyun RTW_ENC_MAX 418*4882a593Smuzhiyun }; 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun enum rtw_sec_ent_mode { 421*4882a593Smuzhiyun RTW_SEC_ENT_MODE_0, /* No key */ 422*4882a593Smuzhiyun RTW_SEC_ENT_MODE_1, /* WEP */ 423*4882a593Smuzhiyun RTW_SEC_ENT_MODE_2, /* 2 unicast + 3 multicast + 2 BIP keys */ 424*4882a593Smuzhiyun RTW_SEC_ENT_MODE_3, /* 2 unicast + 4 multicast + 1 BIP keys */ 425*4882a593Smuzhiyun }; 426*4882a593Smuzhiyun 427*4882a593Smuzhiyun enum rtw_sec_key_type { 428*4882a593Smuzhiyun RTW_SEC_KEY_UNICAST, 429*4882a593Smuzhiyun RTW_SEC_KEY_MULTICAST, 430*4882a593Smuzhiyun RTW_SEC_KEY_BIP, 431*4882a593Smuzhiyun RTW_SEC_KEY_MAX 432*4882a593Smuzhiyun }; 433*4882a593Smuzhiyun 434*4882a593Smuzhiyun /** 435*4882a593Smuzhiyun * Figure 27-7 + Table 9-31h from Ax Spec D4.2 436*4882a593Smuzhiyun * B7-B1: 437*4882a593Smuzhiyun * RU26 : 0 1 2 3 4 5 6 7 8 9 10 ... 36 438*4882a593Smuzhiyun * RU52 : 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 439*4882a593Smuzhiyun * RU106 : 53 54 55 56 57 58 59 60 440*4882a593Smuzhiyun * RU242 : 61 62 63 64 441*4882a593Smuzhiyun * RU484 : 65 66 442*4882a593Smuzhiyun * RU996 : 67 443*4882a593Smuzhiyun * RU996x2: 68 444*4882a593Smuzhiyun **/ 445*4882a593Smuzhiyun enum rtw_he_ru_idx { 446*4882a593Smuzhiyun /* 20MHz - 1 */ 447*4882a593Smuzhiyun RTW_HE_RU26_1 = 0, 448*4882a593Smuzhiyun RTW_HE_RU26_2, 449*4882a593Smuzhiyun RTW_HE_RU26_3, 450*4882a593Smuzhiyun RTW_HE_RU26_4, 451*4882a593Smuzhiyun RTW_HE_RU26_5, 452*4882a593Smuzhiyun RTW_HE_RU26_6, 453*4882a593Smuzhiyun RTW_HE_RU26_7, 454*4882a593Smuzhiyun RTW_HE_RU26_8, 455*4882a593Smuzhiyun RTW_HE_RU26_9, 456*4882a593Smuzhiyun /* 20MHz - 2 */ 457*4882a593Smuzhiyun RTW_HE_RU26_10, 458*4882a593Smuzhiyun RTW_HE_RU26_11, 459*4882a593Smuzhiyun RTW_HE_RU26_12, 460*4882a593Smuzhiyun RTW_HE_RU26_13, 461*4882a593Smuzhiyun RTW_HE_RU26_14, 462*4882a593Smuzhiyun RTW_HE_RU26_15, 463*4882a593Smuzhiyun RTW_HE_RU26_16, 464*4882a593Smuzhiyun RTW_HE_RU26_17, 465*4882a593Smuzhiyun RTW_HE_RU26_18, 466*4882a593Smuzhiyun /* Center 26-tone */ 467*4882a593Smuzhiyun RTW_HE_RU26_19, 468*4882a593Smuzhiyun /* 20MHz - 3 */ 469*4882a593Smuzhiyun RTW_HE_RU26_20, 470*4882a593Smuzhiyun RTW_HE_RU26_21, 471*4882a593Smuzhiyun RTW_HE_RU26_22, 472*4882a593Smuzhiyun RTW_HE_RU26_23, 473*4882a593Smuzhiyun RTW_HE_RU26_24, 474*4882a593Smuzhiyun RTW_HE_RU26_25, 475*4882a593Smuzhiyun RTW_HE_RU26_26, 476*4882a593Smuzhiyun RTW_HE_RU26_27, 477*4882a593Smuzhiyun RTW_HE_RU26_28, 478*4882a593Smuzhiyun /* 20MHz - 4 */ 479*4882a593Smuzhiyun RTW_HE_RU26_29, 480*4882a593Smuzhiyun RTW_HE_RU26_30, 481*4882a593Smuzhiyun RTW_HE_RU26_31, 482*4882a593Smuzhiyun RTW_HE_RU26_32, 483*4882a593Smuzhiyun RTW_HE_RU26_33, 484*4882a593Smuzhiyun RTW_HE_RU26_34, 485*4882a593Smuzhiyun RTW_HE_RU26_35, 486*4882a593Smuzhiyun RTW_HE_RU26_36, 487*4882a593Smuzhiyun RTW_HE_RU26_37 = 36, 488*4882a593Smuzhiyun /* 20MHz - 1 */ 489*4882a593Smuzhiyun RTW_HE_RU52_1 = 37, 490*4882a593Smuzhiyun RTW_HE_RU52_2, 491*4882a593Smuzhiyun RTW_HE_RU52_3, 492*4882a593Smuzhiyun RTW_HE_RU52_4, 493*4882a593Smuzhiyun /* 20MHz - 2 */ 494*4882a593Smuzhiyun RTW_HE_RU52_5, 495*4882a593Smuzhiyun RTW_HE_RU52_6, 496*4882a593Smuzhiyun RTW_HE_RU52_7, 497*4882a593Smuzhiyun RTW_HE_RU52_8, 498*4882a593Smuzhiyun /* 20MHz - 3 */ 499*4882a593Smuzhiyun RTW_HE_RU52_9, 500*4882a593Smuzhiyun RTW_HE_RU52_10, 501*4882a593Smuzhiyun RTW_HE_RU52_11, 502*4882a593Smuzhiyun RTW_HE_RU52_12, 503*4882a593Smuzhiyun /* 20MHz - 4 */ 504*4882a593Smuzhiyun RTW_HE_RU52_13, 505*4882a593Smuzhiyun RTW_HE_RU52_14, 506*4882a593Smuzhiyun RTW_HE_RU52_15, 507*4882a593Smuzhiyun RTW_HE_RU52_16 = 52, 508*4882a593Smuzhiyun /* 20MHz - 1 */ 509*4882a593Smuzhiyun RTW_HE_RU106_1 = 53, 510*4882a593Smuzhiyun RTW_HE_RU106_2, 511*4882a593Smuzhiyun /* 20MHz - 2 */ 512*4882a593Smuzhiyun RTW_HE_RU106_3, 513*4882a593Smuzhiyun RTW_HE_RU106_4, 514*4882a593Smuzhiyun /* 20MHz - 3 */ 515*4882a593Smuzhiyun RTW_HE_RU106_5, 516*4882a593Smuzhiyun RTW_HE_RU106_6, 517*4882a593Smuzhiyun /* 20MHz - 4 */ 518*4882a593Smuzhiyun RTW_HE_RU106_7, 519*4882a593Smuzhiyun RTW_HE_RU106_8 = 60, 520*4882a593Smuzhiyun /* 20MHz */ 521*4882a593Smuzhiyun RTW_HE_RU242_1 = 61, 522*4882a593Smuzhiyun RTW_HE_RU242_2, 523*4882a593Smuzhiyun RTW_HE_RU242_3, 524*4882a593Smuzhiyun RTW_HE_RU242_4 = 64, 525*4882a593Smuzhiyun /* 40MHz */ 526*4882a593Smuzhiyun RTW_HE_RU484_1 = 65, 527*4882a593Smuzhiyun RTW_HE_RU484_2 = 66, 528*4882a593Smuzhiyun /* 80MHz */ 529*4882a593Smuzhiyun RTW_HE_RU996_1 = 67, 530*4882a593Smuzhiyun /* 160MHz */ 531*4882a593Smuzhiyun RTW_HE_RU2x996_1 = 68, 532*4882a593Smuzhiyun }; 533*4882a593Smuzhiyun 534*4882a593Smuzhiyun enum rtw_protect_mode { 535*4882a593Smuzhiyun RTW_PROTECT_DISABLE = 0, 536*4882a593Smuzhiyun RTW_PROTECT_RTS = 1, 537*4882a593Smuzhiyun RTW_PROTECT_CTS2SELF = 2, 538*4882a593Smuzhiyun RTW_PROTECT_HW_RTS = 3 539*4882a593Smuzhiyun }; 540*4882a593Smuzhiyun 541*4882a593Smuzhiyun enum rtw_ac { 542*4882a593Smuzhiyun RTW_AC_BE = 0, 543*4882a593Smuzhiyun RTW_AC_BK = 1, 544*4882a593Smuzhiyun RTW_AC_VI = 2, 545*4882a593Smuzhiyun RTW_AC_VO = 3 546*4882a593Smuzhiyun }; 547*4882a593Smuzhiyun 548*4882a593Smuzhiyun enum rtw_edcca_mode { 549*4882a593Smuzhiyun RTW_EDCCA_NORMAL, 550*4882a593Smuzhiyun RTW_EDCCA_ETSI, 551*4882a593Smuzhiyun RTW_EDCCA_JP, 552*4882a593Smuzhiyun RTW_EDCCA_MAX 553*4882a593Smuzhiyun }; 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun enum rtw_mac_pwr_st { 556*4882a593Smuzhiyun RTW_MAC_PWR_NONE = 0, 557*4882a593Smuzhiyun RTW_MAC_PWR_OFF = 1, 558*4882a593Smuzhiyun RTW_MAC_PWR_ON = 2, 559*4882a593Smuzhiyun RTW_MAC_PWR_LPS = 3, 560*4882a593Smuzhiyun RTW_MAC_PWR_MAX = 0x4 561*4882a593Smuzhiyun }; 562*4882a593Smuzhiyun 563*4882a593Smuzhiyun enum rtw_pcie_bus_func_cap_t { 564*4882a593Smuzhiyun RTW_PCIE_BUS_FUNC_DISABLE = 0, 565*4882a593Smuzhiyun RTW_PCIE_BUS_FUNC_ENABLE = 1, 566*4882a593Smuzhiyun RTW_PCIE_BUS_FUNC_DEFAULT = 2, 567*4882a593Smuzhiyun RTW_PCIE_BUS_FUNC_IGNORE = 3 568*4882a593Smuzhiyun }; 569*4882a593Smuzhiyun 570*4882a593Smuzhiyun /* follow mac's definetion, mac_ax_sw_io_mode*/ 571*4882a593Smuzhiyun enum rtw_gpio_mode { 572*4882a593Smuzhiyun RTW_AX_SW_IO_MODE_INPUT, 573*4882a593Smuzhiyun RTW_AX_SW_IO_MODE_OUTPUT_OD, 574*4882a593Smuzhiyun RTW_AX_SW_IO_MODE_OUTPUT_PP, 575*4882a593Smuzhiyun RTW_AX_SW_IO_MODE_MAX 576*4882a593Smuzhiyun }; 577*4882a593Smuzhiyun 578*4882a593Smuzhiyun /*MAC_AX_PCIE_L0SDLY_IGNORE = 0xFF, MAC_AX_PCIE_L1DLY_IGNORE = 0xFF, MAC_AX_PCIE_CLKDLY_IGNORE = 0xFF */ 579*4882a593Smuzhiyun #define RTW_PCIE_BUS_ASPM_DLY_IGNORE 0xFF /* Fully controlled by HW */ 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun #define RTW_FRAME_TYPE_MGNT 0 582*4882a593Smuzhiyun #define RTW_FRAME_TYPE_CTRL 1 583*4882a593Smuzhiyun #define RTW_FRAME_TYPE_DATA 2 584*4882a593Smuzhiyun #define RTW_FRAME_TYPE_EXT_RSVD 3 585*4882a593Smuzhiyun /* Association Related PKT Type + SubType */ 586*4882a593Smuzhiyun 587*4882a593Smuzhiyun #define FRAME_OFFSET_FRAME_CONTROL 0 588*4882a593Smuzhiyun #define FRAME_OFFSET_DURATION 2 589*4882a593Smuzhiyun #define FRAME_OFFSET_ADDRESS1 4 590*4882a593Smuzhiyun #define FRAME_OFFSET_ADDRESS2 10 591*4882a593Smuzhiyun #define FRAME_OFFSET_ADDRESS3 16 592*4882a593Smuzhiyun #define FRAME_OFFSET_SEQUENCE 22 593*4882a593Smuzhiyun #define FRAME_OFFSET_ADDRESS4 24 594*4882a593Smuzhiyun #define PHL_GET_80211_HDR_TYPE(_hdr) LE_BITS_TO_2BYTE((u8 *)_hdr, 2, 6) 595*4882a593Smuzhiyun #define PHL_GET_80211_HDR_MORE_FRAG(_hdr) LE_BITS_TO_2BYTE((u8 *)_hdr, 10, 1) 596*4882a593Smuzhiyun #define PHL_GET_80211_HDR_RETRY(_hdr) LE_BITS_TO_2BYTE((u8 *)_hdr, 11, 1) 597*4882a593Smuzhiyun #define PHL_GET_80211_HDR_FRAG_NUM(_hdr) LE_BITS_TO_2BYTE((u8 *)_hdr + 22, 0, 4) 598*4882a593Smuzhiyun #define PHL_GET_80211_HDR_SEQUENCE(_hdr) LE_BITS_TO_2BYTE((u8 *)_hdr + 22, 4, 12) 599*4882a593Smuzhiyun #define PHL_GET_80211_HDR_ADDRESS2(_d, _hdr, _val) \ 600*4882a593Smuzhiyun _os_mem_cpy(_d, (u8 *)_val, (u8 *)_hdr + FRAME_OFFSET_ADDRESS2, 6) 601*4882a593Smuzhiyun #define PHL_GET_80211_HDR_ADDRESS3(_d, _hdr, _val) \ 602*4882a593Smuzhiyun _os_mem_cpy(_d, (u8 *)_val, (u8 *)_hdr + FRAME_OFFSET_ADDRESS3, 6) 603*4882a593Smuzhiyun 604*4882a593Smuzhiyun #define RTW_FRAME_TYPE_BEACON 32 605*4882a593Smuzhiyun #define RTW_FRAME_TYPE_PROBE_RESP 20 606*4882a593Smuzhiyun #define RTW_FRAME_TYPE_ASOC_REQ 0 607*4882a593Smuzhiyun #define RTW_FRAME_TYPE_ASOC_RESP 4 608*4882a593Smuzhiyun #define RTW_FRAME_TYPE_REASOC_REQ 8 609*4882a593Smuzhiyun #define RTW_FRAME_TYPE_REASOC_RESP 12 610*4882a593Smuzhiyun #define RTW_IS_ASOC_PKT(_TYPE) \ 611*4882a593Smuzhiyun ((_TYPE == RTW_FRAME_TYPE_REASOC_RESP) || \ 612*4882a593Smuzhiyun (_TYPE == RTW_FRAME_TYPE_REASOC_REQ) || \ 613*4882a593Smuzhiyun (_TYPE == RTW_FRAME_TYPE_ASOC_RESP) || \ 614*4882a593Smuzhiyun (_TYPE == RTW_FRAME_TYPE_ASOC_REQ)) ? true : false 615*4882a593Smuzhiyun 616*4882a593Smuzhiyun #define RTW_IS_ASOC_REQ_PKT(_TYPE) \ 617*4882a593Smuzhiyun ((_TYPE == RTW_FRAME_TYPE_REASOC_REQ) || \ 618*4882a593Smuzhiyun (_TYPE == RTW_FRAME_TYPE_ASOC_REQ)) ? true : false 619*4882a593Smuzhiyun 620*4882a593Smuzhiyun #define RTW_IS_BEACON_OR_PROBE_RESP_PKT(_TYPE) \ 621*4882a593Smuzhiyun ((_TYPE == RTW_FRAME_TYPE_BEACON) || \ 622*4882a593Smuzhiyun (_TYPE == RTW_FRAME_TYPE_PROBE_RESP)) ? true : false 623*4882a593Smuzhiyun 624*4882a593Smuzhiyun #define TU 1024 /* Time Unit (TU): 1024 us*/ 625*4882a593Smuzhiyun 626*4882a593Smuzhiyun #define RTW_MAX_ETH_PKT_LEN 1536 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun #endif /*_RTW_GENERAL_DEF_H_*/ 629