Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Staging: otus: 80211core/ccmd.c: Fix Coding Style

Signed-off-by: Dragoslav Zaric <dragoslav.zaric.kd@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Dragoslav Zaric and committed by
Greg Kroah-Hartman
afbd545d 7690e63d

+1284 -1380
+1284 -1380
drivers/staging/otus/80211core/ccmd.c
··· 27 27 #include "../hal/hpreg.h" 28 28 29 29 30 - u16_t zfWlanReset(zdev_t* dev); 31 - u32_t zfUpdateRxRate(zdev_t* dev); 30 + u16_t zfWlanReset(zdev_t *dev); 31 + u32_t zfUpdateRxRate(zdev_t *dev); 32 32 33 33 34 34 extern void zfiUsbRecv(zdev_t *dev, zbuf_t *buf); 35 - extern void zfiUsbRegIn(zdev_t* dev, u32_t* rsp, u16_t rspLen); 36 - extern void zfiUsbOutComplete(zdev_t* dev, zbuf_t *buf, u8_t status, u8_t *hdr); 37 - extern void zfiUsbRegOutComplete(zdev_t* dev); 38 - extern u16_t zfHpReinit(zdev_t* dev, u32_t frequency); 35 + extern void zfiUsbRegIn(zdev_t *dev, u32_t *rsp, u16_t rspLen); 36 + extern void zfiUsbOutComplete(zdev_t *dev, zbuf_t *buf, u8_t status, u8_t *hdr); 37 + extern void zfiUsbRegOutComplete(zdev_t *dev); 38 + extern u16_t zfHpReinit(zdev_t *dev, u32_t frequency); 39 39 40 40 /* Get size (byte) of driver core global data structure. */ 41 41 /* This size will be used by driver wrapper to allocate */ 42 42 /* a memory space for driver core to store global variables */ 43 - u16_t zfiGlobalDataSize(zdev_t* dev) 43 + u16_t zfiGlobalDataSize(zdev_t *dev) 44 44 { 45 - u32_t ret; 46 - ret = (sizeof(struct zsWlanDev)); 47 - zm_assert((ret>>16) == 0); 48 - return (u16_t)ret; 45 + u32_t ret; 46 + ret = (sizeof(struct zsWlanDev)); 47 + zm_assert((ret>>16) == 0); 48 + return (u16_t)ret; 49 49 } 50 50 51 51 52 52 /* Initialize WLAN hardware and software, resource will be allocated */ 53 53 /* for WLAN operation, must be called first before other function. */ 54 - extern u16_t zfiWlanOpen(zdev_t* dev, struct zsCbFuncTbl* cbFuncTbl) 54 + extern u16_t zfiWlanOpen(zdev_t *dev, struct zsCbFuncTbl *cbFuncTbl) 55 55 { 56 - //u16_t ret; 57 - //u32_t i; 58 - //u8_t* ch; 59 - //u8_t bPassive; 60 - u32_t devSize; 61 - struct zfCbUsbFuncTbl cbUsbFuncTbl; 62 - zmw_get_wlan_dev(dev); 56 + /* u16_t ret; 57 + u32_t i; 58 + u8_t* ch; 59 + u8_t bPassive; 60 + */ 61 + u32_t devSize; 62 + struct zfCbUsbFuncTbl cbUsbFuncTbl; 63 + zmw_get_wlan_dev(dev); 63 64 64 - zm_debug_msg0("start"); 65 + zm_debug_msg0("start"); 65 66 66 - devSize = sizeof(struct zsWlanDev); 67 - /* Zeroize zsWlanDev struct */ 68 - zfZeroMemory((u8_t*)wd, (u16_t)devSize); 67 + devSize = sizeof(struct zsWlanDev); 68 + /* Zeroize zsWlanDev struct */ 69 + zfZeroMemory((u8_t *)wd, (u16_t)devSize); 69 70 70 71 #ifdef ZM_ENABLE_AGGREGATION 71 - zfAggInit(dev); 72 + zfAggInit(dev); 72 73 #endif 73 74 74 - zfCwmInit(dev); 75 + zfCwmInit(dev); 75 76 76 - wd->commTally.RateCtrlTxMPDU = 0; 77 - wd->commTally.RateCtrlBAFail = 0; 78 - wd->preambleTypeInUsed = ZM_PREAMBLE_TYPE_SHORT; 77 + wd->commTally.RateCtrlTxMPDU = 0; 78 + wd->commTally.RateCtrlBAFail = 0; 79 + wd->preambleTypeInUsed = ZM_PREAMBLE_TYPE_SHORT; 79 80 80 - if (cbFuncTbl == NULL) 81 - { 82 - /* zfcbRecvEth() is mandatory */ 83 - zm_assert(0); 84 - } 85 - else 86 - { 87 - if (cbFuncTbl->zfcbRecvEth == NULL) 88 - { 89 - /* zfcbRecvEth() is mandatory */ 90 - zm_assert(0); 91 - } 92 - wd->zfcbAuthNotify = cbFuncTbl->zfcbAuthNotify; 93 - wd->zfcbAuthNotify = cbFuncTbl->zfcbAuthNotify; 94 - wd->zfcbAsocNotify = cbFuncTbl->zfcbAsocNotify; 95 - wd->zfcbDisAsocNotify = cbFuncTbl->zfcbDisAsocNotify; 96 - wd->zfcbApConnectNotify = cbFuncTbl->zfcbApConnectNotify; 97 - wd->zfcbConnectNotify = cbFuncTbl->zfcbConnectNotify; 98 - wd->zfcbScanNotify = cbFuncTbl->zfcbScanNotify; 99 - wd->zfcbMicFailureNotify = cbFuncTbl->zfcbMicFailureNotify; 100 - wd->zfcbApMicFailureNotify = cbFuncTbl->zfcbApMicFailureNotify; 101 - wd->zfcbIbssPartnerNotify = cbFuncTbl->zfcbIbssPartnerNotify; 102 - wd->zfcbMacAddressNotify = cbFuncTbl->zfcbMacAddressNotify; 103 - wd->zfcbSendCompleteIndication = cbFuncTbl->zfcbSendCompleteIndication; 104 - wd->zfcbRecvEth = cbFuncTbl->zfcbRecvEth; 105 - wd->zfcbRestoreBufData = cbFuncTbl->zfcbRestoreBufData; 106 - wd->zfcbRecv80211 = cbFuncTbl->zfcbRecv80211; 81 + if (cbFuncTbl == NULL) { 82 + /* zfcbRecvEth() is mandatory */ 83 + zm_assert(0); 84 + } else { 85 + if (cbFuncTbl->zfcbRecvEth == NULL) { 86 + /* zfcbRecvEth() is mandatory */ 87 + zm_assert(0); 88 + } 89 + wd->zfcbAuthNotify = cbFuncTbl->zfcbAuthNotify; 90 + wd->zfcbAuthNotify = cbFuncTbl->zfcbAuthNotify; 91 + wd->zfcbAsocNotify = cbFuncTbl->zfcbAsocNotify; 92 + wd->zfcbDisAsocNotify = cbFuncTbl->zfcbDisAsocNotify; 93 + wd->zfcbApConnectNotify = cbFuncTbl->zfcbApConnectNotify; 94 + wd->zfcbConnectNotify = cbFuncTbl->zfcbConnectNotify; 95 + wd->zfcbScanNotify = cbFuncTbl->zfcbScanNotify; 96 + wd->zfcbMicFailureNotify = cbFuncTbl->zfcbMicFailureNotify; 97 + wd->zfcbApMicFailureNotify = cbFuncTbl->zfcbApMicFailureNotify; 98 + wd->zfcbIbssPartnerNotify = cbFuncTbl->zfcbIbssPartnerNotify; 99 + wd->zfcbMacAddressNotify = cbFuncTbl->zfcbMacAddressNotify; 100 + wd->zfcbSendCompleteIndication = 101 + cbFuncTbl->zfcbSendCompleteIndication; 102 + wd->zfcbRecvEth = cbFuncTbl->zfcbRecvEth; 103 + wd->zfcbRestoreBufData = cbFuncTbl->zfcbRestoreBufData; 104 + wd->zfcbRecv80211 = cbFuncTbl->zfcbRecv80211; 107 105 #ifdef ZM_ENABLE_CENC 108 - wd->zfcbCencAsocNotify = cbFuncTbl->zfcbCencAsocNotify; 109 - #endif //ZM_ENABLE_CENC 110 - wd->zfcbClassifyTxPacket = cbFuncTbl->zfcbClassifyTxPacket; 111 - wd->zfcbHwWatchDogNotify = cbFuncTbl->zfcbHwWatchDogNotify; 112 - } 106 + wd->zfcbCencAsocNotify = cbFuncTbl->zfcbCencAsocNotify; 107 + #endif /* ZM_ENABLE_CENC */ 108 + wd->zfcbClassifyTxPacket = cbFuncTbl->zfcbClassifyTxPacket; 109 + wd->zfcbHwWatchDogNotify = cbFuncTbl->zfcbHwWatchDogNotify; 110 + } 113 111 114 - //add by honda 0330 115 - cbUsbFuncTbl.zfcbUsbRecv = zfiUsbRecv; 116 - cbUsbFuncTbl.zfcbUsbRegIn = zfiUsbRegIn; 117 - cbUsbFuncTbl.zfcbUsbOutComplete = zfiUsbOutComplete; 118 - cbUsbFuncTbl.zfcbUsbRegOutComplete = zfiUsbRegOutComplete; 119 - zfwUsbRegisterCallBack(dev, &cbUsbFuncTbl); 120 - /* Init OWN MAC address */ 121 - wd->macAddr[0] = 0x8000; 122 - wd->macAddr[1] = 0x0000; 123 - wd->macAddr[2] = 0x0000; 112 + /* add by honda 0330 */ 113 + cbUsbFuncTbl.zfcbUsbRecv = zfiUsbRecv; 114 + cbUsbFuncTbl.zfcbUsbRegIn = zfiUsbRegIn; 115 + cbUsbFuncTbl.zfcbUsbOutComplete = zfiUsbOutComplete; 116 + cbUsbFuncTbl.zfcbUsbRegOutComplete = zfiUsbRegOutComplete; 117 + zfwUsbRegisterCallBack(dev, &cbUsbFuncTbl); 118 + /* Init OWN MAC address */ 119 + wd->macAddr[0] = 0x8000; 120 + wd->macAddr[1] = 0x0000; 121 + wd->macAddr[2] = 0x0000; 124 122 125 - wd->regulationTable.regionCode = 0xffff; 123 + wd->regulationTable.regionCode = 0xffff; 126 124 127 - zfHpInit(dev, wd->frequency); 125 + zfHpInit(dev, wd->frequency); 128 126 129 - /* init region code */ 130 - //wd->regulationTable.regionCode = NULL1_WORLD; //Only 2.4g RegCode 131 - //zfHpGetRegulationTablefromRegionCode(dev, NULL1_WORLD); 132 - //zfiWlanSetDot11DMode(dev , 1); // Enable 802.11d 133 - /* Get the first channel */ 134 - //wd->frequency = zfChGetFirstChannel(dev, &bPassive); 127 + /* init region code */ 128 + /* wd->regulationTable.regionCode = NULL1_WORLD; //Only 2.4g RegCode */ 129 + /* zfHpGetRegulationTablefromRegionCode(dev, NULL1_WORLD); */ 130 + /* zfiWlanSetDot11DMode(dev , 1); //Enable 802.11d */ 131 + /* Get the first channel */ 132 + /* wd->frequency = zfChGetFirstChannel(dev, &bPassive); */ 135 133 #ifdef ZM_AP_DEBUG 136 - //wd->frequency = 2437; 134 + /* wd->frequency = 2437; */ 137 135 #endif 138 136 139 - //STA mode 140 - wd->sta.mTxRate = 0x0; 141 - wd->sta.uTxRate = 0x3; 142 - wd->sta.mmTxRate = 0x0; 143 - wd->sta.adapterState = ZM_STA_STATE_DISCONNECT; 144 - wd->sta.capability[0] = 0x01; 145 - wd->sta.capability[1] = 0x00; 137 + /* STA mode */ 138 + wd->sta.mTxRate = 0x0; 139 + wd->sta.uTxRate = 0x3; 140 + wd->sta.mmTxRate = 0x0; 141 + wd->sta.adapterState = ZM_STA_STATE_DISCONNECT; 142 + wd->sta.capability[0] = 0x01; 143 + wd->sta.capability[1] = 0x00; 146 144 147 - wd->sta.preambleTypeHT = 0; 148 - wd->sta.htCtrlBandwidth = 0; 149 - wd->sta.htCtrlSTBC = 0; 150 - wd->sta.htCtrlSG = 0; 151 - wd->sta.defaultTA = 0; 152 - //wd->sta.activescanTickPerChannel = ZM_TIME_ACTIVE_SCAN/ZM_MS_PER_TICK; 145 + wd->sta.preambleTypeHT = 0; 146 + wd->sta.htCtrlBandwidth = 0; 147 + wd->sta.htCtrlSTBC = 0; 148 + wd->sta.htCtrlSG = 0; 149 + wd->sta.defaultTA = 0; 150 + /*wd->sta.activescanTickPerChannel = 151 + *ZM_TIME_ACTIVE_SCAN/ZM_MS_PER_TICK; 152 + */ 153 153 { 154 154 u8_t Dur = ZM_TIME_ACTIVE_SCAN; 155 155 zfwGetActiveScanDur(dev, &Dur); 156 - wd->sta.activescanTickPerChannel = Dur/ZM_MS_PER_TICK; 156 + wd->sta.activescanTickPerChannel = Dur / ZM_MS_PER_TICK; 157 157 158 158 } 159 - wd->sta.passiveScanTickPerChannel = ZM_TIME_PASSIVE_SCAN/ZM_MS_PER_TICK; 160 - wd->sta.bAutoReconnect = TRUE; 161 - wd->sta.dropUnencryptedPkts = FALSE; 159 + wd->sta.passiveScanTickPerChannel = ZM_TIME_PASSIVE_SCAN/ZM_MS_PER_TICK; 160 + wd->sta.bAutoReconnect = TRUE; 161 + wd->sta.dropUnencryptedPkts = FALSE; 162 162 163 - /* set default to bypass all multicast packet for linux, window XP would set 0 by wrapper initialization */ 163 + /* set default to bypass all multicast packet for linux, 164 + * window XP would set 0 by wrapper initialization 165 + */ 164 166 wd->sta.bAllMulticast = 1; 165 167 166 - /* Initial the RIFS Status / RIFS-like frame count / RIFS count */ 167 - wd->sta.rifsState = ZM_RIFS_STATE_DETECTING; 168 - wd->sta.rifsLikeFrameCnt = 0; 169 - wd->sta.rifsCount = 0; 168 + /* Initial the RIFS Status / RIFS-like frame count / RIFS count */ 169 + wd->sta.rifsState = ZM_RIFS_STATE_DETECTING; 170 + wd->sta.rifsLikeFrameCnt = 0; 171 + wd->sta.rifsCount = 0; 170 172 171 - wd->sta.osRxFilter = 0; 172 - wd->sta.bSafeMode = 0; 173 + wd->sta.osRxFilter = 0; 174 + wd->sta.bSafeMode = 0; 173 175 174 - //Common 175 - zfResetSupportRate(dev, ZM_DEFAULT_SUPPORT_RATE_DISCONNECT); 176 - wd->beaconInterval = 100; 177 - wd->rtsThreshold = 2346; 178 - wd->fragThreshold = 32767; 179 - wd->wlanMode = ZM_MODE_INFRASTRUCTURE; 180 - wd->txMCS = 0xff; //AUTO 181 - wd->dtim = 1; 182 - //wd->txMT = 1; //OFDM 183 - wd->tick = 1; 184 - wd->maxTxPower2 = 0xff; 185 - wd->maxTxPower5 = 0xff; 186 - wd->supportMode = 0xffffffff; 187 - wd->ws.adhocMode = ZM_ADHOCBAND_G; 188 - wd->ws.autoSetFrequency = 0xff; 176 + /* Common */ 177 + zfResetSupportRate(dev, ZM_DEFAULT_SUPPORT_RATE_DISCONNECT); 178 + wd->beaconInterval = 100; 179 + wd->rtsThreshold = 2346; 180 + wd->fragThreshold = 32767; 181 + wd->wlanMode = ZM_MODE_INFRASTRUCTURE; 182 + wd->txMCS = 0xff; /* AUTO */ 183 + wd->dtim = 1; 184 + /* wd->txMT = 1; *//*OFDM */ 185 + wd->tick = 1; 186 + wd->maxTxPower2 = 0xff; 187 + wd->maxTxPower5 = 0xff; 188 + wd->supportMode = 0xffffffff; 189 + wd->ws.adhocMode = ZM_ADHOCBAND_G; 190 + wd->ws.autoSetFrequency = 0xff; 189 191 190 - //AP mode 191 - //wd->bgMode = wd->ws.bgMode; 192 - wd->ap.ssidLen[0] = 6; 193 - wd->ap.ssid[0][0] = 'Z'; 194 - wd->ap.ssid[0][1] = 'D'; 195 - wd->ap.ssid[0][2] = '1'; 196 - wd->ap.ssid[0][3] = '2'; 197 - wd->ap.ssid[0][4] = '2'; 198 - wd->ap.ssid[0][5] = '1'; 192 + /* AP mode */ 193 + /* wd->bgMode = wd->ws.bgMode; */ 194 + wd->ap.ssidLen[0] = 6; 195 + wd->ap.ssid[0][0] = 'Z'; 196 + wd->ap.ssid[0][1] = 'D'; 197 + wd->ap.ssid[0][2] = '1'; 198 + wd->ap.ssid[0][3] = '2'; 199 + wd->ap.ssid[0][4] = '2'; 200 + wd->ap.ssid[0][5] = '1'; 199 201 200 - // Init the country iso name as NA 201 - wd->ws.countryIsoName[0] = 0; 202 - wd->ws.countryIsoName[1] = 0; 203 - wd->ws.countryIsoName[2] = '\0'; 202 + /* Init the country iso name as NA */ 203 + wd->ws.countryIsoName[0] = 0; 204 + wd->ws.countryIsoName[1] = 0; 205 + wd->ws.countryIsoName[2] = '\0'; 204 206 205 207 /* init fragmentation is disabled */ 206 - //zfiWlanSetFragThreshold(dev, 0); 208 + /* zfiWlanSetFragThreshold(dev, 0); */ 207 209 208 210 /* airopeek : swSniffer 1=>on 0=>off */ 209 211 wd->swSniffer = 0; 210 - wd->XLinkMode = 0; 212 + wd->XLinkMode = 0; 211 213 212 - // jhlee HT 0 214 + /* jhlee HT 0 */ 213 215 #if 1 214 - /* AP Mode*/ 215 - /* Init HT Capability Info */ 216 - wd->ap.HTCap.Data.ElementID = ZM_WLAN_EID_HT_CAPABILITY; 217 - wd->ap.HTCap.Data.Length = 26; 218 - //wd->ap.HTCap.Data.SupChannelWidthSet = 0; 219 - //wd->ap.HTCap.Data.MIMOPowerSave = 3; 220 - //wd->ap.HTCap.Data.ShortGIfor40MHz = 0; 221 - //wd->ap.HTCap.Data.ShortGIfor20MHz = 0; 222 - //wd->ap.HTCap.Data.DSSSandCCKin40MHz = 0; 223 - wd->ap.HTCap.Data.AMPDUParam |= HTCAP_MaxRxAMPDU3; 224 - wd->ap.HTCap.Data.MCSSet[0] = 0xFF; // MCS 0 ~ 7 225 - wd->ap.HTCap.Data.MCSSet[1] = 0xFF; // MCS 8 ~ 15 216 + /* AP Mode*/ 217 + /* Init HT Capability Info */ 218 + wd->ap.HTCap.Data.ElementID = ZM_WLAN_EID_HT_CAPABILITY; 219 + wd->ap.HTCap.Data.Length = 26; 220 + /*wd->ap.HTCap.Data.SupChannelWidthSet = 0; 221 + wd->ap.HTCap.Data.MIMOPowerSave = 3; 222 + wd->ap.HTCap.Data.ShortGIfor40MHz = 0; 223 + wd->ap.HTCap.Data.ShortGIfor20MHz = 0; 224 + wd->ap.HTCap.Data.DSSSandCCKin40MHz = 0; 225 + */ 226 + wd->ap.HTCap.Data.AMPDUParam |= HTCAP_MaxRxAMPDU3; 227 + wd->ap.HTCap.Data.MCSSet[0] = 0xFF; /* MCS 0 ~ 7 */ 228 + wd->ap.HTCap.Data.MCSSet[1] = 0xFF; /* MCS 8 ~ 15 */ 226 229 227 - /* Init Extended HT Capability Info */ 228 - wd->ap.ExtHTCap.Data.ElementID = ZM_WLAN_EID_EXTENDED_HT_CAPABILITY; 229 - wd->ap.ExtHTCap.Data.Length = 22; 230 - wd->ap.ExtHTCap.Data.ControlChannel = 6; 231 - //wd->ap.ExtHTCap.Data.ExtChannelOffset = 3; 232 - wd->ap.ExtHTCap.Data.ChannelInfo |= ExtHtCap_RecomTxWidthSet; 233 - //wd->ap.ExtHTCap.Data.RIFSMode = 1; 234 - wd->ap.ExtHTCap.Data.OperatingInfo |= 1; 230 + /* Init Extended HT Capability Info */ 231 + wd->ap.ExtHTCap.Data.ElementID = ZM_WLAN_EID_EXTENDED_HT_CAPABILITY; 232 + wd->ap.ExtHTCap.Data.Length = 22; 233 + wd->ap.ExtHTCap.Data.ControlChannel = 6; 234 + /* wd->ap.ExtHTCap.Data.ExtChannelOffset = 3; */ 235 + wd->ap.ExtHTCap.Data.ChannelInfo |= ExtHtCap_RecomTxWidthSet; 236 + /* wd->ap.ExtHTCap.Data.RIFSMode = 1; */ 237 + wd->ap.ExtHTCap.Data.OperatingInfo |= 1; 235 238 236 - /* STA Mode*/ 237 - /* Init HT Capability Info */ 238 - wd->sta.HTCap.Data.ElementID = ZM_WLAN_EID_HT_CAPABILITY; 239 - wd->sta.HTCap.Data.Length = 26; 239 + /* STA Mode*/ 240 + /* Init HT Capability Info */ 241 + wd->sta.HTCap.Data.ElementID = ZM_WLAN_EID_HT_CAPABILITY; 242 + wd->sta.HTCap.Data.Length = 26; 240 243 241 - /* Test with 5G-AP : 7603 */ 242 - //wd->sta.HTCap.Data.SupChannelWidthSet = 1; 243 - wd->sta.HTCap.Data.HtCapInfo |= HTCAP_SMEnabled; 244 - wd->sta.HTCap.Data.HtCapInfo |= HTCAP_SupChannelWidthSet; 245 - wd->sta.HTCap.Data.HtCapInfo |= HTCAP_ShortGIfor40MHz; 246 - wd->sta.HTCap.Data.HtCapInfo |= HTCAP_DSSSandCCKin40MHz; 244 + /* Test with 5G-AP : 7603 */ 245 + /* wd->sta.HTCap.Data.SupChannelWidthSet = 1; */ 246 + wd->sta.HTCap.Data.HtCapInfo |= HTCAP_SMEnabled; 247 + wd->sta.HTCap.Data.HtCapInfo |= HTCAP_SupChannelWidthSet; 248 + wd->sta.HTCap.Data.HtCapInfo |= HTCAP_ShortGIfor40MHz; 249 + wd->sta.HTCap.Data.HtCapInfo |= HTCAP_DSSSandCCKin40MHz; 247 250 #ifndef ZM_DISABLE_AMSDU8K_SUPPORT 248 - wd->sta.HTCap.Data.HtCapInfo |= HTCAP_MaxAMSDULength; 251 + wd->sta.HTCap.Data.HtCapInfo |= HTCAP_MaxAMSDULength; 249 252 #endif 250 - //wd->sta.HTCap.Data.MIMOPowerSave = 0; 251 - //wd->sta.HTCap.Data.ShortGIfor40MHz = 0; 252 - //wd->sta.HTCap.Data.ShortGIfor20MHz = 0; 253 - //wd->sta.HTCap.Data.DSSSandCCKin40MHz = 0; 254 - wd->sta.HTCap.Data.AMPDUParam |= HTCAP_MaxRxAMPDU3; 255 - wd->sta.HTCap.Data.MCSSet[0] = 0xFF; // MCS 0 ~ 7 256 - wd->sta.HTCap.Data.MCSSet[1] = 0xFF; // MCS 8 ~ 15 257 - wd->sta.HTCap.Data.PCO |= HTCAP_TransmissionTime3; 258 - //wd->sta.HTCap.Data.TransmissionTime = 0; 259 - /* Init Extended HT Capability Info */ 260 - wd->sta.ExtHTCap.Data.ElementID = ZM_WLAN_EID_EXTENDED_HT_CAPABILITY; 261 - wd->sta.ExtHTCap.Data.Length = 22; 262 - wd->sta.ExtHTCap.Data.ControlChannel = 6; 253 + /*wd->sta.HTCap.Data.MIMOPowerSave = 0; 254 + wd->sta.HTCap.Data.ShortGIfor40MHz = 0; 255 + wd->sta.HTCap.Data.ShortGIfor20MHz = 0; 256 + wd->sta.HTCap.Data.DSSSandCCKin40MHz = 0; 257 + */ 258 + wd->sta.HTCap.Data.AMPDUParam |= HTCAP_MaxRxAMPDU3; 259 + wd->sta.HTCap.Data.MCSSet[0] = 0xFF; /* MCS 0 ~ 7 */ 260 + wd->sta.HTCap.Data.MCSSet[1] = 0xFF; /* MCS 8 ~ 15 */ 261 + wd->sta.HTCap.Data.PCO |= HTCAP_TransmissionTime3; 262 + /* wd->sta.HTCap.Data.TransmissionTime = 0; */ 263 + /* Init Extended HT Capability Info */ 264 + wd->sta.ExtHTCap.Data.ElementID = ZM_WLAN_EID_EXTENDED_HT_CAPABILITY; 265 + wd->sta.ExtHTCap.Data.Length = 22; 266 + wd->sta.ExtHTCap.Data.ControlChannel = 6; 263 267 264 - //wd->sta.ExtHTCap.Data.ExtChannelOffset |= 3; 265 - wd->sta.ExtHTCap.Data.ChannelInfo |= ExtHtCap_ExtChannelOffsetBelow; 268 + /* wd->sta.ExtHTCap.Data.ExtChannelOffset |= 3; */ 269 + wd->sta.ExtHTCap.Data.ChannelInfo |= ExtHtCap_ExtChannelOffsetBelow; 266 270 267 - //wd->sta.ExtHTCap.Data.RecomTxWidthSet = 1; 268 - //wd->sta.ExtHTCap.Data.RIFSMode = 1; 269 - wd->sta.ExtHTCap.Data.OperatingInfo |= 1; 271 + /* wd->sta.ExtHTCap.Data.RecomTxWidthSet = 1; */ 272 + /* wd->sta.ExtHTCap.Data.RIFSMode = 1; */ 273 + wd->sta.ExtHTCap.Data.OperatingInfo |= 1; 270 274 #endif 271 275 272 276 #if 0 273 - /* WME test code */ 274 - wd->ap.qosMode[0] = 1; 277 + /* WME test code */ 278 + wd->ap.qosMode[0] = 1; 275 279 #endif 276 280 277 - wd->ledStruct.ledMode[0] = 0x2221; 278 - wd->ledStruct.ledMode[1] = 0x2221; 281 + wd->ledStruct.ledMode[0] = 0x2221; 282 + wd->ledStruct.ledMode[1] = 0x2221; 279 283 280 - zfTimerInit(dev); 284 + zfTimerInit(dev); 281 285 282 - ZM_PERFORMANCE_INIT(dev); 286 + ZM_PERFORMANCE_INIT(dev); 283 287 284 - zfBssInfoCreate(dev); 285 - zfScanMgrInit(dev); 286 - zfPowerSavingMgrInit(dev); 288 + zfBssInfoCreate(dev); 289 + zfScanMgrInit(dev); 290 + zfPowerSavingMgrInit(dev); 287 291 288 292 #if 0 289 - /* Test code */ 290 - { 291 - u32_t key[4] = {0xffffffff, 0xff, 0, 0}; 292 - u16_t addr[3] = {0x8000, 0x01ab, 0x0000}; 293 - //zfSetKey(dev, 0, 0, ZM_WEP64, addr, key); 294 - //zfSetKey(dev, 0, 0, ZM_AES, addr, key); 295 - //zfSetKey(dev, 64, 0, 1, wd->macAddr, key); 296 - } 293 + /* Test code */ 294 + { 295 + u32_t key[4] = {0xffffffff, 0xff, 0, 0}; 296 + u16_t addr[3] = {0x8000, 0x01ab, 0x0000}; 297 + /*zfSetKey(dev, 0, 0, ZM_WEP64, addr, key); 298 + zfSetKey(dev, 0, 0, ZM_AES, addr, key); 299 + zfSetKey(dev, 64, 0, 1, wd->macAddr, key); 300 + */ 301 + } 297 302 #endif 298 303 299 - // WME settings 300 - wd->ws.staWmeEnabled = 1; // Enable WME by default 301 - #define ZM_UAPSD_Q_SIZE 32 //2^N 302 - wd->ap.uapsdQ = zfQueueCreate(dev, ZM_UAPSD_Q_SIZE); 303 - zm_assert(wd->ap.uapsdQ != NULL); 304 - wd->sta.uapsdQ = zfQueueCreate(dev, ZM_UAPSD_Q_SIZE); 305 - zm_assert(wd->sta.uapsdQ != NULL); 304 + /* WME settings */ 305 + wd->ws.staWmeEnabled = 1; /* Enable WME by default */ 306 + #define ZM_UAPSD_Q_SIZE 32 /* 2^N */ 307 + wd->ap.uapsdQ = zfQueueCreate(dev, ZM_UAPSD_Q_SIZE); 308 + zm_assert(wd->ap.uapsdQ != NULL); 309 + wd->sta.uapsdQ = zfQueueCreate(dev, ZM_UAPSD_Q_SIZE); 310 + zm_assert(wd->sta.uapsdQ != NULL); 306 311 307 - //zfHpInit(dev, wd->frequency); 312 + /* zfHpInit(dev, wd->frequency); */ 308 313 309 - /* MAC address */ 310 - //zfHpSetMacAddress(dev, wd->macAddr, 0); 311 - zfHpGetMacAddress(dev); 314 + /* MAC address */ 315 + /* zfHpSetMacAddress(dev, wd->macAddr, 0); */ 316 + zfHpGetMacAddress(dev); 312 317 313 - zfCoreSetFrequency(dev, wd->frequency); 318 + zfCoreSetFrequency(dev, wd->frequency); 314 319 315 320 #if ZM_PCI_LOOP_BACK == 1 316 - zfwWriteReg(dev, ZM_REG_PCI_CONTROL, 6); 321 + zfwWriteReg(dev, ZM_REG_PCI_CONTROL, 6); 317 322 #endif /* #if ZM_PCI_LOOP_BACK == 1 */ 318 323 319 - //zfiWlanSetDot11DMode(dev , 1); // Enable 802.11d 320 - //zfiWlanSetDot11HDFSMode(dev , 1); // Enable 802.11h DFS 321 - wd->sta.DFSEnable = 1; 322 - wd->sta.capability[1] |= ZM_BIT_0; 324 + /* zfiWlanSetDot11DMode(dev , 1); // Enable 802.11d */ 325 + /* zfiWlanSetDot11HDFSMode(dev , 1); // Enable 802.11h DFS */ 326 + wd->sta.DFSEnable = 1; 327 + wd->sta.capability[1] |= ZM_BIT_0; 323 328 324 - //zfiWlanSetFrequency(dev, 5260000, TRUE); 325 - //zfiWlanSetAniMode(dev , 1); // Enable ANI 329 + /* zfiWlanSetFrequency(dev, 5260000, TRUE); */ 330 + /* zfiWlanSetAniMode(dev , 1); // Enable ANI */ 326 331 327 - /* Trgger Rx DMA */ 328 - zfHpStartRecv(dev); 332 + /* Trgger Rx DMA */ 333 + zfHpStartRecv(dev); 329 334 330 - zm_debug_msg0("end"); 335 + zm_debug_msg0("end"); 331 336 332 - return 0; 337 + return 0; 333 338 } 334 339 335 340 /* WLAN hardware will be shutdown and all resource will be release */ 336 - u16_t zfiWlanClose(zdev_t* dev) 341 + u16_t zfiWlanClose(zdev_t *dev) 337 342 { 338 - zmw_get_wlan_dev(dev); 343 + zmw_get_wlan_dev(dev); 339 344 340 - zm_msg0_init(ZM_LV_0, "enter"); 345 + zm_msg0_init(ZM_LV_0, "enter"); 341 346 342 - wd->state = ZM_WLAN_STATE_CLOSEDED; 347 + wd->state = ZM_WLAN_STATE_CLOSEDED; 343 348 344 - //zfiWlanDisable(dev, 1); 345 - zfWlanReset(dev); 349 + /* zfiWlanDisable(dev, 1); */ 350 + zfWlanReset(dev); 346 351 347 - zfHpStopRecv(dev); 352 + zfHpStopRecv(dev); 348 353 349 - /* Disable MAC */ 350 - /* Disable PHY */ 351 - /* Disable RF */ 354 + /* Disable MAC */ 355 + /* Disable PHY */ 356 + /* Disable RF */ 352 357 353 - zfHpRelease(dev); 358 + zfHpRelease(dev); 354 359 355 - zfQueueDestroy(dev, wd->ap.uapsdQ); 356 - zfQueueDestroy(dev, wd->sta.uapsdQ); 360 + zfQueueDestroy(dev, wd->ap.uapsdQ); 361 + zfQueueDestroy(dev, wd->sta.uapsdQ); 357 362 358 - zfBssInfoDestroy(dev); 363 + zfBssInfoDestroy(dev); 359 364 360 365 #ifdef ZM_ENABLE_AGGREGATION 361 - /* add by honda */ 362 - zfAggRxFreeBuf(dev, 1); //1 for release structure memory 363 - /* end of add by honda */ 366 + /* add by honda */ 367 + zfAggRxFreeBuf(dev, 1); /* 1 for release structure memory */ 368 + /* end of add by honda */ 364 369 #endif 365 370 366 - zm_msg0_init(ZM_LV_0, "exit"); 371 + zm_msg0_init(ZM_LV_0, "exit"); 367 372 368 - return 0; 373 + return 0; 369 374 } 370 375 371 - void zfGetWrapperSetting(zdev_t* dev) 376 + void zfGetWrapperSetting(zdev_t *dev) 372 377 { 373 - u8_t bPassive; 374 - u16_t vapId = 0; 378 + u8_t bPassive; 379 + u16_t vapId = 0; 375 380 376 - zmw_get_wlan_dev(dev); 381 + zmw_get_wlan_dev(dev); 377 382 378 - zmw_declare_for_critical_section(); 383 + zmw_declare_for_critical_section(); 379 384 #if 0 380 - if ( (wd->ws.countryIsoName[0] != 0) 381 - || (wd->ws.countryIsoName[1] != 0) 382 - || (wd->ws.countryIsoName[2] != '\0') ) 383 - { 384 - zfHpGetRegulationTablefromRegionCode( 385 - dev, 386 - zfHpGetRegionCodeFromIsoName(dev, wd->ws.countryIsoName) ); 387 - } 385 + if ((wd->ws.countryIsoName[0] != 0) 386 + || (wd->ws.countryIsoName[1] != 0) 387 + || (wd->ws.countryIsoName[2] != '\0')) { 388 + zfHpGetRegulationTablefromRegionCode(dev, 389 + zfHpGetRegionCodeFromIsoName(dev, wd->ws.countryIsoName)); 390 + } 388 391 #endif 389 - zmw_enter_critical_section(dev); 392 + zmw_enter_critical_section(dev); 390 393 391 - wd->wlanMode = wd->ws.wlanMode; 394 + wd->wlanMode = wd->ws.wlanMode; 392 395 393 - /* set channel */ 394 - if ( wd->ws.frequency ) 395 - { 396 - wd->frequency = wd->ws.frequency; 397 - wd->ws.frequency = 0; 398 - } 399 - else 400 - { 401 - wd->frequency = zfChGetFirstChannel(dev, &bPassive); 396 + /* set channel */ 397 + if (wd->ws.frequency) { 398 + wd->frequency = wd->ws.frequency; 399 + wd->ws.frequency = 0; 400 + } else { 401 + wd->frequency = zfChGetFirstChannel(dev, &bPassive); 402 402 403 - if ( wd->wlanMode == ZM_MODE_IBSS ) 404 - { 405 - if (wd->ws.adhocMode == ZM_ADHOCBAND_A) 406 - { 407 - wd->frequency = ZM_CH_A_36; 408 - } 409 - else 410 - { 411 - wd->frequency = ZM_CH_G_6; 412 - } 413 - } 414 - } 403 + if (wd->wlanMode == ZM_MODE_IBSS) { 404 + if (wd->ws.adhocMode == ZM_ADHOCBAND_A) 405 + wd->frequency = ZM_CH_A_36; 406 + else 407 + wd->frequency = ZM_CH_G_6; 408 + } 409 + } 415 410 #ifdef ZM_AP_DEBUG 416 - /* honda add for debug, 2437 channel 6, 2452 channel 9 */ 417 - wd->frequency = 2437; 418 - /* end of add by honda */ 411 + /* honda add for debug, 2437 channel 6, 2452 channel 9 */ 412 + wd->frequency = 2437; 413 + /* end of add by honda */ 419 414 #endif 420 415 421 - /* set preamble type */ 422 - switch (wd->ws.preambleType) 423 - { 424 - case ZM_PREAMBLE_TYPE_AUTO: 425 - case ZM_PREAMBLE_TYPE_SHORT: 426 - case ZM_PREAMBLE_TYPE_LONG: 427 - wd->preambleType = wd->ws.preambleType; 428 - break; 429 - default: 430 - wd->preambleType = ZM_PREAMBLE_TYPE_SHORT; 431 - break; 432 - } 433 - wd->ws.preambleType = 0; 416 + /* set preamble type */ 417 + switch (wd->ws.preambleType) { 418 + case ZM_PREAMBLE_TYPE_AUTO: 419 + case ZM_PREAMBLE_TYPE_SHORT: 420 + case ZM_PREAMBLE_TYPE_LONG: 421 + wd->preambleType = wd->ws.preambleType; 422 + break; 423 + default: 424 + wd->preambleType = ZM_PREAMBLE_TYPE_SHORT; 425 + break; 426 + } 427 + wd->ws.preambleType = 0; 434 428 435 - if ( wd->wlanMode == ZM_MODE_AP ) 436 - { 437 - vapId = zfwGetVapId(dev); 429 + if (wd->wlanMode == ZM_MODE_AP) { 430 + vapId = zfwGetVapId(dev); 438 431 439 - if (vapId == 0xffff) 440 - { 441 - wd->ap.authAlgo[0] = wd->ws.authMode; 442 - wd->ap.encryMode[0] = wd->ws.encryMode; 443 - } 444 - else 445 - { 446 - wd->ap.authAlgo[vapId + 1] = wd->ws.authMode; 447 - wd->ap.encryMode[vapId + 1] = wd->ws.encryMode; 448 - } 449 - wd->ws.authMode = 0; 450 - wd->ws.encryMode = ZM_NO_WEP; 432 + if (vapId == 0xffff) { 433 + wd->ap.authAlgo[0] = wd->ws.authMode; 434 + wd->ap.encryMode[0] = wd->ws.encryMode; 435 + } else { 436 + wd->ap.authAlgo[vapId + 1] = wd->ws.authMode; 437 + wd->ap.encryMode[vapId + 1] = wd->ws.encryMode; 438 + } 439 + wd->ws.authMode = 0; 440 + wd->ws.encryMode = ZM_NO_WEP; 451 441 452 - /* Get beaconInterval from WrapperSetting */ 453 - if ((wd->ws.beaconInterval >= 20) && (wd->ws.beaconInterval <= 1000)) 454 - { 455 - wd->beaconInterval = wd->ws.beaconInterval; 456 - } 457 - else 458 - { 459 - wd->beaconInterval = 100; //100ms 460 - } 442 + /* Get beaconInterval from WrapperSetting */ 443 + if ((wd->ws.beaconInterval >= 20) && 444 + (wd->ws.beaconInterval <= 1000)) 445 + wd->beaconInterval = wd->ws.beaconInterval; 446 + else 447 + wd->beaconInterval = 100; /* 100ms */ 461 448 462 - if (wd->ws.dtim > 0) 463 - { 464 - wd->dtim = wd->ws.dtim; 465 - } 466 - else 467 - { 468 - wd->dtim = 1; 469 - } 449 + if (wd->ws.dtim > 0) 450 + wd->dtim = wd->ws.dtim; 451 + else 452 + wd->dtim = 1; 470 453 471 - wd->ap.qosMode = wd->ws.apWmeEnabled & 0x1; 472 - wd->ap.uapsdEnabled = (wd->ws.apWmeEnabled & 0x2) >> 1; 473 - } 474 - else 475 - { 476 - wd->sta.authMode = wd->ws.authMode; 477 - wd->sta.currentAuthMode = wd->ws.authMode; 478 - wd->sta.wepStatus = wd->ws.wepStatus; 479 454 480 - if ( wd->ws.beaconInterval ) 481 - { 482 - wd->beaconInterval = wd->ws.beaconInterval; 483 - } 484 - else 485 - { 486 - wd->beaconInterval = 0x64; 487 - } 455 + wd->ap.qosMode = wd->ws.apWmeEnabled & 0x1; 456 + wd->ap.uapsdEnabled = (wd->ws.apWmeEnabled & 0x2) >> 1; 457 + } else { 458 + wd->sta.authMode = wd->ws.authMode; 459 + wd->sta.currentAuthMode = wd->ws.authMode; 460 + wd->sta.wepStatus = wd->ws.wepStatus; 488 461 489 - if ( wd->wlanMode == ZM_MODE_IBSS ) 490 - { 491 - /* 1. Set default channel 6 (2437MHz) */ 492 - // wd->frequency = 2437; 462 + if (wd->ws.beaconInterval) 463 + wd->beaconInterval = wd->ws.beaconInterval; 464 + else 465 + wd->beaconInterval = 0x64; 493 466 494 - /* 2. Otus support 802.11g Mode */ 495 - if ((wd->ws.adhocMode == ZM_ADHOCBAND_G) || 496 - (wd->ws.adhocMode == ZM_ADHOCBAND_BG) || 497 - (wd->ws.adhocMode == ZM_ADHOCBAND_ABG) ) { 498 - wd->wfc.bIbssGMode = 1; 499 - } else { 500 - wd->wfc.bIbssGMode = 0; 501 - } 467 + if (wd->wlanMode == ZM_MODE_IBSS) { 468 + /* 1. Set default channel 6 (2437MHz) */ 469 + /* wd->frequency = 2437; */ 502 470 503 - /* 3. set short preamble */ 504 - //wd->sta.preambleType = ZM_PREAMBLE_TYPE_SHORT ; 505 - } 471 + /* 2. Otus support 802.11g Mode */ 472 + if ((wd->ws.adhocMode == ZM_ADHOCBAND_G) || 473 + (wd->ws.adhocMode == ZM_ADHOCBAND_BG) || 474 + (wd->ws.adhocMode == ZM_ADHOCBAND_ABG)) 475 + wd->wfc.bIbssGMode = 1; 476 + else 477 + wd->wfc.bIbssGMode = 0; 506 478 507 - /* set ATIM window */ 508 - if ( wd->ws.atimWindow ) 509 - { 510 - wd->sta.atimWindow = wd->ws.atimWindow; 511 - } 512 - else 513 - { 514 - //wd->sta.atimWindow = 0x0a; 515 - wd->sta.atimWindow = 0; 516 - } 479 + /* 3. set short preamble */ 480 + /* wd->sta.preambleType = ZM_PREAMBLE_TYPE_SHORT; */ 481 + } 517 482 518 - //wd->sta.connectingHiddenAP = 1;//wd->ws.connectingHiddenAP; 519 - wd->sta.dropUnencryptedPkts = wd->ws.dropUnencryptedPkts; 520 - wd->sta.ibssJoinOnly = wd->ws.ibssJoinOnly; 483 + /* set ATIM window */ 484 + if (wd->ws.atimWindow) 485 + wd->sta.atimWindow = wd->ws.atimWindow; 486 + else { 487 + /* wd->sta.atimWindow = 0x0a; */ 488 + wd->sta.atimWindow = 0; 489 + } 521 490 522 - if ( wd->ws.bDesiredBssid ) 523 - { 524 - zfMemoryCopy(wd->sta.desiredBssid, wd->ws.desiredBssid, 6); 525 - wd->sta.bDesiredBssid = TRUE; 526 - wd->ws.bDesiredBssid = FALSE; 527 - } 528 - else 529 - { 530 - wd->sta.bDesiredBssid = FALSE; 531 - } 491 + /* wd->sta.connectingHiddenAP = 1; 492 + wd->ws.connectingHiddenAP; 493 + */ 494 + wd->sta.dropUnencryptedPkts = wd->ws.dropUnencryptedPkts; 495 + wd->sta.ibssJoinOnly = wd->ws.ibssJoinOnly; 532 496 533 - /* check ssid */ 534 - if ( wd->ws.ssidLen != 0 ) 535 - { 536 - if ( (!zfMemoryIsEqual(wd->ws.ssid, wd->sta.ssid, 537 - wd->sta.ssidLen))|| 538 - (wd->ws.ssidLen != wd->sta.ssidLen)|| 539 - (wd->sta.authMode == ZM_AUTH_MODE_WPA)|| 540 - (wd->sta.authMode == ZM_AUTH_MODE_WPAPSK) || 541 - (wd->ws.staWmeQosInfo!= 0) ) 542 - { 543 - /*if u-APSD test(set QosInfo), clear connectByReasso to do association (not reassociation)*/ 544 - wd->sta.connectByReasso = FALSE; 545 - wd->sta.failCntOfReasso = 0; 546 - wd->sta.pmkidInfo.bssidCount = 0; 497 + if (wd->ws.bDesiredBssid) { 498 + zfMemoryCopy(wd->sta.desiredBssid, 499 + wd->ws.desiredBssid, 6); 500 + wd->sta.bDesiredBssid = TRUE; 501 + wd->ws.bDesiredBssid = FALSE; 502 + } else 503 + wd->sta.bDesiredBssid = FALSE; 547 504 548 - wd->sta.ssidLen = wd->ws.ssidLen; 549 - zfMemoryCopy(wd->sta.ssid, wd->ws.ssid, wd->sta.ssidLen); 505 + /* check ssid */ 506 + if (wd->ws.ssidLen != 0) { 507 + if ((!zfMemoryIsEqual(wd->ws.ssid, wd->sta.ssid, 508 + wd->sta.ssidLen)) || 509 + (wd->ws.ssidLen != wd->sta.ssidLen) || 510 + (wd->sta.authMode == ZM_AUTH_MODE_WPA) || 511 + (wd->sta.authMode == ZM_AUTH_MODE_WPAPSK) || 512 + (wd->ws.staWmeQosInfo != 0)) { 513 + /* if u-APSD test(set QosInfo), clear 514 + connectByReasso to do association 515 + (not reassociation) 516 + */ 517 + wd->sta.connectByReasso = FALSE; 518 + wd->sta.failCntOfReasso = 0; 519 + wd->sta.pmkidInfo.bssidCount = 0; 550 520 551 - if ( wd->sta.ssidLen < 32 ) 552 - { 553 - wd->sta.ssid[wd->sta.ssidLen] = 0; 554 - } 555 - } 556 - } 557 - else 558 - { /* ANY BSS */ 559 - wd->sta.ssid[0] = 0; 560 - wd->sta.ssidLen = 0; 561 - } 521 + wd->sta.ssidLen = wd->ws.ssidLen; 522 + zfMemoryCopy(wd->sta.ssid, wd->ws.ssid, 523 + wd->sta.ssidLen); 562 524 563 - wd->sta.wmeEnabled = wd->ws.staWmeEnabled; 564 - wd->sta.wmeQosInfo = wd->ws.staWmeQosInfo; 525 + if (wd->sta.ssidLen < 32) 526 + wd->sta.ssid[wd->sta.ssidLen] = 0; 527 + } 528 + } else { 529 + /* ANY BSS */ 530 + wd->sta.ssid[0] = 0; 531 + wd->sta.ssidLen = 0; 532 + } 565 533 566 - } 534 + wd->sta.wmeEnabled = wd->ws.staWmeEnabled; 535 + wd->sta.wmeQosInfo = wd->ws.staWmeQosInfo; 567 536 568 - zmw_leave_critical_section(dev); 537 + } 538 + 539 + zmw_leave_critical_section(dev); 569 540 } 570 541 571 - u16_t zfWlanEnable(zdev_t* dev) 542 + u16_t zfWlanEnable(zdev_t *dev) 572 543 { 573 - u8_t bssid[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; 574 - u16_t i; 544 + u8_t bssid[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; 545 + u16_t i; 575 546 576 - zmw_get_wlan_dev(dev); 547 + zmw_get_wlan_dev(dev); 577 548 578 - zmw_declare_for_critical_section(); 549 + zmw_declare_for_critical_section(); 579 550 580 - if ( wd->wlanMode == ZM_MODE_UNKNOWN ) 581 - { 582 - zm_debug_msg0("Unknown Mode...Skip..."); 583 - return 0; 584 - } 551 + if (wd->wlanMode == ZM_MODE_UNKNOWN) { 552 + zm_debug_msg0("Unknown Mode...Skip..."); 553 + return 0; 554 + } 585 555 586 - if (wd->wlanMode == ZM_MODE_AP) 587 - { 588 - u16_t vapId; 556 + if (wd->wlanMode == ZM_MODE_AP) { 557 + u16_t vapId; 589 558 590 - vapId = zfwGetVapId(dev); 559 + vapId = zfwGetVapId(dev); 591 560 592 - if (vapId == 0xffff) 593 - { 594 - /* AP mode */ 595 - zfApInitStaTbl(dev); 561 + if (vapId == 0xffff) { 562 + /* AP mode */ 563 + zfApInitStaTbl(dev); 596 564 597 - /* AP default parameters */ 598 - wd->bRate = 0xf; 599 - wd->gRate = 0xff; 600 - wd->bRateBasic = 0xf; 601 - wd->gRateBasic = 0x0; 602 - //wd->beaconInterval = 100; 603 - wd->ap.apBitmap = 1; 604 - wd->ap.beaconCounter = 0; 605 - //wd->ap.vapNumber = 1; //mark by ygwei for Vap 565 + /* AP default parameters */ 566 + wd->bRate = 0xf; 567 + wd->gRate = 0xff; 568 + wd->bRateBasic = 0xf; 569 + wd->gRateBasic = 0x0; 570 + /* wd->beaconInterval = 100; */ 571 + wd->ap.apBitmap = 1; 572 + wd->ap.beaconCounter = 0; 573 + /* wd->ap.vapNumber = 1; //mark by ygwei for Vap */ 606 574 607 - wd->ap.hideSsid[0] = 0; 608 - wd->ap.staAgingTimeSec = 10*60; 609 - wd->ap.staProbingTimeSec = 60; 575 + wd->ap.hideSsid[0] = 0; 576 + wd->ap.staAgingTimeSec = 10*60; 577 + wd->ap.staProbingTimeSec = 60; 610 578 611 - for (i=0; i<ZM_MAX_AP_SUPPORT; i++) 612 - { 613 - wd->ap.bcmcHead[i] = wd->ap.bcmcTail[i] = 0; 614 - } 579 + for (i = 0; i < ZM_MAX_AP_SUPPORT; i++) 580 + wd->ap.bcmcHead[i] = wd->ap.bcmcTail[i] = 0; 615 581 616 - //wd->ap.uniHead = wd->ap.uniTail = 0; 582 + /* wd->ap.uniHead = wd->ap.uniTail = 0; */ 617 583 618 - /* load AP parameters */ 619 - wd->bRateBasic = wd->ws.bRateBasic; 620 - wd->gRateBasic = wd->ws.gRateBasic; 621 - wd->bgMode = wd->ws.bgMode; 622 - if ((wd->ws.ssidLen <= 32) && (wd->ws.ssidLen != 0)) 623 - { 624 - wd->ap.ssidLen[0] = wd->ws.ssidLen; 625 - for(i=0; i<wd->ws.ssidLen; i++) 626 - { 627 - wd->ap.ssid[0][i] = wd->ws.ssid[i]; 628 - } 629 - wd->ws.ssidLen = 0; // Reset Wrapper Variable 630 - } 584 + /* load AP parameters */ 585 + wd->bRateBasic = wd->ws.bRateBasic; 586 + wd->gRateBasic = wd->ws.gRateBasic; 587 + wd->bgMode = wd->ws.bgMode; 588 + if ((wd->ws.ssidLen <= 32) && (wd->ws.ssidLen != 0)) { 589 + wd->ap.ssidLen[0] = wd->ws.ssidLen; 590 + for (i = 0; i < wd->ws.ssidLen; i++) 591 + wd->ap.ssid[0][i] = wd->ws.ssid[i]; 592 + wd->ws.ssidLen = 0; /* Reset Wrapper Variable */ 593 + } 631 594 632 - if (wd->ap.encryMode[0] == 0) 633 - { 634 - wd->ap.capab[0] = 0x001; 635 - } 636 - else 637 - { 638 - wd->ap.capab[0] = 0x011; 639 - } 640 - /* set Short Slot Time bit if not 11b */ 641 - if (wd->ap.wlanType[0] != ZM_WLAN_TYPE_PURE_B) 642 - { 643 - wd->ap.capab[0] |= 0x400; 644 - } 595 + if (wd->ap.encryMode[0] == 0) 596 + wd->ap.capab[0] = 0x001; 597 + else 598 + wd->ap.capab[0] = 0x011; 599 + /* set Short Slot Time bit if not 11b */ 600 + if (wd->ap.wlanType[0] != ZM_WLAN_TYPE_PURE_B) 601 + wd->ap.capab[0] |= 0x400; 645 602 646 - // wd->ap.vapNumber = 1; // mark by ygwei for Vap Test 647 - } 648 - else 649 - { 603 + /* wd->ap.vapNumber = 1; //mark by ygwei for Vap Test */ 604 + } else { 650 605 #if 0 651 - /* VAP Test Code */ 652 - wd->ap.apBitmap = 0x3; 653 - wd->ap.capab[1] = 0x401; 654 - wd->ap.ssidLen[1] = 4; 655 - wd->ap.ssid[1][0] = 'v'; 656 - wd->ap.ssid[1][1] = 'a'; 657 - wd->ap.ssid[1][2] = 'p'; 658 - wd->ap.ssid[1][3] = '1'; 659 - wd->ap.authAlgo[1] = wd->ws.authMode; 660 - wd->ap.encryMode[1] = wd->ws.encryMode; 661 - wd->ap.vapNumber = 2; 606 + /* VAP Test Code */ 607 + wd->ap.apBitmap = 0x3; 608 + wd->ap.capab[1] = 0x401; 609 + wd->ap.ssidLen[1] = 4; 610 + wd->ap.ssid[1][0] = 'v'; 611 + wd->ap.ssid[1][1] = 'a'; 612 + wd->ap.ssid[1][2] = 'p'; 613 + wd->ap.ssid[1][3] = '1'; 614 + wd->ap.authAlgo[1] = wd->ws.authMode; 615 + wd->ap.encryMode[1] = wd->ws.encryMode; 616 + wd->ap.vapNumber = 2; 662 617 #else 663 - /* VAP Test Code */ 664 - wd->ap.apBitmap = 0x1 | (0x01 << (vapId+1)); 618 + /* VAP Test Code */ 619 + wd->ap.apBitmap = 0x1 | (0x01 << (vapId+1)); 665 620 666 - if ((wd->ws.ssidLen <= 32) && (wd->ws.ssidLen != 0)) 667 - { 668 - wd->ap.ssidLen[vapId+1] = wd->ws.ssidLen; 669 - for(i=0; i<wd->ws.ssidLen; i++) 670 - { 671 - wd->ap.ssid[vapId+1][i] = wd->ws.ssid[i]; 672 - } 673 - wd->ws.ssidLen = 0; // Reset Wrapper Variable 674 - } 621 + if ((wd->ws.ssidLen <= 32) && (wd->ws.ssidLen != 0)) { 622 + wd->ap.ssidLen[vapId+1] = wd->ws.ssidLen; 623 + for (i = 0; i < wd->ws.ssidLen; i++) 624 + wd->ap.ssid[vapId+1][i] = 625 + wd->ws.ssid[i]; 626 + wd->ws.ssidLen = 0; /* Reset Wrapper Variable */ 627 + } 675 628 676 - if (wd->ap.encryMode[vapId+1] == 0) 677 - { 678 - wd->ap.capab[vapId+1] = 0x401; 679 - } 680 - else 681 - { 682 - wd->ap.capab[vapId+1] = 0x411; 683 - } 629 + if (wd->ap.encryMode[vapId+1] == 0) 630 + wd->ap.capab[vapId+1] = 0x401; 631 + else 632 + wd->ap.capab[vapId+1] = 0x411; 684 633 685 - wd->ap.authAlgo[vapId+1] = wd->ws.authMode; 686 - wd->ap.encryMode[vapId+1] = wd->ws.encryMode; 634 + wd->ap.authAlgo[vapId+1] = wd->ws.authMode; 635 + wd->ap.encryMode[vapId+1] = wd->ws.encryMode; 687 636 688 - /* Need to be modified when VAP is used */ 689 - //wd->ap.vapNumber = 2; 637 + /* Need to be modified when VAP is used */ 638 + /* wd->ap.vapNumber = 2; */ 690 639 #endif 691 - } 640 + } 692 641 693 - wd->ap.vapNumber++; 642 + wd->ap.vapNumber++; 694 643 695 - zfCoreSetFrequency(dev, wd->frequency); 644 + zfCoreSetFrequency(dev, wd->frequency); 696 645 697 - zfInitMacApMode(dev); 646 + zfInitMacApMode(dev); 698 647 699 - /* Disable protection mode */ 700 - zfApSetProtectionMode(dev, 0); 648 + /* Disable protection mode */ 649 + zfApSetProtectionMode(dev, 0); 701 650 702 - zfApSendBeacon(dev); 703 - } /*if (wd->wlanMode == ZM_MODE_AP) */ 704 - else 705 - { 706 - zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_INTERNAL); 707 - zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_EXTERNAL); 651 + zfApSendBeacon(dev); 652 + } else { /*if (wd->wlanMode == ZM_MODE_AP) */ 708 653 709 - zmw_enter_critical_section(dev); 710 - wd->sta.oppositeCount = 0; /* reset opposite count */ 711 - //wd->sta.bAutoReconnect = wd->sta.bAutoReconnectEnabled; 712 - //wd->sta.scanWithSSID = 0; 713 - zfStaInitOppositeInfo(dev); 714 - zmw_leave_critical_section(dev); 654 + zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_INTERNAL); 655 + zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_EXTERNAL); 715 656 716 - zfStaResetStatus(dev, 0); 657 + zmw_enter_critical_section(dev); 658 + wd->sta.oppositeCount = 0; /* reset opposite count */ 659 + /* wd->sta.bAutoReconnect = wd->sta.bAutoReconnectEnabled; */ 660 + /* wd->sta.scanWithSSID = 0; */ 661 + zfStaInitOppositeInfo(dev); 662 + zmw_leave_critical_section(dev); 717 663 718 - if ( (wd->sta.cmDisallowSsidLength != 0)&& 719 - (wd->sta.ssidLen == wd->sta.cmDisallowSsidLength)&& 720 - (zfMemoryIsEqual(wd->sta.ssid, wd->sta.cmDisallowSsid, 721 - wd->sta.ssidLen)) && 722 - (wd->sta.wepStatus == ZM_ENCRYPTION_TKIP)) 723 - { /* countermeasures */ 724 - zm_debug_msg0("countermeasures disallow association"); 664 + zfStaResetStatus(dev, 0); 725 665 726 - } 727 - else 728 - { 729 - switch( wd->wlanMode ) 730 - { 731 - case ZM_MODE_IBSS: 732 - /* some registers may be set here */ 733 - if ( wd->sta.authMode == ZM_AUTH_MODE_WPA2PSK ) 734 - { 735 - zfHpSetApStaMode(dev, ZM_HAL_80211_MODE_IBSS_WPA2PSK); 736 - } 737 - else 738 - { 739 - zfHpSetApStaMode(dev, ZM_HAL_80211_MODE_IBSS_GENERAL); 740 - } 666 + if ((wd->sta.cmDisallowSsidLength != 0) && 667 + (wd->sta.ssidLen == wd->sta.cmDisallowSsidLength) && 668 + (zfMemoryIsEqual(wd->sta.ssid, wd->sta.cmDisallowSsid, 669 + wd->sta.ssidLen)) && 670 + (wd->sta.wepStatus == ZM_ENCRYPTION_TKIP)) {/*countermeasures*/ 671 + zm_debug_msg0("countermeasures disallow association"); 672 + } else { 673 + switch (wd->wlanMode) { 674 + case ZM_MODE_IBSS: 675 + /* some registers may be set here */ 676 + if (wd->sta.authMode == ZM_AUTH_MODE_WPA2PSK) 677 + zfHpSetApStaMode(dev, 678 + ZM_HAL_80211_MODE_IBSS_WPA2PSK); 679 + else 680 + zfHpSetApStaMode(dev, 681 + ZM_HAL_80211_MODE_IBSS_GENERAL); 741 682 742 - zm_msg0_mm(ZM_LV_0, "ZM_MODE_IBSS"); 743 - zfIbssConnectNetwork(dev); 744 - break; 683 + zm_msg0_mm(ZM_LV_0, "ZM_MODE_IBSS"); 684 + zfIbssConnectNetwork(dev); 685 + break; 745 686 746 - case ZM_MODE_INFRASTRUCTURE: 747 - /* some registers may be set here */ 748 - zfHpSetApStaMode(dev, ZM_HAL_80211_MODE_STA); 687 + case ZM_MODE_INFRASTRUCTURE: 688 + /* some registers may be set here */ 689 + zfHpSetApStaMode(dev, ZM_HAL_80211_MODE_STA); 749 690 750 - zfInfraConnectNetwork(dev); 751 - break; 691 + zfInfraConnectNetwork(dev); 692 + break; 752 693 753 - case ZM_MODE_PSEUDO: 754 - /* some registers may be set here */ 755 - zfHpSetApStaMode(dev, ZM_HAL_80211_MODE_STA); 694 + case ZM_MODE_PSEUDO: 695 + /* some registers may be set here */ 696 + zfHpSetApStaMode(dev, ZM_HAL_80211_MODE_STA); 756 697 757 - zfUpdateBssid(dev, bssid); 758 - zfCoreSetFrequency(dev, wd->frequency); 759 - break; 698 + zfUpdateBssid(dev, bssid); 699 + zfCoreSetFrequency(dev, wd->frequency); 700 + break; 760 701 761 - default: 762 - break; 763 - } 764 - } 702 + default: 703 + break; 704 + } 705 + } 765 706 766 - } 707 + } 767 708 768 709 769 - //if ( (wd->wlanMode != ZM_MODE_INFRASTRUCTURE)&& 770 - // (wd->wlanMode != ZM_MODE_AP) ) 771 - if ( wd->wlanMode == ZM_MODE_PSEUDO ) 772 - { 773 - /* Reset Wlan status */ 774 - zfWlanReset(dev); 710 + /* if ((wd->wlanMode != ZM_MODE_INFRASTRUCTURE) && 711 + (wd->wlanMode != ZM_MODE_AP)) 712 + */ 713 + if (wd->wlanMode == ZM_MODE_PSEUDO) { 714 + /* Reset Wlan status */ 715 + zfWlanReset(dev); 775 716 776 - if (wd->zfcbConnectNotify != NULL) 777 - { 778 - wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_CONNECT, wd->sta.bssid); 779 - } 780 - zfChangeAdapterState(dev, ZM_STA_STATE_CONNECTED); 781 - } 717 + if (wd->zfcbConnectNotify != NULL) 718 + wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_CONNECT, 719 + wd->sta.bssid); 720 + zfChangeAdapterState(dev, ZM_STA_STATE_CONNECTED); 721 + } 782 722 783 723 784 - if(wd->wlanMode == ZM_MODE_AP) 785 - { 786 - if (wd->zfcbConnectNotify != NULL) 787 - { 788 - wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_CONNECT, wd->sta.bssid); 789 - } 790 - //zfChangeAdapterState(dev, ZM_STA_STATE_CONNECTED); 791 - } 724 + if (wd->wlanMode == ZM_MODE_AP) { 725 + if (wd->zfcbConnectNotify != NULL) 726 + wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_CONNECT, 727 + wd->sta.bssid); 728 + /* zfChangeAdapterState(dev, ZM_STA_STATE_CONNECTED); */ 729 + } 792 730 793 - // Assign default Tx Rate 794 - if ( wd->sta.EnableHT ) 795 - { 731 + /* Assign default Tx Rate */ 732 + if (wd->sta.EnableHT) { 796 733 u32_t oneTxStreamCap; 797 - oneTxStreamCap = (zfHpCapability(dev) & ZM_HP_CAP_11N_ONE_TX_STREAM); 798 - if(oneTxStreamCap) 734 + oneTxStreamCap = (zfHpCapability(dev) & 735 + ZM_HP_CAP_11N_ONE_TX_STREAM); 736 + if (oneTxStreamCap) 799 737 wd->CurrentTxRateKbps = 135000; 800 738 else 801 739 wd->CurrentTxRateKbps = 270000; 802 - wd->CurrentRxRateKbps = 270000; 803 - } 804 - else 805 - { 806 - wd->CurrentTxRateKbps = 54000; 807 - wd->CurrentRxRateKbps = 54000; 808 - } 740 + wd->CurrentRxRateKbps = 270000; 741 + } else { 742 + wd->CurrentTxRateKbps = 54000; 743 + wd->CurrentRxRateKbps = 54000; 744 + } 809 745 810 - wd->state = ZM_WLAN_STATE_ENABLED; 746 + wd->state = ZM_WLAN_STATE_ENABLED; 811 747 812 - return 0; 748 + return 0; 813 749 } 814 750 815 751 /* Enable/disable Wlan operation */ 816 - u16_t zfiWlanEnable(zdev_t* dev) 752 + u16_t zfiWlanEnable(zdev_t *dev) 817 753 { 818 - u16_t ret; 754 + u16_t ret; 819 755 820 - zmw_get_wlan_dev(dev); 756 + zmw_get_wlan_dev(dev); 821 757 822 - zm_msg0_mm(ZM_LV_1, "Enable Wlan"); 758 + zm_msg0_mm(ZM_LV_1, "Enable Wlan"); 823 759 824 - zfGetWrapperSetting(dev); 760 + zfGetWrapperSetting(dev); 825 761 826 - zfZeroMemory((u8_t*) &wd->trafTally, sizeof(struct zsTrafTally)); 762 + zfZeroMemory((u8_t *) &wd->trafTally, sizeof(struct zsTrafTally)); 827 763 828 - // Reset cmMicFailureCount to 0 for new association request 829 - if ( wd->sta.cmMicFailureCount == 1 ) 830 - { 831 - zfTimerCancel(dev, ZM_EVENT_CM_TIMER); 832 - wd->sta.cmMicFailureCount = 0; 833 - } 764 + /* Reset cmMicFailureCount to 0 for new association request */ 765 + if (wd->sta.cmMicFailureCount == 1) { 766 + zfTimerCancel(dev, ZM_EVENT_CM_TIMER); 767 + wd->sta.cmMicFailureCount = 0; 768 + } 834 769 835 - zfFlushVtxq(dev); 836 - if ((wd->queueFlushed & 0x10) != 0) 837 - { 838 - zfHpUsbReset(dev); 839 - } 840 - ret = zfWlanEnable(dev); 770 + zfFlushVtxq(dev); 771 + if ((wd->queueFlushed & 0x10) != 0) 772 + zfHpUsbReset(dev); 841 773 842 - return ret; 774 + ret = zfWlanEnable(dev); 775 + 776 + return ret; 843 777 } 844 778 /* Add a flag named ResetKeyCache to show if KeyCache should be cleared. 845 779 for hostapd in AP mode, if driver receives iwconfig ioctl 846 - after setting group key, it shouldn't clear KeyCache. */ 847 - u16_t zfiWlanDisable(zdev_t* dev, u8_t ResetKeyCache) 780 + after setting group key, it shouldn't clear KeyCache. 781 + */ 782 + u16_t zfiWlanDisable(zdev_t *dev, u8_t ResetKeyCache) 848 783 { 849 - u16_t i; 850 - u8_t isConnected; 784 + u16_t i; 785 + u8_t isConnected; 851 786 852 - zmw_get_wlan_dev(dev); 787 + zmw_get_wlan_dev(dev); 853 788 854 789 #ifdef ZM_ENABLE_IBSS_WPA2PSK 855 - zmw_declare_for_critical_section(); 790 + zmw_declare_for_critical_section(); 856 791 #endif 857 - wd->state = ZM_WLAN_STATE_DISABLED; 792 + wd->state = ZM_WLAN_STATE_DISABLED; 858 793 859 - zm_msg0_mm(ZM_LV_1, "Disable Wlan"); 794 + zm_msg0_mm(ZM_LV_1, "Disable Wlan"); 860 795 861 - if ( wd->wlanMode != ZM_MODE_AP ) 862 - { 863 - isConnected = zfStaIsConnected(dev); 796 + if (wd->wlanMode != ZM_MODE_AP) { 797 + isConnected = zfStaIsConnected(dev); 864 798 865 - if ( (wd->wlanMode == ZM_MODE_INFRASTRUCTURE)&& 866 - (wd->sta.currentAuthMode != ZM_AUTH_MODE_WPA2) ) 867 - { 868 - /* send deauthentication frame */ 869 - if (isConnected) 870 - { 871 - //zfiWlanDeauth(dev, NULL, 0); 872 - zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, wd->sta.bssid, 3, 0, 0); 873 - //zmw_debug_msg0("send a Deauth frame!"); 874 - } 875 - } 799 + if ((wd->wlanMode == ZM_MODE_INFRASTRUCTURE) && 800 + (wd->sta.currentAuthMode != ZM_AUTH_MODE_WPA2)) { 801 + /* send deauthentication frame */ 802 + if (isConnected) { 803 + /* zfiWlanDeauth(dev, NULL, 0); */ 804 + zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, 805 + wd->sta.bssid, 3, 0, 0); 806 + /* zmw_debug_msg0("send a Deauth frame!"); */ 807 + } 808 + } 876 809 877 - // Remove all the connected peer stations 878 - if ( wd->wlanMode == ZM_MODE_IBSS ) 879 - { 880 - wd->sta.ibssBssIsCreator = 0; 881 - zfTimerCancel(dev, ZM_EVENT_IBSS_MONITOR); 882 - zfStaIbssMonitoring(dev, 1); 883 - } 810 + /* Remove all the connected peer stations */ 811 + if (wd->wlanMode == ZM_MODE_IBSS) { 812 + wd->sta.ibssBssIsCreator = 0; 813 + zfTimerCancel(dev, ZM_EVENT_IBSS_MONITOR); 814 + zfStaIbssMonitoring(dev, 1); 815 + } 884 816 885 817 #ifdef ZM_ENABLE_IBSS_WPA2PSK 886 - zmw_enter_critical_section(dev); 887 - wd->sta.ibssWpa2Psk = 0; 888 - zmw_leave_critical_section(dev); 818 + zmw_enter_critical_section(dev); 819 + wd->sta.ibssWpa2Psk = 0; 820 + zmw_leave_critical_section(dev); 889 821 #endif 890 822 891 - wd->sta.wpaState = ZM_STA_WPA_STATE_INIT; 823 + wd->sta.wpaState = ZM_STA_WPA_STATE_INIT; 892 824 893 - /* reset connect timeout counter */ 894 - wd->sta.connectTimeoutCount = 0; 825 + /* reset connect timeout counter */ 826 + wd->sta.connectTimeoutCount = 0; 895 827 896 - /* reset connectState to None */ 897 - wd->sta.connectState = ZM_STA_CONN_STATE_NONE; 828 + /* reset connectState to None */ 829 + wd->sta.connectState = ZM_STA_CONN_STATE_NONE; 898 830 899 - /* reset leap enable variable */ 900 - wd->sta.leapEnabled = 0; 831 + /* reset leap enable variable */ 832 + wd->sta.leapEnabled = 0; 901 833 902 - /* Disable the RIFS Status / RIFS-like frame count / RIFS count */ 903 - if( wd->sta.rifsState == ZM_RIFS_STATE_DETECTED ) 904 - zfHpDisableRifs(dev); 905 - wd->sta.rifsState = ZM_RIFS_STATE_DETECTING; 906 - wd->sta.rifsLikeFrameCnt = 0; 907 - wd->sta.rifsCount = 0; 834 + /* Disable the RIFS Status/RIFS-like frame count/RIFS count */ 835 + if (wd->sta.rifsState == ZM_RIFS_STATE_DETECTED) 836 + zfHpDisableRifs(dev); 837 + wd->sta.rifsState = ZM_RIFS_STATE_DETECTING; 838 + wd->sta.rifsLikeFrameCnt = 0; 839 + wd->sta.rifsCount = 0; 908 840 909 - wd->sta.osRxFilter = 0; 910 - wd->sta.bSafeMode = 0; 841 + wd->sta.osRxFilter = 0; 842 + wd->sta.bSafeMode = 0; 911 843 912 - zfChangeAdapterState(dev, ZM_STA_STATE_DISCONNECT); 913 - if (ResetKeyCache) 914 - zfHpResetKeyCache(dev); 844 + zfChangeAdapterState(dev, ZM_STA_STATE_DISCONNECT); 845 + if (ResetKeyCache) 846 + zfHpResetKeyCache(dev); 915 847 916 - if (isConnected) 917 - { 918 - if (wd->zfcbConnectNotify != NULL) 919 - { 920 - wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_CONNECTION_DISABLED, wd->sta.bssid); 921 - } 922 - } 923 - else 924 - { 925 - if (wd->zfcbConnectNotify != NULL) 926 - { 927 - wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_DISABLED, wd->sta.bssid); 928 - } 929 - } 930 - } 931 - else //if (wd->wlanMode == ZM_MODE_AP) 932 - { 933 - for (i=0; i<ZM_MAX_STA_SUPPORT; i++) 934 - { 935 - /* send deauthentication frame */ 936 - if (wd->ap.staTable[i].valid == 1) 937 - { 938 - /* Reason : Sending station is leaving */ 939 - zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, 940 - wd->ap.staTable[i].addr, 3, 0, 0); 941 - } 942 - } 848 + if (isConnected) { 849 + if (wd->zfcbConnectNotify != NULL) 850 + wd->zfcbConnectNotify(dev, 851 + ZM_STATUS_MEDIA_CONNECTION_DISABLED, 852 + wd->sta.bssid); 853 + } else { 854 + if (wd->zfcbConnectNotify != NULL) 855 + wd->zfcbConnectNotify(dev, 856 + ZM_STATUS_MEDIA_DISABLED, wd->sta.bssid); 857 + } 858 + } else { /* if (wd->wlanMode == ZM_MODE_AP) */ 859 + for (i = 0; i < ZM_MAX_STA_SUPPORT; i++) { 860 + /* send deauthentication frame */ 861 + if (wd->ap.staTable[i].valid == 1) { 862 + /* Reason : Sending station is leaving */ 863 + zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, 864 + wd->ap.staTable[i].addr, 3, 0, 0); 865 + } 866 + } 943 867 944 - if (ResetKeyCache) 945 - zfHpResetKeyCache(dev); 868 + if (ResetKeyCache) 869 + zfHpResetKeyCache(dev); 946 870 947 - wd->ap.vapNumber--; 948 - } 871 + wd->ap.vapNumber--; 872 + } 949 873 950 - /* stop beacon */ 951 - zfHpDisableBeacon(dev); 874 + /* stop beacon */ 875 + zfHpDisableBeacon(dev); 952 876 953 - /* Flush VTxQ and MmQ */ 954 - zfFlushVtxq(dev); 955 - /* Flush AP PS queues */ 956 - zfApFlushBufferedPsFrame(dev); 957 - /* Free buffer in defragment list*/ 958 - zfAgingDefragList(dev, 1); 877 + /* Flush VTxQ and MmQ */ 878 + zfFlushVtxq(dev); 879 + /* Flush AP PS queues */ 880 + zfApFlushBufferedPsFrame(dev); 881 + /* Free buffer in defragment list*/ 882 + zfAgingDefragList(dev, 1); 959 883 960 - #ifdef ZM_ENABLE_AGGREGATION 961 - /* add by honda */ 962 - zfAggRxFreeBuf(dev, 0); //1 for release structure memory 963 - /* end of add by honda */ 964 - #endif 884 + #ifdef ZM_ENABLE_AGGREGATION 885 + /* add by honda */ 886 + zfAggRxFreeBuf(dev, 0); /* 1 for release structure memory */ 887 + /* end of add by honda */ 888 + #endif 965 889 966 - // Clear the information for the peer stations of IBSS or AP of Station mode 967 - zfZeroMemory((u8_t*)wd->sta.oppositeInfo, sizeof(struct zsOppositeInfo) * ZM_MAX_OPPOSITE_COUNT); 890 + /* Clear the information for the peer stations 891 + of IBSS or AP of Station mode 892 + */ 893 + zfZeroMemory((u8_t *)wd->sta.oppositeInfo, 894 + sizeof(struct zsOppositeInfo) * ZM_MAX_OPPOSITE_COUNT); 968 895 969 - /* Turn off Software WEP/TKIP */ 970 - if (wd->sta.SWEncryptEnable != 0) 971 - { 972 - zm_debug_msg0("Disable software encryption"); 973 - zfStaDisableSWEncryption(dev); 974 - } 896 + /* Turn off Software WEP/TKIP */ 897 + if (wd->sta.SWEncryptEnable != 0) { 898 + zm_debug_msg0("Disable software encryption"); 899 + zfStaDisableSWEncryption(dev); 900 + } 975 901 976 - /* Improve WEP/TKIP performace with HT AP, detail information please look bug#32495 */ 977 - //zfHpSetTTSIFSTime(dev, 0x8); 902 + /* Improve WEP/TKIP performace with HT AP, 903 + detail information please look bug#32495 */ 904 + /* zfHpSetTTSIFSTime(dev, 0x8); */ 978 905 979 - return 0; 906 + return 0; 980 907 } 981 908 982 - u16_t zfiWlanSuspend(zdev_t* dev) 909 + u16_t zfiWlanSuspend(zdev_t *dev) 983 910 { 984 - zmw_get_wlan_dev(dev); 985 - zmw_declare_for_critical_section(); 911 + zmw_get_wlan_dev(dev); 912 + zmw_declare_for_critical_section(); 986 913 987 - // Change the HAL state to init so that any packet can't be transmitted between 988 - // resume & HAL reinit. This would cause the chip hang issue in OTUS. 989 - zmw_enter_critical_section(dev); 990 - wd->halState = ZM_HAL_STATE_INIT; 991 - zmw_leave_critical_section(dev); 914 + /* Change the HAL state to init so that any packet 915 + can't be transmitted between resume & HAL reinit. 916 + This would cause the chip hang issue in OTUS. 917 + */ 918 + zmw_enter_critical_section(dev); 919 + wd->halState = ZM_HAL_STATE_INIT; 920 + zmw_leave_critical_section(dev); 992 921 993 - return 0; 922 + return 0; 994 923 } 995 924 996 - u16_t zfiWlanResume(zdev_t* dev, u8_t doReconn) 925 + u16_t zfiWlanResume(zdev_t *dev, u8_t doReconn) 997 926 { 998 - u16_t ret; 999 - zmw_get_wlan_dev(dev); 1000 - zmw_declare_for_critical_section(); 927 + u16_t ret; 928 + zmw_get_wlan_dev(dev); 929 + zmw_declare_for_critical_section(); 1001 930 1002 - /* Redownload firmware, Reinit MAC,PHY,RF */ 1003 - zfHpReinit(dev, wd->frequency); 931 + /* Redownload firmware, Reinit MAC,PHY,RF */ 932 + zfHpReinit(dev, wd->frequency); 1004 933 1005 - //Set channel according to AP's configuration 1006 - zfCoreSetFrequencyExV2(dev, wd->frequency, wd->BandWidth40, 1007 - wd->ExtOffset, NULL, 1); 934 + /* Set channel according to AP's configuration */ 935 + zfCoreSetFrequencyExV2(dev, wd->frequency, wd->BandWidth40, 936 + wd->ExtOffset, NULL, 1); 1008 937 1009 - zfHpSetMacAddress(dev, wd->macAddr, 0); 938 + zfHpSetMacAddress(dev, wd->macAddr, 0); 1010 939 1011 - /* Start Rx */ 1012 - zfHpStartRecv(dev); 940 + /* Start Rx */ 941 + zfHpStartRecv(dev); 1013 942 1014 - zfFlushVtxq(dev); 943 + zfFlushVtxq(dev); 1015 944 1016 - if ( wd->wlanMode != ZM_MODE_INFRASTRUCTURE && 1017 - wd->wlanMode != ZM_MODE_IBSS ) 1018 - { 1019 - return 1; 1020 - } 945 + if (wd->wlanMode != ZM_MODE_INFRASTRUCTURE && 946 + wd->wlanMode != ZM_MODE_IBSS) 947 + return 1; 1021 948 1022 - zm_msg0_mm(ZM_LV_1, "Resume Wlan"); 1023 - if ( (zfStaIsConnected(dev)) || (zfStaIsConnecting(dev)) ) 1024 - { 1025 - if (doReconn == 1) 1026 - { 1027 - zm_msg0_mm(ZM_LV_1, "Re-connect..."); 1028 - zmw_enter_critical_section(dev); 1029 - wd->sta.connectByReasso = FALSE; 1030 - zmw_leave_critical_section(dev); 949 + zm_msg0_mm(ZM_LV_1, "Resume Wlan"); 950 + if ((zfStaIsConnected(dev)) || (zfStaIsConnecting(dev))) { 951 + if (doReconn == 1) { 952 + zm_msg0_mm(ZM_LV_1, "Re-connect..."); 953 + zmw_enter_critical_section(dev); 954 + wd->sta.connectByReasso = FALSE; 955 + zmw_leave_critical_section(dev); 1031 956 1032 - zfWlanEnable(dev); 1033 - } 1034 - else if (doReconn == 0) 1035 - { 1036 - zfHpSetRollCallTable(dev); 1037 - } 1038 - } 957 + zfWlanEnable(dev); 958 + } else if (doReconn == 0) 959 + zfHpSetRollCallTable(dev); 960 + } 1039 961 1040 - ret = 0; 962 + ret = 0; 1041 963 1042 - return ret; 964 + return ret; 1043 965 } 1044 966 1045 967 /************************************************************************/ ··· 979 1057 /* Stephen Chen Atheros Communications, INC. 2007.1 */ 980 1058 /* */ 981 1059 /************************************************************************/ 982 - void zfiWlanFlushAllQueuedBuffers(zdev_t* dev) 1060 + void zfiWlanFlushAllQueuedBuffers(zdev_t *dev) 983 1061 { 984 - /* Flush VTxQ and MmQ */ 985 - zfFlushVtxq(dev); 986 - /* Flush AP PS queues */ 987 - zfApFlushBufferedPsFrame(dev); 988 - /* Free buffer in defragment list*/ 989 - zfAgingDefragList(dev, 1); 1062 + /* Flush VTxQ and MmQ */ 1063 + zfFlushVtxq(dev); 1064 + /* Flush AP PS queues */ 1065 + zfApFlushBufferedPsFrame(dev); 1066 + /* Free buffer in defragment list*/ 1067 + zfAgingDefragList(dev, 1); 990 1068 } 991 1069 992 1070 /* Do WLAN site survey */ 993 - u16_t zfiWlanScan(zdev_t* dev) 1071 + u16_t zfiWlanScan(zdev_t *dev) 994 1072 { 995 - u16_t ret = 1; 996 - zmw_get_wlan_dev(dev); 1073 + u16_t ret = 1; 1074 + zmw_get_wlan_dev(dev); 997 1075 998 - zm_debug_msg0(""); 1076 + zm_debug_msg0(""); 999 1077 1000 - zmw_declare_for_critical_section(); 1078 + zmw_declare_for_critical_section(); 1001 1079 1002 - zmw_enter_critical_section(dev); 1080 + zmw_enter_critical_section(dev); 1003 1081 1004 - if (wd->wlanMode == ZM_MODE_AP) 1005 - { 1006 - wd->heartBeatNotification |= ZM_BSSID_LIST_SCAN; 1007 - wd->sta.scanFrequency = 0; 1008 - //wd->sta.pUpdateBssList->bssCount = 0; 1009 - ret = 0; 1010 - } 1011 - else 1012 - { 1013 - #if 0 1014 - if ( !zfStaBlockWlanScan(dev) ) 1015 - { 1016 - zm_debug_msg0("scan request"); 1017 - //zfTimerSchedule(dev, ZM_EVENT_SCAN, ZM_TICK_ZERO); 1018 - ret = 0; 1019 - goto start_scan; 1020 - } 1021 - #else 1022 - goto start_scan; 1023 - #endif 1024 - } 1082 + if (wd->wlanMode == ZM_MODE_AP) { 1083 + wd->heartBeatNotification |= ZM_BSSID_LIST_SCAN; 1084 + wd->sta.scanFrequency = 0; 1085 + /* wd->sta.pUpdateBssList->bssCount = 0; */ 1086 + ret = 0; 1087 + } else { 1088 + #if 0 1089 + if (!zfStaBlockWlanScan(dev)) { 1090 + zm_debug_msg0("scan request"); 1091 + /*zfTimerSchedule(dev, ZM_EVENT_SCAN, ZM_TICK_ZERO);*/ 1092 + ret = 0; 1093 + goto start_scan; 1094 + } 1095 + #else 1096 + goto start_scan; 1097 + #endif 1098 + } 1025 1099 1026 - zmw_leave_critical_section(dev); 1100 + zmw_leave_critical_section(dev); 1027 1101 1028 - return ret; 1102 + return ret; 1029 1103 1030 1104 start_scan: 1031 - zmw_leave_critical_section(dev); 1105 + zmw_leave_critical_section(dev); 1032 1106 1033 - if(wd->ledStruct.LEDCtrlFlagFromReg & ZM_LED_CTRL_FLAG_ALPHA) // flag for Alpha 1034 - wd->ledStruct.LEDCtrlFlag |= ZM_LED_CTRL_FLAG_ALPHA; 1107 + if (wd->ledStruct.LEDCtrlFlagFromReg & ZM_LED_CTRL_FLAG_ALPHA) { 1108 + /* flag for Alpha */ 1109 + wd->ledStruct.LEDCtrlFlag |= ZM_LED_CTRL_FLAG_ALPHA; 1110 + } 1035 1111 1036 - ret = zfScanMgrScanStart(dev, ZM_SCAN_MGR_SCAN_EXTERNAL); 1112 + ret = zfScanMgrScanStart(dev, ZM_SCAN_MGR_SCAN_EXTERNAL); 1037 1113 1038 - zm_debug_msg1("ret = ", ret); 1114 + zm_debug_msg1("ret = ", ret); 1039 1115 1040 - return ret; 1116 + return ret; 1041 1117 } 1042 1118 1043 1119 1044 - /* rate */ 1045 - /* 0 : AUTO */ 1046 - /* 1 : CCK 1M */ 1047 - /* 2 : CCK 2M */ 1048 - /* 3 : CCK 5.5M */ 1049 - /* 4 : CCK 11M */ 1050 - /* 5 : OFDM 6M */ 1051 - /* 6 : OFDM 9M */ 1052 - /* 7 : OFDM 12M */ 1053 - /* 8 : OFDM 18M */ 1054 - /* 9 : OFDM 24M */ 1055 - /* 10 : OFDM 36M */ 1056 - /* 11 : OFDM 48M */ 1057 - /* 12 : OFDM 54M */ 1058 - /* 13 : MCS 0 */ 1059 - /* 28 : MCS 15 */ 1120 + /* rate */ 1121 + /* 0 : AUTO */ 1122 + /* 1 : CCK 1M */ 1123 + /* 2 : CCK 2M */ 1124 + /* 3 : CCK 5.5M */ 1125 + /* 4 : CCK 11M */ 1126 + /* 5 : OFDM 6M */ 1127 + /* 6 : OFDM 9M */ 1128 + /* 7 : OFDM 12M */ 1129 + /* 8 : OFDM 18M */ 1130 + /* 9 : OFDM 24M */ 1131 + /* 10 : OFDM 36M */ 1132 + /* 11 : OFDM 48M */ 1133 + /* 12 : OFDM 54M */ 1134 + /* 13 : MCS 0 */ 1135 + /* 28 : MCS 15 */ 1060 1136 u16_t zcRateToMCS[] = 1061 1137 {0xff, 0, 1, 2, 3, 0xb, 0xf, 0xa, 0xe, 0x9, 0xd, 0x8, 0xc}; 1062 1138 u16_t zcRateToMT[] = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}; 1063 1139 1064 - u16_t zfiWlanSetTxRate(zdev_t* dev, u16_t rate) 1065 - { // jhlee HT 0 1066 - zmw_get_wlan_dev(dev); 1140 + u16_t zfiWlanSetTxRate(zdev_t *dev, u16_t rate) 1141 + { 1142 + /* jhlee HT 0 */ 1143 + zmw_get_wlan_dev(dev); 1067 1144 1068 - if (rate <=12) 1069 - { 1070 - wd->txMCS = zcRateToMCS[rate]; 1071 - wd->txMT = zcRateToMT[rate]; 1072 - return ZM_SUCCESS; 1073 - } 1074 - else if ((rate<=28)||(rate==13+32)) 1075 - { 1076 - wd->txMCS = rate - 12 - 1; 1077 - wd->txMT = 2; 1078 - return ZM_SUCCESS; 1079 - } 1145 + if (rate <= 12) { 1146 + wd->txMCS = zcRateToMCS[rate]; 1147 + wd->txMT = zcRateToMT[rate]; 1148 + return ZM_SUCCESS; 1149 + } else if ((rate <= 28) || (rate == 13 + 32)) { 1150 + wd->txMCS = rate - 12 - 1; 1151 + wd->txMT = 2; 1152 + return ZM_SUCCESS; 1153 + } 1080 1154 1081 - return ZM_ERR_INVALID_TX_RATE; 1155 + return ZM_ERR_INVALID_TX_RATE; 1082 1156 } 1083 1157 1084 1158 const u32_t zcRateIdToKbps40M[] = 1085 - { 1086 - 1000, 2000, 5500, 11000, /* 1M, 2M, 5M, 11M , 0 1 2 3*/ 1087 - 6000, 9000, 12000, 18000, /* 6M 9M 12M 18M , 4 5 6 7*/ 1088 - 24000, 36000, 48000, 54000, /* 24M 36M 48M 54M , 8 9 10 11*/ 1089 - 13500, 27000, 40500, 54000, /* MCS0 MCS1 MCS2 MCS3 , 12 13 14 15*/ 1090 - 81000, 108000, 121500, 135000, /* MCS4 MCS5 MCS6 MCS7 , 16 17 18 19*/ 1091 - 27000, 54000, 81000, 108000, /* MCS8 MCS9 MCS10 MCS11 , 20 21 22 23*/ 1092 - 162000, 216000, 243000, 270000, /* MCS12 MCS13 MCS14 MCS15 , 24 25 26 27*/ 1093 - 270000, 300000, 150000 /* MCS14SG, MCS15SG, MCS7SG , 28 29 30*/ 1094 - }; 1159 + { 1160 + 1000, 2000, 5500, 11000, /* 1M, 2M, 5M, 11M , 0 1 2 3 */ 1161 + 6000, 9000, 12000, 18000, /* 6M 9M 12M 18M , 4 5 6 7 */ 1162 + 24000, 36000, 48000, 54000, /* 24M 36M 48M 54M , 8 9 10 11 */ 1163 + 13500, 27000, 40500, 54000, /* MCS0 MCS1 MCS2 MCS3 , 12 13 14 15 */ 1164 + 81000, 108000, 121500, 135000, /* MCS4 MCS5 MCS6 MCS7 , 16 17 18 19 */ 1165 + 27000, 54000, 81000, 108000, /* MCS8 MCS9 MCS10 MCS11 , 20 21 22 23 */ 1166 + 162000, 216000, 243000, 270000, /*MCS12 MCS13 MCS14 MCS15, 24 25 26 27*/ 1167 + 270000, 300000, 150000 /* MCS14SG, MCS15SG, MCS7SG , 28 29 30 */ 1168 + }; 1095 1169 1096 1170 const u32_t zcRateIdToKbps20M[] = 1097 - { 1098 - 1000, 2000, 5500, 11000, /* 1M, 2M, 5M, 11M , 0 1 2 3*/ 1099 - 6000, 9000, 12000, 18000, /* 6M 9M 12M 18M , 4 5 6 7*/ 1100 - 24000, 36000, 48000, 54000, /* 24M 36M 48M 54M , 8 9 10 11*/ 1101 - 6500, 13000, 19500, 26000, /* MCS0 MCS1 MCS2 MCS3 , 12 13 14 15*/ 1102 - 39000, 52000, 58500, 65000, /* MCS4 MCS5 MCS6 MCS7 , 16 17 18 19*/ 1103 - 13000, 26000, 39000, 52000, /* MCS8 MCS9 MCS10 MCS11 , 20 21 22 23*/ 1104 - 78000, 104000, 117000, 130000, /* MCS12 MCS13 MCS14 MCS15 , 24 25 26 27*/ 1105 - 130000, 144400, 72200 /* MCS14SG, MCS15SG, MSG7SG , 28 29 30*/ 1106 - }; 1107 - 1108 - u32_t zfiWlanQueryTxRate(zdev_t* dev) 1109 1171 { 1110 - u8_t rateId = 0xff; 1111 - zmw_get_wlan_dev(dev); 1112 - zmw_declare_for_critical_section(); 1172 + 1000, 2000, 5500, 11000, /* 1M, 2M, 5M, 11M , 0 1 2 3 */ 1173 + 6000, 9000, 12000, 18000, /* 6M 9M 12M 18M , 4 5 6 7 */ 1174 + 24000, 36000, 48000, 54000, /* 24M 36M 48M 54M , 8 9 10 11 */ 1175 + 6500, 13000, 19500, 26000, /* MCS0 MCS1 MCS2 MCS3 , 12 13 14 15 */ 1176 + 39000, 52000, 58500, 65000, /* MCS4 MCS5 MCS6 MCS7 , 16 17 18 19 */ 1177 + 13000, 26000, 39000, 52000, /* MCS8 MCS9 MCS10 MCS11 , 20 21 22 23 */ 1178 + 78000, 104000, 117000, 130000, /* MCS12 MCS13 MCS14 MCS15, 24 25 26 27*/ 1179 + 130000, 144400, 72200 /* MCS14SG, MCS15SG, MSG7SG , 28 29 30 */ 1180 + }; 1113 1181 1114 - /* If Tx rate had not been trained, return maximum Tx rate instead */ 1115 - if ((wd->wlanMode == ZM_MODE_INFRASTRUCTURE) && (zfStaIsConnected(dev))) 1116 - { 1117 - zmw_enter_critical_section(dev); 1118 - //Not in fixed rate mode 1119 - if (wd->txMCS == 0xff) 1120 - { 1121 - if ((wd->sta.oppositeInfo[0].rcCell.flag & ZM_RC_TRAINED_BIT) == 0) 1122 - { 1123 - rateId = wd->sta.oppositeInfo[0].rcCell.operationRateSet[wd->sta.oppositeInfo[0].rcCell.operationRateCount-1]; 1124 - } 1125 - else 1126 - { 1127 - rateId = wd->sta.oppositeInfo[0].rcCell.operationRateSet[wd->sta.oppositeInfo[0].rcCell.currentRateIndex]; 1128 - } 1129 - } 1130 - zmw_leave_critical_section(dev); 1131 - } 1132 - if (rateId != 0xff) 1133 - { 1134 - if (wd->sta.htCtrlBandwidth) 1135 - { 1136 - return zcRateIdToKbps40M[rateId]; 1137 - } 1138 - else 1139 - { 1140 - return zcRateIdToKbps20M[rateId]; 1141 - } 1142 - } 1143 - else 1144 - { 1145 - return wd->CurrentTxRateKbps; 1146 - } 1182 + u32_t zfiWlanQueryTxRate(zdev_t *dev) 1183 + { 1184 + u8_t rateId = 0xff; 1185 + zmw_get_wlan_dev(dev); 1186 + zmw_declare_for_critical_section(); 1187 + 1188 + /* If Tx rate had not been trained, return maximum Tx rate instead */ 1189 + if ((wd->wlanMode == ZM_MODE_INFRASTRUCTURE) && 1190 + (zfStaIsConnected(dev))) { 1191 + zmw_enter_critical_section(dev); 1192 + /* Not in fixed rate mode */ 1193 + if (wd->txMCS == 0xff) { 1194 + if ((wd->sta.oppositeInfo[0].rcCell.flag & 1195 + ZM_RC_TRAINED_BIT) == 0) 1196 + rateId = wd->sta.oppositeInfo[0].rcCell. \ 1197 + operationRateSet[wd->sta.oppositeInfo[0]. \ 1198 + rcCell.operationRateCount-1]; 1199 + else 1200 + rateId = wd->sta.oppositeInfo[0].rcCell. \ 1201 + operationRateSet[wd->sta.oppositeInfo[0]. \ 1202 + rcCell.currentRateIndex]; 1203 + } 1204 + zmw_leave_critical_section(dev); 1205 + } 1206 + 1207 + if (rateId != 0xff) { 1208 + if (wd->sta.htCtrlBandwidth) 1209 + return zcRateIdToKbps40M[rateId]; 1210 + else 1211 + return zcRateIdToKbps20M[rateId]; 1212 + } else 1213 + return wd->CurrentTxRateKbps; 1147 1214 } 1148 1215 1149 - void zfWlanUpdateRxRate(zdev_t* dev, struct zsAdditionInfo* addInfo) 1216 + void zfWlanUpdateRxRate(zdev_t *dev, struct zsAdditionInfo *addInfo) 1150 1217 { 1151 - u32_t rxRateKbps; 1152 - zmw_get_wlan_dev(dev); 1153 - //zm_msg1_mm(ZM_LV_0, "addInfo->Tail.Data.RxMacStatus =", addInfo->Tail.Data.RxMacStatus & 0x03); 1218 + u32_t rxRateKbps; 1219 + zmw_get_wlan_dev(dev); 1220 + /* zm_msg1_mm(ZM_LV_0, "addInfo->Tail.Data.RxMacStatus =", 1221 + * addInfo->Tail.Data.RxMacStatus & 0x03); 1222 + */ 1154 1223 1155 - /* b5~b4: MPDU indication. */ 1156 - /* 00: Single MPDU. */ 1157 - /* 10: First MPDU of A-MPDU. */ 1158 - /* 11: Middle MPDU of A-MPDU. */ 1159 - /* 01: Last MPDU of A-MPDU. */ 1160 - /* Only First MPDU and Single MPDU have PLCP header */ 1161 - /* First MPDU : (mpduInd & 0x30) == 0x00 */ 1162 - /* Single MPDU : (mpduInd & 0x30) == 0x20 */ 1163 - if ((addInfo->Tail.Data.RxMacStatus & 0x10) == 0) 1164 - { 1165 - /* Modulation type */ 1166 - wd->modulationType = addInfo->Tail.Data.RxMacStatus & 0x03; 1167 - switch(wd->modulationType) 1168 - { 1169 - case 0x0: wd->rateField = addInfo->PlcpHeader[0] & 0xff; //CCK mode 1170 - wd->rxInfo = 0; 1171 - break; 1172 - case 0x1: wd->rateField = addInfo->PlcpHeader[0] & 0x0f; //Legacy-OFDM mode 1173 - wd->rxInfo = 0; 1174 - break; 1175 - case 0x2: wd->rateField = addInfo->PlcpHeader[3]; //HT-OFDM mode 1176 - wd->rxInfo = addInfo->PlcpHeader[6]; 1177 - break; 1178 - default: break; 1179 - } 1224 + /* b5~b4: MPDU indication. */ 1225 + /* 00: Single MPDU. */ 1226 + /* 10: First MPDU of A-MPDU. */ 1227 + /* 11: Middle MPDU of A-MPDU. */ 1228 + /* 01: Last MPDU of A-MPDU. */ 1229 + /* Only First MPDU and Single MPDU have PLCP header */ 1230 + /* First MPDU : (mpduInd & 0x30) == 0x00 */ 1231 + /* Single MPDU : (mpduInd & 0x30) == 0x20 */ 1232 + if ((addInfo->Tail.Data.RxMacStatus & 0x10) == 0) { 1233 + /* Modulation type */ 1234 + wd->modulationType = addInfo->Tail.Data.RxMacStatus & 0x03; 1235 + switch (wd->modulationType) { 1236 + /* CCK mode */ 1237 + case 0x0: 1238 + wd->rateField = addInfo->PlcpHeader[0] & 0xff; 1239 + wd->rxInfo = 0; 1240 + break; 1241 + /* Legacy-OFDM mode */ 1242 + case 0x1: 1243 + wd->rateField = addInfo->PlcpHeader[0] & 0x0f; 1244 + wd->rxInfo = 0; 1245 + break; 1246 + /* HT-OFDM mode */ 1247 + case 0x2: 1248 + wd->rateField = addInfo->PlcpHeader[3]; 1249 + wd->rxInfo = addInfo->PlcpHeader[6]; 1250 + break; 1251 + default: 1252 + break; 1253 + } 1180 1254 1181 - rxRateKbps = zfUpdateRxRate(dev); 1182 - if (wd->CurrentRxRateUpdated == 1) 1183 - { 1184 - if (rxRateKbps > wd->CurrentRxRateKbps) 1185 - { 1186 - wd->CurrentRxRateKbps = rxRateKbps; 1187 - } 1188 - } 1189 - else 1190 - { 1191 - wd->CurrentRxRateKbps = rxRateKbps; 1192 - wd->CurrentRxRateUpdated = 1; 1193 - } 1194 - } 1255 + rxRateKbps = zfUpdateRxRate(dev); 1256 + if (wd->CurrentRxRateUpdated == 1) { 1257 + if (rxRateKbps > wd->CurrentRxRateKbps) 1258 + wd->CurrentRxRateKbps = rxRateKbps; 1259 + } else { 1260 + wd->CurrentRxRateKbps = rxRateKbps; 1261 + wd->CurrentRxRateUpdated = 1; 1262 + } 1263 + } 1195 1264 } 1265 + 1196 1266 #if 0 1197 1267 u16_t zcIndextoRateBG[16] = {1000, 2000, 5500, 11000, 0, 0, 0, 0, 48000, 1198 - 24000, 12000, 6000, 54000, 36000, 18000, 9000}; 1268 + 24000, 12000, 6000, 54000, 36000, 18000, 9000}; 1199 1269 u32_t zcIndextoRateN20L[16] = {6500, 13000, 19500, 26000, 39000, 52000, 58500, 1200 - 65000, 13000, 26000, 39000, 52000, 78000, 104000, 1201 - 117000, 130000}; 1270 + 65000, 13000, 26000, 39000, 52000, 78000, 104000, 1271 + 117000, 130000}; 1202 1272 u32_t zcIndextoRateN20S[16] = {7200, 14400, 21700, 28900, 43300, 57800, 65000, 1203 - 72200, 14400, 28900, 43300, 57800, 86700, 115600, 1204 - 130000, 144400}; 1205 - u32_t zcIndextoRateN40L[16] = {13500, 27000, 40500, 54000, 81000, 108000, 121500, 1206 - 135000, 27000, 54000, 81000, 108000, 162000, 216000, 1207 - 243000, 270000}; 1208 - u32_t zcIndextoRateN40S[16] = {15000, 30000, 45000, 60000, 90000, 120000, 135000, 1209 - 150000, 30000, 60000, 90000, 120000, 180000, 240000, 1210 - 270000, 300000}; 1273 + 72200, 14400, 28900, 43300, 57800, 86700, 115600, 1274 + 130000, 144400}; 1275 + u32_t zcIndextoRateN40L[16] = {13500, 27000, 40500, 54000, 81000, 108000, 1276 + 121500, 135000, 27000, 54000, 81000, 108000, 1277 + 162000, 216000, 243000, 270000}; 1278 + u32_t zcIndextoRateN40S[16] = {15000, 30000, 45000, 60000, 90000, 120000, 1279 + 135000, 150000, 30000, 60000, 90000, 120000, 1280 + 180000, 240000, 270000, 300000}; 1211 1281 #endif 1212 1282 1213 1283 extern u16_t zcIndextoRateBG[16]; ··· 1208 1294 extern u32_t zcIndextoRateN40L[16]; 1209 1295 extern u32_t zcIndextoRateN40S[16]; 1210 1296 1211 - u32_t zfiWlanQueryRxRate(zdev_t* dev) 1297 + u32_t zfiWlanQueryRxRate(zdev_t *dev) 1212 1298 { 1213 - zmw_get_wlan_dev(dev); 1299 + zmw_get_wlan_dev(dev); 1214 1300 1215 - wd->CurrentRxRateUpdated = 0; 1216 - return wd->CurrentRxRateKbps; 1301 + wd->CurrentRxRateUpdated = 0; 1302 + return wd->CurrentRxRateKbps; 1217 1303 } 1218 1304 1219 - u32_t zfUpdateRxRate(zdev_t* dev) 1305 + u32_t zfUpdateRxRate(zdev_t *dev) 1220 1306 { 1221 - u8_t mcs, bandwidth; 1222 - u32_t rxRateKbps = 130000; 1223 - zmw_get_wlan_dev(dev); 1307 + u8_t mcs, bandwidth; 1308 + u32_t rxRateKbps = 130000; 1309 + zmw_get_wlan_dev(dev); 1224 1310 1225 - switch (wd->modulationType) 1226 - { 1227 - case 0x0: //CCK mode 1228 - switch (wd->rateField) 1229 - { 1230 - case 0x0a: rxRateKbps = 1000; 1231 - break; 1232 - case 0x14: rxRateKbps = 2000; 1311 + switch (wd->modulationType) { 1312 + /* CCK mode */ 1313 + case 0x0: 1314 + switch (wd->rateField) { 1315 + case 0x0a: 1316 + rxRateKbps = 1000; 1317 + break; 1318 + case 0x14: 1319 + rxRateKbps = 2000; 1233 1320 1234 - case 0x37: rxRateKbps = 5500; 1235 - break; 1236 - case 0x6e: rxRateKbps = 11000; 1237 - break; 1238 - default: 1239 - break; 1240 - } 1241 - break; 1242 - case 0x1: //Legacy-OFDM mode 1243 - if (wd->rateField <= 15) 1244 - { 1245 - rxRateKbps = zcIndextoRateBG[wd->rateField]; 1246 - } 1247 - break; 1248 - case 0x2: //HT-OFDM mode 1249 - mcs = wd->rateField & 0x7F; 1250 - bandwidth = wd->rateField & 0x80; 1251 - if (mcs <= 15) 1252 - { 1253 - if (bandwidth != 0) 1254 - { 1255 - if((wd->rxInfo & 0x80) != 0) 1256 - { 1257 - /* Short GI 40 MHz MIMO Rate */ 1258 - rxRateKbps = zcIndextoRateN40S[mcs]; 1259 - } 1260 - else 1261 - { 1262 - /* Long GI 40 MHz MIMO Rate */ 1263 - rxRateKbps = zcIndextoRateN40L[mcs]; 1264 - } 1265 - } 1266 - else 1267 - { 1268 - if((wd->rxInfo & 0x80) != 0) 1269 - { 1270 - /* Short GI 20 MHz MIMO Rate */ 1271 - rxRateKbps = zcIndextoRateN20S[mcs]; 1272 - } 1273 - else 1274 - { 1275 - /* Long GI 20 MHz MIMO Rate */ 1276 - rxRateKbps = zcIndextoRateN20L[mcs]; 1277 - } 1278 - } 1279 - } 1280 - break; 1281 - default: 1282 - break; 1283 - } 1284 - //zm_msg1_mm(ZM_LV_0, "wd->CurrentRxRateKbps=", wd->CurrentRxRateKbps); 1321 + case 0x37: 1322 + rxRateKbps = 5500; 1323 + break; 1324 + case 0x6e: 1325 + rxRateKbps = 11000; 1326 + break; 1327 + default: 1328 + break; 1329 + } 1330 + break; 1331 + /* Legacy-OFDM mode */ 1332 + case 0x1: 1333 + if (wd->rateField <= 15) 1334 + rxRateKbps = zcIndextoRateBG[wd->rateField]; 1335 + break; 1336 + /* HT-OFDM mode */ 1337 + case 0x2: 1338 + mcs = wd->rateField & 0x7F; 1339 + bandwidth = wd->rateField & 0x80; 1340 + if (mcs <= 15) { 1341 + if (bandwidth != 0) { 1342 + if ((wd->rxInfo & 0x80) != 0) { 1343 + /* Short GI 40 MHz MIMO Rate */ 1344 + rxRateKbps = zcIndextoRateN40S[mcs]; 1345 + } else { 1346 + /* Long GI 40 MHz MIMO Rate */ 1347 + rxRateKbps = zcIndextoRateN40L[mcs]; 1348 + } 1349 + } else { 1350 + if ((wd->rxInfo & 0x80) != 0) { 1351 + /* Short GI 20 MHz MIMO Rate */ 1352 + rxRateKbps = zcIndextoRateN20S[mcs]; 1353 + } else { 1354 + /* Long GI 20 MHz MIMO Rate */ 1355 + rxRateKbps = zcIndextoRateN20L[mcs]; 1356 + } 1357 + } 1358 + } 1359 + break; 1360 + default: 1361 + break; 1362 + } 1363 + /* zm_msg1_mm(ZM_LV_0, "wd->CurrentRxRateKbps=", 1364 + wd->CurrentRxRateKbps); 1365 + */ 1285 1366 1286 - // ToDo: use bandwith field to define 40MB 1287 - return rxRateKbps; 1367 + /* ToDo: use bandwith field to define 40MB */ 1368 + return rxRateKbps; 1288 1369 } 1289 1370 1290 1371 /* Get WLAN stastics */ 1291 - u16_t zfiWlanGetStatistics(zdev_t* dev) 1372 + u16_t zfiWlanGetStatistics(zdev_t *dev) 1292 1373 { 1293 - /* Return link statistics */ 1294 - return 0; 1374 + /* Return link statistics */ 1375 + return 0; 1295 1376 } 1296 1377 1297 - u16_t zfiWlanReset(zdev_t* dev) 1378 + u16_t zfiWlanReset(zdev_t *dev) 1298 1379 { 1299 - zmw_get_wlan_dev(dev); 1380 + zmw_get_wlan_dev(dev); 1300 1381 1301 - wd->state = ZM_WLAN_STATE_DISABLED; 1382 + wd->state = ZM_WLAN_STATE_DISABLED; 1302 1383 1303 - return zfWlanReset(dev); 1384 + return zfWlanReset(dev); 1304 1385 } 1305 1386 1306 1387 /* Reset WLAN */ 1307 - u16_t zfWlanReset(zdev_t* dev) 1388 + u16_t zfWlanReset(zdev_t *dev) 1308 1389 { 1309 - u8_t isConnected; 1310 - zmw_get_wlan_dev(dev); 1390 + u8_t isConnected; 1391 + zmw_get_wlan_dev(dev); 1311 1392 1312 - zmw_declare_for_critical_section(); 1393 + zmw_declare_for_critical_section(); 1313 1394 1314 - zm_debug_msg0("zfWlanReset"); 1395 + zm_debug_msg0("zfWlanReset"); 1315 1396 1316 - isConnected = zfStaIsConnected(dev); 1397 + isConnected = zfStaIsConnected(dev); 1317 1398 1318 - //if ( wd->wlanMode != ZM_MODE_AP ) 1319 - { 1320 - if ( (wd->wlanMode == ZM_MODE_INFRASTRUCTURE)&& 1321 - (wd->sta.currentAuthMode != ZM_AUTH_MODE_WPA2) ) 1322 - { 1323 - /* send deauthentication frame */ 1324 - if (isConnected) 1325 - { 1326 - //zfiWlanDeauth(dev, NULL, 0); 1327 - zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, wd->sta.bssid, 3, 0, 0); 1328 - //zmw_debug_msg0("send a Deauth frame!"); 1329 - } 1330 - } 1331 - } 1399 + /* if ( wd->wlanMode != ZM_MODE_AP ) */ 1400 + { 1401 + if ((wd->wlanMode == ZM_MODE_INFRASTRUCTURE) && 1402 + (wd->sta.currentAuthMode != ZM_AUTH_MODE_WPA2)) { 1403 + /* send deauthentication frame */ 1404 + if (isConnected) { 1405 + /* zfiWlanDeauth(dev, NULL, 0); */ 1406 + zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, 1407 + wd->sta.bssid, 3, 0, 0); 1408 + /* zmw_debug_msg0("send a Deauth frame!"); */ 1409 + } 1410 + } 1411 + } 1332 1412 1333 - zfChangeAdapterState(dev, ZM_STA_STATE_DISCONNECT); 1334 - zfHpResetKeyCache(dev); 1413 + zfChangeAdapterState(dev, ZM_STA_STATE_DISCONNECT); 1414 + zfHpResetKeyCache(dev); 1335 1415 1336 - if (isConnected) 1337 - { 1338 - //zfiWlanDisable(dev); 1339 - if (wd->zfcbConnectNotify != NULL) 1340 - { 1341 - wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_CONNECTION_RESET, wd->sta.bssid); 1342 - } 1343 - } 1344 - else 1345 - { 1346 - if (wd->zfcbConnectNotify != NULL) 1347 - { 1348 - wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_RESET, wd->sta.bssid); 1349 - } 1350 - } 1416 + if (isConnected) { 1417 + /* zfiWlanDisable(dev); */ 1418 + if (wd->zfcbConnectNotify != NULL) 1419 + wd->zfcbConnectNotify(dev, 1420 + ZM_STATUS_MEDIA_CONNECTION_RESET, wd->sta.bssid); 1421 + } else { 1422 + if (wd->zfcbConnectNotify != NULL) 1423 + wd->zfcbConnectNotify(dev, ZM_STATUS_MEDIA_RESET, 1424 + wd->sta.bssid); 1425 + } 1351 1426 1352 - /* stop beacon */ 1353 - zfHpDisableBeacon(dev); 1427 + /* stop beacon */ 1428 + zfHpDisableBeacon(dev); 1354 1429 1355 - /* Free buffer in defragment list*/ 1356 - zfAgingDefragList(dev, 1); 1430 + /* Free buffer in defragment list*/ 1431 + zfAgingDefragList(dev, 1); 1357 1432 1358 - /* Flush VTxQ and MmQ */ 1359 - zfFlushVtxq(dev); 1433 + /* Flush VTxQ and MmQ */ 1434 + zfFlushVtxq(dev); 1360 1435 1361 - #ifdef ZM_ENABLE_AGGREGATION 1362 - /* add by honda */ 1363 - zfAggRxFreeBuf(dev, 0); //1 for release structure memory 1364 - /* end of add by honda */ 1365 - #endif 1366 - 1367 - zfStaRefreshBlockList(dev, 1); 1368 - 1369 - zmw_enter_critical_section(dev); 1370 - 1371 - zfTimerCancel(dev, ZM_EVENT_IBSS_MONITOR); 1372 - zfTimerCancel(dev, ZM_EVENT_CM_BLOCK_TIMER); 1373 - zfTimerCancel(dev, ZM_EVENT_CM_DISCONNECT); 1374 - 1375 - wd->sta.connectState = ZM_STA_CONN_STATE_NONE; 1376 - wd->sta.connectByReasso = FALSE; 1377 - wd->sta.cmDisallowSsidLength = 0; 1378 - wd->sta.bAutoReconnect = 0; 1379 - wd->sta.InternalScanReq = 0; 1380 - wd->sta.encryMode = ZM_NO_WEP; 1381 - wd->sta.wepStatus = ZM_ENCRYPTION_WEP_DISABLED; 1382 - wd->sta.wpaState = ZM_STA_WPA_STATE_INIT; 1383 - wd->sta.cmMicFailureCount = 0; 1384 - wd->sta.ibssBssIsCreator = 0; 1385 - #ifdef ZM_ENABLE_IBSS_WPA2PSK 1386 - wd->sta.ibssWpa2Psk = 0; 1436 + #ifdef ZM_ENABLE_AGGREGATION 1437 + /* add by honda */ 1438 + zfAggRxFreeBuf(dev, 0); /* 1 for release structure memory */ 1439 + /* end of add by honda */ 1387 1440 #endif 1388 - /* reset connect timeout counter */ 1389 - wd->sta.connectTimeoutCount = 0; 1390 1441 1391 - /* reset leap enable variable */ 1392 - wd->sta.leapEnabled = 0; 1442 + zfStaRefreshBlockList(dev, 1); 1393 1443 1394 - /* Reset the RIFS Status / RIFS-like frame count / RIFS count */ 1395 - if( wd->sta.rifsState == ZM_RIFS_STATE_DETECTED ) 1396 - zfHpDisableRifs(dev); 1397 - wd->sta.rifsState = ZM_RIFS_STATE_DETECTING; 1398 - wd->sta.rifsLikeFrameCnt = 0; 1399 - wd->sta.rifsCount = 0; 1444 + zmw_enter_critical_section(dev); 1400 1445 1401 - wd->sta.osRxFilter = 0; 1402 - wd->sta.bSafeMode = 0; 1446 + zfTimerCancel(dev, ZM_EVENT_IBSS_MONITOR); 1447 + zfTimerCancel(dev, ZM_EVENT_CM_BLOCK_TIMER); 1448 + zfTimerCancel(dev, ZM_EVENT_CM_DISCONNECT); 1403 1449 1404 - // Clear the information for the peer stations of IBSS or AP of Station mode 1405 - zfZeroMemory((u8_t*)wd->sta.oppositeInfo, sizeof(struct zsOppositeInfo) * ZM_MAX_OPPOSITE_COUNT); 1450 + wd->sta.connectState = ZM_STA_CONN_STATE_NONE; 1451 + wd->sta.connectByReasso = FALSE; 1452 + wd->sta.cmDisallowSsidLength = 0; 1453 + wd->sta.bAutoReconnect = 0; 1454 + wd->sta.InternalScanReq = 0; 1455 + wd->sta.encryMode = ZM_NO_WEP; 1456 + wd->sta.wepStatus = ZM_ENCRYPTION_WEP_DISABLED; 1457 + wd->sta.wpaState = ZM_STA_WPA_STATE_INIT; 1458 + wd->sta.cmMicFailureCount = 0; 1459 + wd->sta.ibssBssIsCreator = 0; 1460 + #ifdef ZM_ENABLE_IBSS_WPA2PSK 1461 + wd->sta.ibssWpa2Psk = 0; 1462 + #endif 1463 + /* reset connect timeout counter */ 1464 + wd->sta.connectTimeoutCount = 0; 1406 1465 1407 - zmw_leave_critical_section(dev); 1466 + /* reset leap enable variable */ 1467 + wd->sta.leapEnabled = 0; 1408 1468 1409 - zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_INTERNAL); 1410 - zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_EXTERNAL); 1469 + /* Reset the RIFS Status / RIFS-like frame count / RIFS count */ 1470 + if (wd->sta.rifsState == ZM_RIFS_STATE_DETECTED) 1471 + zfHpDisableRifs(dev); 1472 + wd->sta.rifsState = ZM_RIFS_STATE_DETECTING; 1473 + wd->sta.rifsLikeFrameCnt = 0; 1474 + wd->sta.rifsCount = 0; 1411 1475 1412 - /* Turn off Software WEP/TKIP */ 1413 - if (wd->sta.SWEncryptEnable != 0) 1414 - { 1415 - zm_debug_msg0("Disable software encryption"); 1416 - zfStaDisableSWEncryption(dev); 1417 - } 1476 + wd->sta.osRxFilter = 0; 1477 + wd->sta.bSafeMode = 0; 1418 1478 1419 - /* Improve WEP/TKIP performace with HT AP, detail information please look bug#32495 */ 1420 - //zfHpSetTTSIFSTime(dev, 0x8); 1479 + /* Clear the information for the peer 1480 + stations of IBSS or AP of Station mode 1481 + */ 1482 + zfZeroMemory((u8_t *)wd->sta.oppositeInfo, 1483 + sizeof(struct zsOppositeInfo) * ZM_MAX_OPPOSITE_COUNT); 1421 1484 1422 - /* Keep Pseudo mode */ 1423 - if ( wd->wlanMode != ZM_MODE_PSEUDO ) 1424 - { 1425 - wd->wlanMode = ZM_MODE_INFRASTRUCTURE; 1426 - } 1427 - return 0; 1485 + zmw_leave_critical_section(dev); 1486 + 1487 + zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_INTERNAL); 1488 + zfScanMgrScanStop(dev, ZM_SCAN_MGR_SCAN_EXTERNAL); 1489 + 1490 + /* Turn off Software WEP/TKIP */ 1491 + if (wd->sta.SWEncryptEnable != 0) { 1492 + zm_debug_msg0("Disable software encryption"); 1493 + zfStaDisableSWEncryption(dev); 1494 + } 1495 + 1496 + /* Improve WEP/TKIP performace with HT AP, 1497 + detail information please look bug#32495 1498 + */ 1499 + /* zfHpSetTTSIFSTime(dev, 0x8); */ 1500 + 1501 + /* Keep Pseudo mode */ 1502 + if (wd->wlanMode != ZM_MODE_PSEUDO) 1503 + wd->wlanMode = ZM_MODE_INFRASTRUCTURE; 1504 + 1505 + return 0; 1428 1506 } 1429 1507 1430 1508 /* Deauthenticate a STA */ 1431 - u16_t zfiWlanDeauth(zdev_t* dev, u16_t* macAddr, u16_t reason) 1509 + u16_t zfiWlanDeauth(zdev_t *dev, u16_t *macAddr, u16_t reason) 1432 1510 { 1433 - zmw_get_wlan_dev(dev); 1511 + zmw_get_wlan_dev(dev); 1434 1512 1435 - if ( wd->wlanMode == ZM_MODE_AP ) 1436 - { 1437 - //u16_t id; 1513 + if (wd->wlanMode == ZM_MODE_AP) { 1514 + /* u16_t id; */ 1438 1515 1439 - /* 1440 - * we will reset all key in zfHpResetKeyCache() when call 1441 - * zfiWlanDisable(), if we want to reset PairwiseKey for each sta, 1442 - * need to use a nullAddr to let keyindex not match. 1443 - * otherwise hardware will still find PairwiseKey when AP change 1444 - * encryption mode from WPA to WEP 1445 - */ 1516 + /* 1517 + * we will reset all key in zfHpResetKeyCache() when call 1518 + * zfiWlanDisable(), if we want to reset PairwiseKey for each 1519 + * sta, need to use a nullAddr to let keyindex not match. 1520 + * otherwise hardware will still find PairwiseKey when AP change 1521 + * encryption mode from WPA to WEP 1522 + */ 1446 1523 1447 - /* 1448 - if ((id = zfApFindSta(dev, macAddr)) != 0xffff) 1449 - { 1450 - u32_t key[8]; 1451 - u16_t nullAddr[3] = { 0x0, 0x0, 0x0 }; 1524 + /* 1525 + if ((id = zfApFindSta(dev, macAddr)) != 0xffff) 1526 + { 1527 + u32_t key[8]; 1528 + u16_t nullAddr[3] = { 0x0, 0x0, 0x0 }; 1452 1529 1453 - if (wd->ap.staTable[i].encryMode != ZM_NO_WEP) 1454 - { 1455 - zfHpSetApPairwiseKey(dev, nullAddr, 1456 - ZM_NO_WEP, &key[0], &key[4], i+1); 1457 - } 1458 - //zfHpSetApPairwiseKey(dev, (u16_t *)macAddr, 1459 - // ZM_NO_WEP, &key[0], &key[4], id+1); 1460 - wd->ap.staTable[id].encryMode = ZM_NO_WEP; 1461 - wd->ap.staTable[id].keyIdx = 0xff; 1462 - } 1463 - */ 1530 + if (wd->ap.staTable[i].encryMode != ZM_NO_WEP) 1531 + { 1532 + zfHpSetApPairwiseKey(dev, nullAddr, 1533 + ZM_NO_WEP, &key[0], &key[4], i+1); 1534 + } 1535 + //zfHpSetApPairwiseKey(dev, (u16_t *)macAddr, 1536 + // ZM_NO_WEP, &key[0], &key[4], id+1); 1537 + wd->ap.staTable[id].encryMode = ZM_NO_WEP; 1538 + wd->ap.staTable[id].keyIdx = 0xff; 1539 + } 1540 + */ 1464 1541 1465 - zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, macAddr, reason, 0, 0); 1466 - } 1467 - else 1468 - { 1469 - zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, wd->sta.bssid, 3, 0, 0); 1470 - } 1542 + zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, macAddr, 1543 + reason, 0, 0); 1544 + } else 1545 + zfSendMmFrame(dev, ZM_WLAN_FRAME_TYPE_DEAUTH, 1546 + wd->sta.bssid, 3, 0, 0); 1471 1547 1472 - /* Issue DEAUTH command to FW */ 1473 - return 0; 1548 + /* Issue DEAUTH command to FW */ 1549 + return 0; 1474 1550 } 1475 1551 1476 1552 1477 1553 /* XP packet filter feature : */ 1478 - /* 1=>enable: All multicast address packets, not just the ones enumerated in the multicast address list. */ 1554 + /* 1=>enable: All multicast address packets, not just the ones */ 1555 + /* enumerated in the multicast address list. */ 1479 1556 /* 0=>disable */ 1480 - void zfiWlanSetAllMulticast(zdev_t* dev, u32_t setting) 1557 + void zfiWlanSetAllMulticast(zdev_t *dev, u32_t setting) 1481 1558 { 1482 - zmw_get_wlan_dev(dev); 1483 - zm_msg1_mm(ZM_LV_0, "sta.bAllMulticast = ", setting); 1484 - wd->sta.bAllMulticast = (u8_t)setting; 1559 + zmw_get_wlan_dev(dev); 1560 + zm_msg1_mm(ZM_LV_0, "sta.bAllMulticast = ", setting); 1561 + wd->sta.bAllMulticast = (u8_t)setting; 1485 1562 } 1486 1563 1487 1564 1488 1565 /* HT configure API */ 1489 - void zfiWlanSetHTCtrl(zdev_t* dev, u32_t *setting, u32_t forceTxTPC) 1566 + void zfiWlanSetHTCtrl(zdev_t *dev, u32_t *setting, u32_t forceTxTPC) 1490 1567 { 1491 - zmw_get_wlan_dev(dev); 1568 + zmw_get_wlan_dev(dev); 1492 1569 1493 - wd->preambleType = (u8_t)setting[0]; 1494 - wd->sta.preambleTypeHT = (u8_t)setting[1]; 1495 - wd->sta.htCtrlBandwidth = (u8_t)setting[2]; 1496 - wd->sta.htCtrlSTBC = (u8_t)setting[3]; 1497 - wd->sta.htCtrlSG = (u8_t)setting[4]; 1498 - wd->sta.defaultTA = (u8_t)setting[5]; 1499 - wd->enableAggregation = (u8_t)setting[6]; 1500 - wd->enableWDS = (u8_t)setting[7]; 1570 + wd->preambleType = (u8_t)setting[0]; 1571 + wd->sta.preambleTypeHT = (u8_t)setting[1]; 1572 + wd->sta.htCtrlBandwidth = (u8_t)setting[2]; 1573 + wd->sta.htCtrlSTBC = (u8_t)setting[3]; 1574 + wd->sta.htCtrlSG = (u8_t)setting[4]; 1575 + wd->sta.defaultTA = (u8_t)setting[5]; 1576 + wd->enableAggregation = (u8_t)setting[6]; 1577 + wd->enableWDS = (u8_t)setting[7]; 1501 1578 1502 - wd->forceTxTPC = forceTxTPC; 1579 + wd->forceTxTPC = forceTxTPC; 1503 1580 } 1504 1581 1505 1582 /* FB50 in OS XP, RD private test code */ 1506 - void zfiWlanQueryHTCtrl(zdev_t* dev, u32_t *setting, u32_t *forceTxTPC) 1583 + void zfiWlanQueryHTCtrl(zdev_t *dev, u32_t *setting, u32_t *forceTxTPC) 1507 1584 { 1508 - zmw_get_wlan_dev(dev); 1585 + zmw_get_wlan_dev(dev); 1509 1586 1510 - setting[0] = wd->preambleType; 1511 - setting[1] = wd->sta.preambleTypeHT; 1512 - setting[2] = wd->sta.htCtrlBandwidth; 1513 - setting[3] = wd->sta.htCtrlSTBC; 1514 - setting[4] = wd->sta.htCtrlSG; 1515 - setting[5] = wd->sta.defaultTA; 1516 - setting[6] = wd->enableAggregation; 1517 - setting[7] = wd->enableWDS; 1587 + setting[0] = wd->preambleType; 1588 + setting[1] = wd->sta.preambleTypeHT; 1589 + setting[2] = wd->sta.htCtrlBandwidth; 1590 + setting[3] = wd->sta.htCtrlSTBC; 1591 + setting[4] = wd->sta.htCtrlSG; 1592 + setting[5] = wd->sta.defaultTA; 1593 + setting[6] = wd->enableAggregation; 1594 + setting[7] = wd->enableWDS; 1518 1595 1519 - *forceTxTPC = wd->forceTxTPC; 1596 + *forceTxTPC = wd->forceTxTPC; 1520 1597 } 1521 1598 1522 - void zfiWlanDbg(zdev_t* dev, u8_t setting) 1599 + void zfiWlanDbg(zdev_t *dev, u8_t setting) 1523 1600 { 1524 - zmw_get_wlan_dev(dev); 1601 + zmw_get_wlan_dev(dev); 1525 1602 1526 - wd->enableHALDbgInfo = setting; 1603 + wd->enableHALDbgInfo = setting; 1527 1604 } 1528 1605 1529 1606 /* FB50 in OS XP, RD private test code */ 1530 - void zfiWlanSetRxPacketDump(zdev_t* dev, u32_t setting) 1607 + void zfiWlanSetRxPacketDump(zdev_t *dev, u32_t setting) 1531 1608 { 1532 - zmw_get_wlan_dev(dev); 1533 - if (setting) 1534 - { 1535 - wd->rxPacketDump = 1; /* enable */ 1536 - } 1537 - else 1538 - { 1539 - wd->rxPacketDump = 0; /* disable */ 1540 - } 1609 + zmw_get_wlan_dev(dev); 1610 + if (setting) 1611 + wd->rxPacketDump = 1; /* enable */ 1612 + else 1613 + wd->rxPacketDump = 0; /* disable */ 1541 1614 } 1542 1615 1543 1616 1544 1617 /* FB50 in OS XP, RD private test code */ 1545 1618 /* Tally */ 1546 - void zfiWlanResetTally(zdev_t* dev) 1619 + void zfiWlanResetTally(zdev_t *dev) 1547 1620 { 1548 - zmw_get_wlan_dev(dev); 1621 + zmw_get_wlan_dev(dev); 1549 1622 1550 - zmw_declare_for_critical_section(); 1623 + zmw_declare_for_critical_section(); 1551 1624 1552 - zmw_enter_critical_section(dev); 1625 + zmw_enter_critical_section(dev); 1553 1626 1554 - wd->commTally.txUnicastFrm = 0; //txUnicastFrames 1555 - wd->commTally.txMulticastFrm = 0; //txMulticastFrames 1556 - wd->commTally.txUnicastOctets = 0; //txUniOctets byte size 1557 - wd->commTally.txMulticastOctets = 0; //txMultiOctets byte size 1558 - wd->commTally.txFrmUpperNDIS = 0; 1559 - wd->commTally.txFrmDrvMgt = 0; 1560 - wd->commTally.RetryFailCnt = 0; 1561 - wd->commTally.Hw_TotalTxFrm = 0; //Hardware total Tx Frame 1562 - wd->commTally.Hw_RetryCnt = 0; //txMultipleRetriesFrames 1563 - wd->commTally.Hw_UnderrunCnt = 0;// 1564 - wd->commTally.DriverRxFrmCnt = 0;// 1565 - wd->commTally.rxUnicastFrm = 0; //rxUnicastFrames 1566 - wd->commTally.rxMulticastFrm = 0; //rxMulticastFrames 1567 - wd->commTally.NotifyNDISRxFrmCnt = 0;// 1568 - wd->commTally.rxUnicastOctets = 0; //rxUniOctets byte size 1569 - wd->commTally.rxMulticastOctets = 0; //rxMultiOctets byte size 1570 - wd->commTally.DriverDiscardedFrm = 0;// Discard by ValidateFrame 1571 - wd->commTally.LessThanDataMinLen = 0;// 1572 - wd->commTally.GreaterThanMaxLen = 0;// 1573 - wd->commTally.DriverDiscardedFrmCauseByMulticastList = 0; 1574 - wd->commTally.DriverDiscardedFrmCauseByFrmCtrl = 0; 1575 - wd->commTally.rxNeedFrgFrm = 0; // need more frg frm 1576 - wd->commTally.DriverRxMgtFrmCnt = 0; 1577 - wd->commTally.rxBroadcastFrm = 0; //Receive broadcast frame count 1578 - wd->commTally.rxBroadcastOctets = 0; //Receive broadcast frame byte size 1579 - wd->commTally.Hw_TotalRxFrm = 0;// 1580 - wd->commTally.Hw_CRC16Cnt = 0; //rxPLCPCRCErrCnt 1581 - wd->commTally.Hw_CRC32Cnt = 0; //rxCRC32ErrCnt 1582 - wd->commTally.Hw_DecrypErr_UNI = 0;// 1583 - wd->commTally.Hw_DecrypErr_Mul = 0;// 1584 - wd->commTally.Hw_RxFIFOOverrun = 0;// 1585 - wd->commTally.Hw_RxTimeOut = 0; 1586 - wd->commTally.LossAP = 0;// 1627 + wd->commTally.txUnicastFrm = 0; /* txUnicastFrames */ 1628 + wd->commTally.txMulticastFrm = 0; /* txMulticastFrames */ 1629 + wd->commTally.txUnicastOctets = 0; /* txUniOctets byte size */ 1630 + wd->commTally.txMulticastOctets = 0; /* txMultiOctets byte size */ 1631 + wd->commTally.txFrmUpperNDIS = 0; 1632 + wd->commTally.txFrmDrvMgt = 0; 1633 + wd->commTally.RetryFailCnt = 0; 1634 + wd->commTally.Hw_TotalTxFrm = 0; /* Hardware total Tx Frame */ 1635 + wd->commTally.Hw_RetryCnt = 0; /* txMultipleRetriesFrames */ 1636 + wd->commTally.Hw_UnderrunCnt = 0; 1637 + wd->commTally.DriverRxFrmCnt = 0; 1638 + wd->commTally.rxUnicastFrm = 0; /* rxUnicastFrames */ 1639 + wd->commTally.rxMulticastFrm = 0; /* rxMulticastFrames */ 1640 + wd->commTally.NotifyNDISRxFrmCnt = 0; 1641 + wd->commTally.rxUnicastOctets = 0; /* rxUniOctets byte size */ 1642 + wd->commTally.rxMulticastOctets = 0; /* rxMultiOctets byte size */ 1643 + wd->commTally.DriverDiscardedFrm = 0; /* Discard by ValidateFrame */ 1644 + wd->commTally.LessThanDataMinLen = 0; 1645 + wd->commTally.GreaterThanMaxLen = 0; 1646 + wd->commTally.DriverDiscardedFrmCauseByMulticastList = 0; 1647 + wd->commTally.DriverDiscardedFrmCauseByFrmCtrl = 0; 1648 + wd->commTally.rxNeedFrgFrm = 0; /* need more frg frm */ 1649 + wd->commTally.DriverRxMgtFrmCnt = 0; 1650 + wd->commTally.rxBroadcastFrm = 0;/* Receive broadcast frame count */ 1651 + wd->commTally.rxBroadcastOctets = 0;/*Receive broadcast framebyte size*/ 1652 + wd->commTally.Hw_TotalRxFrm = 0; 1653 + wd->commTally.Hw_CRC16Cnt = 0; /* rxPLCPCRCErrCnt */ 1654 + wd->commTally.Hw_CRC32Cnt = 0; /* rxCRC32ErrCnt */ 1655 + wd->commTally.Hw_DecrypErr_UNI = 0; 1656 + wd->commTally.Hw_DecrypErr_Mul = 0; 1657 + wd->commTally.Hw_RxFIFOOverrun = 0; 1658 + wd->commTally.Hw_RxTimeOut = 0; 1659 + wd->commTally.LossAP = 0; 1587 1660 1588 - wd->commTally.Tx_MPDU = 0; 1589 - wd->commTally.BA_Fail = 0; 1590 - wd->commTally.Hw_Tx_AMPDU = 0; 1591 - wd->commTally.Hw_Tx_MPDU = 0; 1661 + wd->commTally.Tx_MPDU = 0; 1662 + wd->commTally.BA_Fail = 0; 1663 + wd->commTally.Hw_Tx_AMPDU = 0; 1664 + wd->commTally.Hw_Tx_MPDU = 0; 1592 1665 1593 - wd->commTally.txQosDropCount[0] = 0; 1594 - wd->commTally.txQosDropCount[1] = 0; 1595 - wd->commTally.txQosDropCount[2] = 0; 1596 - wd->commTally.txQosDropCount[3] = 0; 1597 - wd->commTally.txQosDropCount[4] = 0; 1666 + wd->commTally.txQosDropCount[0] = 0; 1667 + wd->commTally.txQosDropCount[1] = 0; 1668 + wd->commTally.txQosDropCount[2] = 0; 1669 + wd->commTally.txQosDropCount[3] = 0; 1670 + wd->commTally.txQosDropCount[4] = 0; 1598 1671 1599 - wd->commTally.Hw_RxMPDU = 0; 1600 - wd->commTally.Hw_RxDropMPDU = 0; 1601 - wd->commTally.Hw_RxDelMPDU = 0; 1672 + wd->commTally.Hw_RxMPDU = 0; 1673 + wd->commTally.Hw_RxDropMPDU = 0; 1674 + wd->commTally.Hw_RxDelMPDU = 0; 1602 1675 1603 - wd->commTally.Hw_RxPhyMiscError = 0; 1604 - wd->commTally.Hw_RxPhyXRError = 0; 1605 - wd->commTally.Hw_RxPhyOFDMError = 0; 1606 - wd->commTally.Hw_RxPhyCCKError = 0; 1607 - wd->commTally.Hw_RxPhyHTError = 0; 1608 - wd->commTally.Hw_RxPhyTotalCount = 0; 1676 + wd->commTally.Hw_RxPhyMiscError = 0; 1677 + wd->commTally.Hw_RxPhyXRError = 0; 1678 + wd->commTally.Hw_RxPhyOFDMError = 0; 1679 + wd->commTally.Hw_RxPhyCCKError = 0; 1680 + wd->commTally.Hw_RxPhyHTError = 0; 1681 + wd->commTally.Hw_RxPhyTotalCount = 0; 1609 1682 1610 - #if (defined(GCCK) && defined(OFDM)) 1611 - wd->commTally.rx11bDataFrame = 0; 1612 - wd->commTally.rxOFDMDataFrame = 0; 1683 + #if (defined(GCCK) && defined(OFDM)) 1684 + wd->commTally.rx11bDataFrame = 0; 1685 + wd->commTally.rxOFDMDataFrame = 0; 1613 1686 #endif 1614 1687 1615 - zmw_leave_critical_section(dev); 1688 + zmw_leave_critical_section(dev); 1616 1689 } 1617 1690 1618 1691 /* FB50 in OS XP, RD private test code */ 1619 - void zfiWlanQueryTally(zdev_t* dev, struct zsCommTally *tally) 1692 + void zfiWlanQueryTally(zdev_t *dev, struct zsCommTally *tally) 1620 1693 { 1621 - zmw_get_wlan_dev(dev); 1694 + zmw_get_wlan_dev(dev); 1622 1695 1623 - zmw_declare_for_critical_section(); 1696 + zmw_declare_for_critical_section(); 1624 1697 1625 - zmw_enter_critical_section(dev); 1626 - zfMemoryCopy((u8_t*)tally, (u8_t*)&wd->commTally, sizeof(struct zsCommTally)); 1627 - zmw_leave_critical_section(dev); 1628 - } 1629 - void zfiWlanQueryTrafTally(zdev_t* dev, struct zsTrafTally *tally) 1630 - { 1631 - zmw_get_wlan_dev(dev); 1632 - 1633 - zmw_declare_for_critical_section(); 1634 - 1635 - zmw_enter_critical_section(dev); 1636 - zfMemoryCopy((u8_t*)tally, (u8_t*)&wd->trafTally, sizeof(struct zsTrafTally)); 1637 - zmw_leave_critical_section(dev); 1698 + zmw_enter_critical_section(dev); 1699 + zfMemoryCopy((u8_t *)tally, (u8_t *)&wd->commTally, 1700 + sizeof(struct zsCommTally)); 1701 + zmw_leave_critical_section(dev); 1638 1702 } 1639 1703 1640 - void zfiWlanQueryMonHalRxInfo(zdev_t* dev, struct zsMonHalRxInfo *monHalRxInfo) 1704 + void zfiWlanQueryTrafTally(zdev_t *dev, struct zsTrafTally *tally) 1641 1705 { 1642 - zfHpQueryMonHalRxInfo(dev, (u8_t *)monHalRxInfo); 1706 + zmw_get_wlan_dev(dev); 1707 + 1708 + zmw_declare_for_critical_section(); 1709 + 1710 + zmw_enter_critical_section(dev); 1711 + zfMemoryCopy((u8_t *)tally, (u8_t *)&wd->trafTally, 1712 + sizeof(struct zsTrafTally)); 1713 + zmw_leave_critical_section(dev); 1714 + } 1715 + 1716 + void zfiWlanQueryMonHalRxInfo(zdev_t *dev, struct zsMonHalRxInfo *monHalRxInfo) 1717 + { 1718 + zfHpQueryMonHalRxInfo(dev, (u8_t *)monHalRxInfo); 1643 1719 } 1644 1720 1645 1721 /* parse the modeMDKEnable to DrvCore */ 1646 - void zfiDKEnable(zdev_t* dev, u32_t enable) 1722 + void zfiDKEnable(zdev_t *dev, u32_t enable) 1647 1723 { 1648 - zmw_get_wlan_dev(dev); 1724 + zmw_get_wlan_dev(dev); 1649 1725 1650 - wd->modeMDKEnable = enable; 1651 - zm_debug_msg1("modeMDKEnable = ", wd->modeMDKEnable); 1726 + wd->modeMDKEnable = enable; 1727 + zm_debug_msg1("modeMDKEnable = ", wd->modeMDKEnable); 1652 1728 } 1653 1729 1654 1730 /* airoPeek */ 1655 - u32_t zfiWlanQueryPacketTypePromiscuous(zdev_t* dev) 1731 + u32_t zfiWlanQueryPacketTypePromiscuous(zdev_t *dev) 1656 1732 { 1657 - zmw_get_wlan_dev(dev); 1733 + zmw_get_wlan_dev(dev); 1658 1734 1659 - return wd->swSniffer; 1735 + return wd->swSniffer; 1660 1736 } 1661 1737 1662 1738 /* airoPeek */ 1663 - void zfiWlanSetPacketTypePromiscuous(zdev_t* dev, u32_t setValue) 1739 + void zfiWlanSetPacketTypePromiscuous(zdev_t *dev, u32_t setValue) 1664 1740 { 1665 - zmw_get_wlan_dev(dev); 1741 + zmw_get_wlan_dev(dev); 1666 1742 1667 - wd->swSniffer = setValue; 1668 - zm_msg1_mm(ZM_LV_0, "wd->swSniffer ", wd->swSniffer); 1669 - if (setValue) 1670 - { 1671 - /* write register for sniffer mode */ 1672 - zfHpSetSnifferMode(dev, 1); 1673 - zm_msg0_mm(ZM_LV_1, "enalbe sniffer mode"); 1674 - } 1675 - else 1676 - { 1677 - zfHpSetSnifferMode(dev, 0); 1678 - zm_msg0_mm(ZM_LV_0, "disalbe sniffer mode"); 1679 - } 1743 + wd->swSniffer = setValue; 1744 + zm_msg1_mm(ZM_LV_0, "wd->swSniffer ", wd->swSniffer); 1745 + if (setValue) { 1746 + /* write register for sniffer mode */ 1747 + zfHpSetSnifferMode(dev, 1); 1748 + zm_msg0_mm(ZM_LV_1, "enalbe sniffer mode"); 1749 + } else { 1750 + zfHpSetSnifferMode(dev, 0); 1751 + zm_msg0_mm(ZM_LV_0, "disalbe sniffer mode"); 1752 + } 1680 1753 } 1681 1754 1682 - void zfiWlanSetXLinkMode(zdev_t* dev, u32_t setValue) 1755 + void zfiWlanSetXLinkMode(zdev_t *dev, u32_t setValue) 1683 1756 { 1684 - zmw_get_wlan_dev(dev); 1757 + zmw_get_wlan_dev(dev); 1685 1758 1686 - wd->XLinkMode = setValue; 1687 - if (setValue) 1688 - { 1689 - /* write register for sniffer mode */ 1690 - zfHpSetSnifferMode(dev, 1); 1691 - } 1692 - else 1693 - { 1694 - zfHpSetSnifferMode(dev, 0); 1695 - } 1759 + wd->XLinkMode = setValue; 1760 + if (setValue) { 1761 + /* write register for sniffer mode */ 1762 + zfHpSetSnifferMode(dev, 1); 1763 + } else 1764 + zfHpSetSnifferMode(dev, 0); 1696 1765 } 1697 1766 1698 - extern void zfStaChannelManagement(zdev_t* dev, u8_t scan); 1699 - void zfiSetChannelManagement(zdev_t* dev, u32_t setting) 1767 + extern void zfStaChannelManagement(zdev_t *dev, u8_t scan); 1768 + 1769 + void zfiSetChannelManagement(zdev_t *dev, u32_t setting) 1700 1770 { 1701 - zmw_get_wlan_dev(dev); 1771 + zmw_get_wlan_dev(dev); 1702 1772 1703 - switch (setting) 1704 - { 1705 - case 1: 1706 - wd->sta.EnableHT = 1; 1707 - wd->BandWidth40 = 1; 1708 - wd->ExtOffset = 1; 1709 - break; 1710 - case 3: 1711 - wd->sta.EnableHT = 1; 1712 - wd->BandWidth40 = 1; 1713 - wd->ExtOffset = 3; 1714 - break; 1715 - case 0: 1716 - wd->sta.EnableHT = 1; 1717 - wd->BandWidth40 = 0; 1718 - wd->ExtOffset = 0; 1719 - break; 1720 - default: 1721 - wd->BandWidth40 = 0; 1722 - wd->ExtOffset = 0; 1723 - break; 1773 + switch (setting) { 1774 + case 1: 1775 + wd->sta.EnableHT = 1; 1776 + wd->BandWidth40 = 1; 1777 + wd->ExtOffset = 1; 1778 + break; 1779 + case 3: 1780 + wd->sta.EnableHT = 1; 1781 + wd->BandWidth40 = 1; 1782 + wd->ExtOffset = 3; 1783 + break; 1784 + case 0: 1785 + wd->sta.EnableHT = 1; 1786 + wd->BandWidth40 = 0; 1787 + wd->ExtOffset = 0; 1788 + break; 1789 + default: 1790 + wd->BandWidth40 = 0; 1791 + wd->ExtOffset = 0; 1792 + break; 1793 + } 1724 1794 1725 - } 1726 - zfCoreSetFrequencyEx(dev, wd->frequency, wd->BandWidth40, 1727 - wd->ExtOffset, NULL); 1795 + zfCoreSetFrequencyEx(dev, wd->frequency, wd->BandWidth40, 1796 + wd->ExtOffset, NULL); 1728 1797 } 1729 1798 1730 - void zfiSetRifs(zdev_t* dev, u16_t setting) 1799 + void zfiSetRifs(zdev_t *dev, u16_t setting) 1731 1800 { 1732 - zmw_get_wlan_dev(dev); 1801 + zmw_get_wlan_dev(dev); 1733 1802 1734 - wd->sta.ie.HtInfo.ChannelInfo |= ExtHtCap_RIFSMode; 1735 - wd->sta.EnableHT = 1; 1736 - switch (setting) 1737 - { 1738 - case 0: 1739 - wd->sta.HT2040 = 0; 1740 - // zfHpSetRifs(dev, 1, 0, (wd->sta.currentFrequency < 3000)? 1:0); 1741 - break; 1742 - case 1: 1743 - wd->sta.HT2040 = 1; 1744 - // zfHpSetRifs(dev, 1, 1, (wd->sta.currentFrequency < 3000)? 1:0); 1745 - break; 1746 - default: 1747 - wd->sta.HT2040 = 0; 1748 - // zfHpSetRifs(dev, 1, 0, (wd->sta.currentFrequency < 3000)? 1:0); 1749 - break; 1750 - } 1803 + wd->sta.ie.HtInfo.ChannelInfo |= ExtHtCap_RIFSMode; 1804 + wd->sta.EnableHT = 1; 1805 + 1806 + switch (setting) { 1807 + case 0: 1808 + wd->sta.HT2040 = 0; 1809 + /* zfHpSetRifs(dev, 1, 0, 1810 + * (wd->sta.currentFrequency < 3000)? 1:0); 1811 + */ 1812 + break; 1813 + case 1: 1814 + wd->sta.HT2040 = 1; 1815 + /* zfHpSetRifs(dev, 1, 1, 1816 + * (wd->sta.currentFrequency < 3000)? 1:0); 1817 + */ 1818 + break; 1819 + default: 1820 + wd->sta.HT2040 = 0; 1821 + /* zfHpSetRifs(dev, 1, 0, 1822 + * (wd->sta.currentFrequency < 3000)? 1:0); 1823 + */ 1824 + break; 1825 + } 1751 1826 } 1752 1827 1753 - void zfiCheckRifs(zdev_t* dev) 1828 + void zfiCheckRifs(zdev_t *dev) 1754 1829 { 1755 - zmw_get_wlan_dev(dev); 1830 + zmw_get_wlan_dev(dev); 1756 1831 1757 - if(wd->sta.ie.HtInfo.ChannelInfo & ExtHtCap_RIFSMode) 1758 - { 1759 - // zfHpSetRifs(dev, wd->sta.EnableHT, wd->sta.HT2040, (wd->sta.currentFrequency < 3000)? 1:0); 1760 - } 1832 + if (wd->sta.ie.HtInfo.ChannelInfo & ExtHtCap_RIFSMode) 1833 + ; 1834 + /* zfHpSetRifs(dev, wd->sta.EnableHT, wd->sta.HT2040, 1835 + * (wd->sta.currentFrequency < 3000)? 1:0); 1836 + */ 1761 1837 } 1762 1838 1763 - void zfiSetReorder(zdev_t* dev, u16_t value) 1839 + void zfiSetReorder(zdev_t *dev, u16_t value) 1764 1840 { 1765 - zmw_get_wlan_dev(dev); 1841 + zmw_get_wlan_dev(dev); 1766 1842 1767 - wd->reorder = value; 1843 + wd->reorder = value; 1768 1844 } 1769 1845 1770 - void zfiSetSeqDebug(zdev_t* dev, u16_t value) 1846 + void zfiSetSeqDebug(zdev_t *dev, u16_t value) 1771 1847 { 1772 - zmw_get_wlan_dev(dev); 1848 + zmw_get_wlan_dev(dev); 1773 1849 1774 - wd->seq_debug = value; 1850 + wd->seq_debug = value; 1775 1851 }