1 /* 2 * osRgstry.c 3 * 4 * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the 16 * distribution. 17 * * Neither the name Texas Instruments nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 35 #if defined(_WINDOWS) 36 #include <ndis.h> 37 #elif defined( __LINUX__ ) 38 #include "osRgstry_parser.h" 39 #elif defined(__ARMCC__) 40 #include "osRgstry_parser.h" 41 #include "string.h" 42 #endif 43 #include "WlanDrvIf.h" 44 #include "osRgstry.h" 45 #include "paramOut.h" 46 #include "osDot11.h" 47 #include "osApi.h" 48 #include "rate.h" 49 #include "802_11Defs.h" 50 #include "TWDriver.h" 51 52 53 #define MAX_KEY_BUFFER_LEN 256 54 #define BIT_TO_BYTE_FACTOR 8 55 #define MAX_SR_PARAM_LEN 14 56 #define DRPw_MASK_CHECK 0xc0 57 58 #define N_STR(str) NDIS_STRING_CONST(str) 59 #define INIT_TBL_OFF(field) FIELD_OFFSET(TInitTable, field) 60 61 /* Reports */ 62 NDIS_STRING STR_ReportSeverityTable = NDIS_STRING_CONST( "ReportSeverityTable" ); 63 NDIS_STRING STR_ReportModuleTable = NDIS_STRING_CONST( "ReportModuleTable" ); 64 65 66 NDIS_STRING STRFilterEnabled = NDIS_STRING_CONST( "Mac_Filter_Enabled"); 67 NDIS_STRING STRnumGroupAddrs = NDIS_STRING_CONST( "numGroupAddrs" ); 68 NDIS_STRING STRGroup_addr0 = NDIS_STRING_CONST( "Group_addr0" ); 69 NDIS_STRING STRGroup_addr1 = NDIS_STRING_CONST( "Group_addr1" ); 70 NDIS_STRING STRGroup_addr2 = NDIS_STRING_CONST( "Group_addr2" ); 71 NDIS_STRING STRGroup_addr3 = NDIS_STRING_CONST( "Group_addr3" ); 72 NDIS_STRING STRGroup_addr4 = NDIS_STRING_CONST( "Group_addr4" ); 73 NDIS_STRING STRGroup_addr5 = NDIS_STRING_CONST( "Group_addr5" ); 74 NDIS_STRING STRGroup_addr6 = NDIS_STRING_CONST( "Group_addr6" ); 75 NDIS_STRING STRGroup_addr7 = NDIS_STRING_CONST( "Group_addr7" ); 76 77 /* Beacon timing */ 78 /* If Early Wakeup is Enabled, 1251 wakes-up EARLY_WAKEUP_TIME before expected Beacon reception occasion */ 79 /* If Early Wakeup is Disabled, 1251 wakes-up at the expected Beacon reception occasion. */ 80 NDIS_STRING STREarlyWakeup = NDIS_STRING_CONST( "EarlyWakeup" ); 81 82 NDIS_STRING STRArp_Ip_Addr = NDIS_STRING_CONST( "ArpIp_Addr" ); 83 NDIS_STRING STRArp_Ip_Filter_Ena = NDIS_STRING_CONST( "ArpIp_Filter_ena"); 84 85 86 NDIS_STRING STRBeaconFilterDesiredState = NDIS_STRING_CONST( "Beacon_Filter_Desired_State"); 87 NDIS_STRING STRBeaconFilterStored = NDIS_STRING_CONST( "Beacon_Filter_Stored"); 88 89 /*this is for configuring table from ini file*/ 90 NDIS_STRING STRBeaconIETableSize = NDIS_STRING_CONST( "Beacon_IE_Table_Size"); 91 NDIS_STRING STRBeaconIETable = NDIS_STRING_CONST( "Beacon_IE_Table") ; 92 NDIS_STRING STRBeaconIETableNumOfElem = NDIS_STRING_CONST( "Beacon_IE_Num_Of_Elem"); 93 94 NDIS_STRING STRCoexActivityTable = NDIS_STRING_CONST( "Coex_Activity_Table"); 95 NDIS_STRING STRCoexActivityNumOfElem = NDIS_STRING_CONST( "Coex_Activity_Num_Of_Elem"); 96 97 /* ------------------------------------------------------ */ 98 NDIS_STRING STRFirmwareDebug = NDIS_STRING_CONST( "FirmwareDebug" ); 99 NDIS_STRING STRTraceBufferSize = NDIS_STRING_CONST( "TraceBufferSize" ); 100 NDIS_STRING STRPrintTrace = NDIS_STRING_CONST( "PrintTrace" ); 101 102 NDIS_STRING STRHwACXAccessMethod = NDIS_STRING_CONST( "HwACXAccessMethod" ); 103 NDIS_STRING STRMaxSitesFragCollect = NDIS_STRING_CONST( "MaxSitesFragCollect" ); 104 105 NDIS_STRING STRTxFlashEnable = NDIS_STRING_CONST( "TxFlashEnable" ); 106 107 NDIS_STRING STRBetEnable = NDIS_STRING_CONST( "BetEnable"); 108 NDIS_STRING STRBetMaxConsecutive = NDIS_STRING_CONST( "BetMaxConsecutive"); 109 NDIS_STRING STRMaxFullBeaconInterval = NDIS_STRING_CONST( "MaxlFullBeaconReceptionInterval" ); 110 NDIS_STRING STRBetEnableThreshold = NDIS_STRING_CONST( "BetEnableThreshold"); 111 NDIS_STRING STRBetDisableThreshold = NDIS_STRING_CONST( "BetDisableThreshold"); 112 113 NDIS_STRING STRNumHostRxDescriptors = NDIS_STRING_CONST( "NumHostRxDescriptors" ); 114 NDIS_STRING STRNumHostTxDescriptors = NDIS_STRING_CONST( "NumHostTxDescriptors" ); 115 116 NDIS_STRING STRACXMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" ); 117 NDIS_STRING STRACXRxMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" ); 118 NDIS_STRING STRACXTxMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" ); 119 120 NDIS_STRING STRACXUseTxDataInterrupt = NDIS_STRING_CONST( "ACXUseTxDataInterrupt" ); 121 NDIS_STRING STRACXUseInterruptThreshold = NDIS_STRING_CONST( "ACXUseInterruptThreshold" ); 122 123 NDIS_STRING STRCalibrationChannel2_4 = NDIS_STRING_CONST( "CalibrationChannel24" ); 124 NDIS_STRING STRCalibrationChannel5_0 = NDIS_STRING_CONST( "CalibrationChannel5" ); 125 NDIS_STRING STRdot11RTSThreshold = NDIS_STRING_CONST( "dot11RTSThreshold" ); 126 NDIS_STRING STRRxDisableBroadcast = NDIS_STRING_CONST( "RxDisableBroadcast" ); 127 NDIS_STRING STRRecoveryEnable = NDIS_STRING_CONST( "RecoveryEnable" ); 128 NDIS_STRING STRdot11TxAntenna = NDIS_STRING_CONST( "dot11TxAntenna" ); 129 NDIS_STRING STRdot11RxAntenna = NDIS_STRING_CONST( "dot11RxAntenna" ); 130 131 NDIS_STRING STRTxCompleteThreshold = NDIS_STRING_CONST( "TxCompleteThreshold" ); 132 NDIS_STRING STRTxCompleteTimeout = NDIS_STRING_CONST( "TxCompleteTimeout" ); 133 NDIS_STRING STRRxInterruptThreshold = NDIS_STRING_CONST( "RxInterruptThreshold" ); 134 NDIS_STRING STRRxInterruptTimeout = NDIS_STRING_CONST( "RxInterruptTimeout" ); 135 136 NDIS_STRING STRRxAggregationPktsLimit = NDIS_STRING_CONST( "RxAggregationPktsLimit" ); 137 NDIS_STRING STRTxAggregationPktsLimit = NDIS_STRING_CONST( "TxAggregationPktsLimit" ); 138 139 NDIS_STRING STRdot11FragThreshold = NDIS_STRING_CONST( "dot11FragmentationThreshold" ); 140 NDIS_STRING STRdot11MaxTxMSDULifetime = NDIS_STRING_CONST( "dot11MaxTransmitMSDULifetime" ); 141 NDIS_STRING STRdot11MaxReceiveLifetime = NDIS_STRING_CONST( "dot11MaxReceiveLifetime" ); 142 NDIS_STRING STRdot11RateFallBackRetryLimit = NDIS_STRING_CONST( "dot11RateFallBackRetryLimit"); 143 144 NDIS_STRING STRReAuthActivePriority = NDIS_STRING_CONST( "ReAuthActivePriority" ); 145 146 NDIS_STRING STRListenInterval = NDIS_STRING_CONST( "dot11ListenInterval" ); 147 NDIS_STRING STRExternalMode = NDIS_STRING_CONST( "DriverExternalMode" ); 148 NDIS_STRING STRWiFiAdHoc = NDIS_STRING_CONST( "WiFiAdhoc" ); 149 NDIS_STRING STRWiFiWmmPS = NDIS_STRING_CONST( "WiFiWmmPS" ); 150 NDIS_STRING STRWiFiMode = NDIS_STRING_CONST( "WiFiMode" ); 151 NDIS_STRING STRStopNetStackTx = NDIS_STRING_CONST( "StopNetStackTx" ); 152 NDIS_STRING STRTxSendPaceThresh = NDIS_STRING_CONST( "TxSendPaceThresh" ); 153 NDIS_STRING STRdot11DesiredChannel = NDIS_STRING_CONST( "dot11DesiredChannel"); 154 NDIS_STRING STRdot11DesiredSSID = NDIS_STRING_CONST( "dot11DesiredSSID" ); 155 NDIS_STRING STRdot11DesiredBSSType = NDIS_STRING_CONST( "dot11DesiredBSSType" ); 156 NDIS_STRING STRdot11BasicRateMask_B = NDIS_STRING_CONST( "dot11BasicRateMaskB"); 157 NDIS_STRING STRdot11SupportedRateMask_B = NDIS_STRING_CONST( "dot11SupportedRateMaskB"); 158 NDIS_STRING STRdot11BasicRateMask_G = NDIS_STRING_CONST( "dot11BasicRateMaskG"); 159 NDIS_STRING STRdot11SupportedRateMask_G = NDIS_STRING_CONST( "dot11SupportedRateMaskG"); 160 NDIS_STRING STRdot11BasicRateMask_A = NDIS_STRING_CONST( "dot11BasicRateMaskA"); 161 NDIS_STRING STRdot11SupportedRateMask_A = NDIS_STRING_CONST( "dot11SupportedRateMaskA"); 162 NDIS_STRING STRdot11BasicRateMask_AG = NDIS_STRING_CONST( "dot11BasicRateMaskAG"); 163 NDIS_STRING STRdot11SupportedRateMask_AG = NDIS_STRING_CONST( "dot11SupportedRateMaskAG"); 164 NDIS_STRING STRdot11BasicRateMask_N = NDIS_STRING_CONST( "dot11BasicRateMaskN"); 165 NDIS_STRING STRdot11SupportedRateMask_N = NDIS_STRING_CONST( "dot11SupportedRateMaskN"); 166 167 NDIS_STRING STRRadio11_RxLevel = NDIS_STRING_CONST( "Radio11_RxLevel"); 168 NDIS_STRING STRRadio11_LNA = NDIS_STRING_CONST( "Radio11_LNA"); 169 NDIS_STRING STRRadio11_RSSI = NDIS_STRING_CONST( "Radio11_RSSI"); 170 NDIS_STRING STRRadio0D_RxLevel = NDIS_STRING_CONST( "Radio0D_RxLevel"); 171 NDIS_STRING STRRadio0D_LNA = NDIS_STRING_CONST( "Radio0D_LNA"); 172 NDIS_STRING STRRadio0D_RSSI = NDIS_STRING_CONST( "Radio0D_RSSI"); 173 174 NDIS_STRING STRdot11DesiredNetworkType = NDIS_STRING_CONST( "dot11NetworkType"); 175 NDIS_STRING STRdot11DefaultNetworkType = NDIS_STRING_CONST( "dot11DefaultNetworkType"); 176 NDIS_STRING STRdot11SlotTime = NDIS_STRING_CONST( "ShortSlotTime"); 177 NDIS_STRING STRdot11IbssProtection = NDIS_STRING_CONST( "IbssProtectionType"); 178 NDIS_STRING STRdot11RtsCtsProtection = NDIS_STRING_CONST( "dot11RtsCtsProtection"); 179 180 NDIS_STRING STRRxEnergyDetection = NDIS_STRING_CONST( "RxEnergyDetection" ); 181 NDIS_STRING STRCh14TelecCca = NDIS_STRING_CONST( "Ch14TelecCCA" ); 182 NDIS_STRING STRCrtCalibrationInterval = NDIS_STRING_CONST( "CrtCalibrationInterval" ); 183 NDIS_STRING STRTddCalibrationInterval = NDIS_STRING_CONST( "TddCalibrationInterval" ); 184 NDIS_STRING STRMacClockRate = NDIS_STRING_CONST( "MacClockRate" ); 185 NDIS_STRING STRArmClockRate = NDIS_STRING_CONST( "ArmClockRate" ); 186 NDIS_STRING STRg80211DraftNumber = NDIS_STRING_CONST( "g80211DraftNumber" ); 187 188 NDIS_STRING STRdot11ShortPreambleInvoked = NDIS_STRING_CONST( "dot11ShortPreambleInvoked" ); 189 190 NDIS_STRING STRdot11BeaconPeriod = NDIS_STRING_CONST( "dot11BeaconPeriod" ); 191 NDIS_STRING STRdot11MaxScanTime = NDIS_STRING_CONST( "dot11MaxScanTime" ); 192 NDIS_STRING STRdot11MinScanTime = NDIS_STRING_CONST( "dot11MinScanTime" ); 193 NDIS_STRING STRdot11MaxSiteLifetime = NDIS_STRING_CONST( "dot11MaxSiteLifetime" ); 194 195 NDIS_STRING STRdot11MaxAuthRetry = NDIS_STRING_CONST( "dot11MaxAuthRetry" ); 196 NDIS_STRING STRdot11MaxAssocRetry = NDIS_STRING_CONST( "dot11MaxAssocRetry" ); 197 NDIS_STRING STRdot11AuthRespTimeout = NDIS_STRING_CONST( "dot11AuthenticationResponseTimeout" ); 198 NDIS_STRING STRdot11AssocRespTimeout = NDIS_STRING_CONST( "dot11AssociationResponseTimeout" ); 199 200 NDIS_STRING STRConnSelfTimeout = NDIS_STRING_CONST( "ConnSelfTimeout" ); 201 202 NDIS_STRING STRCreditCalcTimout = NDIS_STRING_CONST( "CreditCalcTimout" ); 203 NDIS_STRING STRCreditCalcTimerEnabled = NDIS_STRING_CONST( "CreditCalcTimerEnabled" ); 204 205 NDIS_STRING STRTrafficAdmControlTimeout = NDIS_STRING_CONST("TrafficAdmControlTimeout"); 206 NDIS_STRING STRTrafficAdmControlUseFixedMsduSize = NDIS_STRING_CONST("TrafficAdmCtrlUseFixedMsduSize"); 207 NDIS_STRING STRDesiredMaxSpLen = NDIS_STRING_CONST("DesiredMaxSpLen"); 208 209 NDIS_STRING STRCwFromUserEnable = NDIS_STRING_CONST("CwFromUserEnable"); 210 NDIS_STRING STRDesireCwMin = NDIS_STRING_CONST("DesireCwMin"); 211 NDIS_STRING STRDesireCwMax = NDIS_STRING_CONST("DesireCwMax"); 212 213 NDIS_STRING STRRatePolicyUserShortRetryLimit = NDIS_STRING_CONST( "RatePolicyUserShortRetryLimit" ); 214 NDIS_STRING STRRatePolicyUserLongRetryLimit = NDIS_STRING_CONST( "RatePolicyUserLongRetryLimit" ); 215 216 NDIS_STRING STRRatePolicyUserEnabledRatesMaskCck = NDIS_STRING_CONST( "RatePolicyUserEnabledRatesMaskCck" ); 217 NDIS_STRING STRRatePolicyUserEnabledRatesMaskOfdm = NDIS_STRING_CONST( "RatePolicyUserEnabledRatesMaskOfdm" ); 218 NDIS_STRING STRRatePolicyUserEnabledRatesMaskOfdmA = NDIS_STRING_CONST( "RatePolicyUserEnabledRatesMaskOfdmA" ); 219 NDIS_STRING STRRatePolicyUserEnabledRatesMaskOfdmN = NDIS_STRING_CONST( "RatePolicyUserEnabledRatesMaskOfdmN" ); 220 221 NDIS_STRING STRdot11AuthenticationMode = NDIS_STRING_CONST( "dot11AuthenticationMode" ); 222 NDIS_STRING STRdot11WEPStatus = NDIS_STRING_CONST( "dot11WEPStatus" ); 223 NDIS_STRING STRdot11ExcludeUnencrypted = NDIS_STRING_CONST( "dot11ExcludeUnencrypted" ); 224 NDIS_STRING STRdot11WEPKeymappingLength = NDIS_STRING_CONST( "dot11WEPKeymappingLength" ); 225 NDIS_STRING STRdot11WEPDefaultKeyID = NDIS_STRING_CONST( "dot11WEPDefaultKeyID" ); 226 227 NDIS_STRING STRMixedMode = NDIS_STRING_CONST( "MixedMode" ); 228 229 NDIS_STRING STRWPAMixedMode = NDIS_STRING_CONST( "WPAMixedMode"); 230 NDIS_STRING STRRSNPreAuth = NDIS_STRING_CONST( "RSNPreAuthentication"); 231 NDIS_STRING STRRSNPreAuthTimeout = NDIS_STRING_CONST( "RSNPreAuthTimeout" ); 232 233 NDIS_STRING STRPairwiseMicFailureFilter = NDIS_STRING_CONST( "PairwiseMicFailureFilter" ); 234 235 NDIS_STRING STRTimeToResetCountryMs = NDIS_STRING_CONST( "TimeToResetCountryMs" ); 236 NDIS_STRING STRMultiRegulatoryDomainEnabled = NDIS_STRING_CONST( "MultiRegulatoryDomain" ); 237 NDIS_STRING STRSpectrumManagementEnabled = NDIS_STRING_CONST( "SpectrumManagement" ); 238 NDIS_STRING STRScanControlTable24 = NDIS_STRING_CONST( "AllowedChannelsTable24" ); 239 NDIS_STRING STRScanControlTable5 = NDIS_STRING_CONST( "AllowedChannelsTable5" ); 240 241 NDIS_STRING STRBurstModeEnable = NDIS_STRING_CONST( "BurstModeEnable" ); 242 /* Smart Reflex */ 243 NDIS_STRING STRSRState = NDIS_STRING_CONST( "SRState" ); 244 NDIS_STRING STRSRConfigParam1 = NDIS_STRING_CONST( "SRF1" ); 245 NDIS_STRING STRSRConfigParam2 = NDIS_STRING_CONST( "SRF2" ); 246 NDIS_STRING STRSRConfigParam3 = NDIS_STRING_CONST( "SRF3" ); 247 248 249 /* 250 Power Manager 251 */ 252 NDIS_STRING STRPowerMode = NDIS_STRING_CONST( "dot11PowerMode" ); 253 NDIS_STRING STRBeaconReceiveTime = NDIS_STRING_CONST( "BeaconReceiveTime" ); 254 NDIS_STRING STRBaseBandWakeUpTime = NDIS_STRING_CONST( "BaseBandWakeUpTime" ); 255 NDIS_STRING STRHangoverPeriod = NDIS_STRING_CONST( "HangoverPeriod" ); 256 NDIS_STRING STRBeaconListenInterval = NDIS_STRING_CONST( "BeaconListenInterval" ); 257 NDIS_STRING STRDtimListenInterval = NDIS_STRING_CONST( "DtimListenInterval" ); 258 NDIS_STRING STRNConsecutiveBeaconsMissed = NDIS_STRING_CONST( "NConsecutiveBeaconsMissed" ); 259 NDIS_STRING STREnterTo802_11PsRetries = NDIS_STRING_CONST( "EnterTo802_11PsRetries" ); 260 NDIS_STRING STRAutoPowerModeInterval = NDIS_STRING_CONST( "AutoPowerModeInterval" ); 261 NDIS_STRING STRAutoPowerModeActiveTh = NDIS_STRING_CONST( "AutoPowerModeActiveTh" ); 262 NDIS_STRING STRAutoPowerModeDozeTh = NDIS_STRING_CONST( "AutoPowerModeDozeTh" ); 263 NDIS_STRING STRAutoPowerModeDozeMode = NDIS_STRING_CONST( "AutoPowerModeDozeMode" ); 264 NDIS_STRING STRDefaultPowerLevel = NDIS_STRING_CONST( "defaultPowerLevel" ); 265 NDIS_STRING STRPowerSavePowerLevel = NDIS_STRING_CONST( "PowerSavePowerLevel" ); 266 NDIS_STRING STRHostClkSettlingTime = NDIS_STRING_CONST( "HostClkSettlingTime" ); 267 NDIS_STRING STRHostFastWakeupSupport = NDIS_STRING_CONST( "HostFastWakeupSupport" ); 268 NDIS_STRING STRDcoItrimEnabled = NDIS_STRING_CONST( "DcoItrimEnabled" ); 269 NDIS_STRING STRDcoItrimModerationTimeout = NDIS_STRING_CONST( "DcoItrimModerationTimeout" ); 270 271 NDIS_STRING STRPsPollDeliveryFailureRecoveryPeriod = NDIS_STRING_CONST( "PsPollDeliveryFailureRecoveryPeriod" ); 272 273 NDIS_STRING STRPowerMgmtHangOverPeriod = NDIS_STRING_CONST( "PowerMgmtHangOverPeriod" ); 274 NDIS_STRING STRPowerMgmtMode = NDIS_STRING_CONST( "PowerMgmtMode" ); 275 NDIS_STRING STRPowerMgmtNeedToSendNullData = NDIS_STRING_CONST( "PowerMgmtNeedToSendNullData" ); 276 NDIS_STRING STRPowerMgmtNullPktRateModulation = NDIS_STRING_CONST( "PowerMgmtNullPktRateModulation" ); 277 NDIS_STRING STRPowerMgmtNumNullPktRetries = NDIS_STRING_CONST( "PowerMgmtNumNullPktRetries" ); 278 NDIS_STRING STRPowerMgmtPllLockTime = NDIS_STRING_CONST( "PllLockTime" ); 279 280 NDIS_STRING STRBeaconRxTimeout = NDIS_STRING_CONST( "BeaconRxTimeout" ); 281 NDIS_STRING STRBroadcastRxTimeout = NDIS_STRING_CONST( "BroadcastRxTimeout" ); 282 NDIS_STRING STRRxBroadcastInPs = NDIS_STRING_CONST( "RxBroadcastInPs" ); 283 284 NDIS_STRING STRConsecutivePsPollDeliveryFailureThreshold = NDIS_STRING_CONST( "ConsecutivePsPollDeliveryFailureThreshold" ); 285 286 NDIS_STRING STRTxPower = NDIS_STRING_CONST( "TxPower" ); 287 288 /* Scan SRV */ 289 NDIS_STRING STRNumberOfNoScanCompleteToRecovery = NDIS_STRING_CONST( "NumberOfNoScanCompleteToRecovery" ); 290 NDIS_STRING STRTriggeredScanTimeOut = NDIS_STRING_CONST( "TriggeredScanTimeOut" ); 291 292 /*-----------------------------------*/ 293 /* Coexistence params */ 294 /*-----------------------------------*/ 295 NDIS_STRING STRBThWlanCoexistEnable = NDIS_STRING_CONST( "BThWlanCoexistEnable" ); 296 297 NDIS_STRING STRBThWlanCoexistPerThreshold = NDIS_STRING_CONST( "coexBtPerThreshold" ); 298 NDIS_STRING STRBThWlanCoexistHv3MaxOverride = NDIS_STRING_CONST( "coexHv3MaxOverride" ); 299 NDIS_STRING STRBThWlanCoexistParamsBtLoadRatio = NDIS_STRING_CONST( "coexBtLoadRatio" ); 300 NDIS_STRING STRBThWlanCoexistParamsAutoPsMode = NDIS_STRING_CONST( "coexAutoPsMode" ); 301 NDIS_STRING STRBThWlanCoexHv3AutoScanEnlargedNumOfProbeReqPercent = NDIS_STRING_CONST( "coexHv3AutoScanEnlargedNumOfProbeReqPercent" ); 302 NDIS_STRING STRBThWlanCoexHv3AutoScanEnlargedScanWinodowPercent = NDIS_STRING_CONST( "coexHv3AutoScanEnlargedScanWinodowPercent" ); 303 NDIS_STRING STRBThWlanCoexistcoexAntennaConfiguration = NDIS_STRING_CONST( "coexAntennaConfiguration" ); 304 NDIS_STRING STRBThWlanCoexistNfsSampleInterval = NDIS_STRING_CONST( "coexBtNfsSampleInterval" ); 305 NDIS_STRING STRBThWlanCoexistcoexMaxConsecutiveBeaconMissPrecent = NDIS_STRING_CONST( "coexMaxConsecutiveBeaconMissPrecent" ); 306 NDIS_STRING STRBThWlanCoexistcoexAPRateAdapationThr = NDIS_STRING_CONST( "coexAPRateAdapationThr" ); 307 NDIS_STRING STRBThWlanCoexistcoexAPRateAdapationSnr = NDIS_STRING_CONST( "coexAPRateAdapationSnr" ); 308 309 NDIS_STRING STRBThWlanCoexistUpsdAclMasterMinBR = NDIS_STRING_CONST( "coexWlanPsBtAclMasterMinBR" ); 310 NDIS_STRING STRBThWlanCoexistUpsdAclSlaveMinBR = NDIS_STRING_CONST( "coexWlanPsBtAclSlaveMinBR" ); 311 NDIS_STRING STRBThWlanCoexistUpsdAclMasterMaxBR = NDIS_STRING_CONST( "coexWlanPsBtAclMasterMaxBR" ); 312 NDIS_STRING STRBThWlanCoexistUpsdAclSlaveMaxBR = NDIS_STRING_CONST( "coexWlanPsBtAclSlaveMaxBR" ); 313 NDIS_STRING STRBThWlanPsMaxBtAclMasterBR = NDIS_STRING_CONST( "coexWlanPsMaxBtAclMasterBR" ); 314 NDIS_STRING STRBThWlanPsMaxBtAclSlaveBR = NDIS_STRING_CONST( "coexWlanPsMaxBtAclSlaveBR" ); 315 NDIS_STRING STRBThWlanCoexistUpsdAclMasterMinEDR = NDIS_STRING_CONST( "coexWlanPsBtAclMasterMinEDR" ); 316 NDIS_STRING STRBThWlanCoexistUpsdAclSlaveMinEDR = NDIS_STRING_CONST( "coexWlanPsBtAclSlaveMinEDR" ); 317 NDIS_STRING STRBThWlanCoexistUpsdAclMasterMaxEDR = NDIS_STRING_CONST( "coexWlanPsBtAclMasterMaxEDR" ); 318 NDIS_STRING STRBThWlanCoexistUpsdAclSlaveMaxEDR = NDIS_STRING_CONST( "coexWlanPsBtAclSlaveMaxEDR" ); 319 NDIS_STRING STRBThWlanPsMaxBtAclMasterEDR = NDIS_STRING_CONST( "coexWlanPsMaxBtAclMasterEDR" ); 320 NDIS_STRING STRBThWlanPsMaxBtAclSlaveEDR = NDIS_STRING_CONST( "coexWlanPsMaxBtAclSlaveEDR" ); 321 322 NDIS_STRING STRBThWlanCoexistRxt = NDIS_STRING_CONST( "coexRxt" ); 323 NDIS_STRING STRBThWlanCoexistTxt = NDIS_STRING_CONST( "coexTxt" ); 324 NDIS_STRING STRBThWlanCoexistAdaptiveRxtTxt = NDIS_STRING_CONST( "coexAdaptiveRxtTxt" ); 325 NDIS_STRING STRBThWlanCoexistPsPollTimeout = NDIS_STRING_CONST( "coexPsPollTimeout" ); 326 NDIS_STRING STRBThWlanCoexistUpsdTimeout = NDIS_STRING_CONST( "coexUpsdTimeout" ); 327 328 NDIS_STRING STRBThWlanCoexistWlanActiveBtAclMasterMinEDR = NDIS_STRING_CONST( "coexWlanActiveBtAclMasterMinEDR" ); 329 NDIS_STRING STRBThWlanCoexistWlanActiveBtAclMasterMaxEDR = NDIS_STRING_CONST( "coexWlanActiveBtAclMasterMaxEDR" ); 330 NDIS_STRING STRBThWlanCoexistWlanActiveMaxBtAclMasterEDR = NDIS_STRING_CONST( "coexWlanActiveMaxBtAclMasterEDR" ); 331 NDIS_STRING STRBThWlanCoexistWlanActiveBtAclSlaveMinEDR = NDIS_STRING_CONST( "coexWlanActiveBtAclSlaveMinEDR" ); 332 NDIS_STRING STRBThWlanCoexistWlanActiveBtAclSlaveMaxEDR = NDIS_STRING_CONST( "coexWlanActiveBtAclSlaveMaxEDR" ); 333 NDIS_STRING STRBThWlanCoexistWlanActiveMaxBtAclSlaveEDR = NDIS_STRING_CONST( "coexWlanActiveMaxBtAclSlaveEDR" ); 334 335 NDIS_STRING STRBThWlanCoexistWlanActiveBtAclMinBR = NDIS_STRING_CONST( "coexWlanActiveBtAclMinBR" ); 336 NDIS_STRING STRBThWlanCoexistWlanActiveBtAclMaxBR = NDIS_STRING_CONST( "coexWlanActiveBtAclMaxBR" ); 337 NDIS_STRING STRBThWlanCoexistWlanActiveMaxBtAclBR = NDIS_STRING_CONST( "coexWlanActiveMaxBtAclBR" ); 338 339 NDIS_STRING STRBThWlanCoexHv3AutoEnlargePassiveScanWindowPercent = NDIS_STRING_CONST( "coexHv3AutoEnlargePassiveScanWindowPercent" ); 340 NDIS_STRING STRBThWlanCoexA2DPAutoEnlargePassiveScanWindowPercent = NDIS_STRING_CONST( "coexA2DPAutoEnlargePassiveScanWindowPercent" ); 341 NDIS_STRING STRBThWlanCoexPassiveScanA2dpBtTime = NDIS_STRING_CONST( "coexPassiveScanA2dpBtTime" ); 342 NDIS_STRING STRBThWlanCoexPassiveScanA2dpWlanTime = NDIS_STRING_CONST( "coexPassiveScanA2dpWlanTime" ); 343 NDIS_STRING STRBThWlancoexDhcpTime = NDIS_STRING_CONST( "coexDhcpTime" ); 344 NDIS_STRING STRBThWlanCoexHv3MaxServed = NDIS_STRING_CONST( "CoexHv3MaxServed" ); 345 NDIS_STRING STRBThWlanCoexA2dpAutoScanEnlargedScanWinodowPercent = NDIS_STRING_CONST( "coexA2dpAutoScanEnlargedScanWinodowPercent" ); 346 NDIS_STRING STRBThWlanCoexTemp1 = NDIS_STRING_CONST( "coexTempParam1" ); 347 NDIS_STRING STRBThWlanCoexTemp2 = NDIS_STRING_CONST( "coexTempParam2" ); 348 NDIS_STRING STRBThWlanCoexTemp3 = NDIS_STRING_CONST( "coexTempParam3" ); 349 NDIS_STRING STRBThWlanCoexTemp4 = NDIS_STRING_CONST( "coexTempParam4" ); 350 NDIS_STRING STRBThWlanCoexTemp5 = NDIS_STRING_CONST( "coexTempParam5" ); 351 352 NDIS_STRING STRDisableSsidPending = NDIS_STRING_CONST( "DisableSsidPending" ); 353 354 /*-----------------------------------*/ 355 /* SME Init Params */ 356 /*-----------------------------------*/ 357 NDIS_STRING STRSmeRadioOn = NDIS_STRING_CONST( "RadioOn" ); 358 NDIS_STRING STRSmeConnectMode = NDIS_STRING_CONST( "SmeConnectMode" ); 359 NDIS_STRING STRSmeScanRssiThreshold = NDIS_STRING_CONST( "SmeScanRssiThreshold" ); 360 NDIS_STRING STRSmeScanSnrThreshold = NDIS_STRING_CONST( "SmeScanSnrThreshold" ); 361 NDIS_STRING STRSmeScanCycleNumber = NDIS_STRING_CONST( "SmeScanCycleNumber" ); 362 NDIS_STRING STRSmeScanMaxDwellTime = NDIS_STRING_CONST( "SmeScanMaxDwellTimeMs" ); 363 NDIS_STRING STRSmeScanMinDwellTime = NDIS_STRING_CONST( "SmeScanMinDwellTimeMs" ); 364 NDIS_STRING STRSmeScanProbeRequestNumber = NDIS_STRING_CONST( "SmeScanProbeRequestNumber" ); 365 NDIS_STRING STRSmeScanIntervals = NDIS_STRING_CONST( "SmeScanIntervalList" ); 366 NDIS_STRING STRSmeScanGChannels = NDIS_STRING_CONST( "SmeScanGChannelList" ); 367 NDIS_STRING STRSmeScanAChannels = NDIS_STRING_CONST( "SmeScanAChannelList" ); 368 369 370 /*-----------------------------------*/ 371 /* Roaming & Scanning Init Params */ 372 /*-----------------------------------*/ 373 NDIS_STRING STRRoamScanEnable = NDIS_STRING_CONST( "RoamScanEnable" ); 374 375 /*-----------------------------------*/ 376 /* Health Check Init Params */ 377 /*-----------------------------------*/ 378 NDIS_STRING STRRecoveryEnabledNoScanComplete = NDIS_STRING_CONST( "RecoveryEnabledNoScanComplete" ); 379 NDIS_STRING STRRecoveryEnabledMboxFailure = NDIS_STRING_CONST( "RecoveryEnabledMboxFailure" ); 380 NDIS_STRING STRRecoveryEnabledHwAwakeFailure = NDIS_STRING_CONST( "RecoveryEnabledHwAwakeFailure" ); 381 NDIS_STRING STRRecoveryEnabledTxStuck = NDIS_STRING_CONST( "RecoveryEnabledTxStuck" ); 382 NDIS_STRING STRRecoveryEnabledDisconnectTimeout = NDIS_STRING_CONST( "RecoveryEnabledDisconnectTimeout" ); 383 NDIS_STRING STRRecoveryEnabledPowerSaveFailure = NDIS_STRING_CONST( "RecoveryEnabledPowerSaveFailure" ); 384 NDIS_STRING STRRecoveryEnabledMeasurementFailure= NDIS_STRING_CONST( "RecoveryEnabledMeasurementFailure" ); 385 NDIS_STRING STRRecoveryEnabledBusFailure = NDIS_STRING_CONST( "RecoveryEnabledBusFailure" ); 386 NDIS_STRING STRRecoveryEnabledHwWdExpire = NDIS_STRING_CONST( "RecoveryEnabledHwWdExpire" ); 387 NDIS_STRING STRRecoveryEnabledRxXferFailure = NDIS_STRING_CONST( "RecoveryEnabledRxXferFailure" ); 388 389 /*-----------------------------------*/ 390 /* Tx Power control with atheros */ 391 /*-----------------------------------*/ 392 NDIS_STRING STRTxPowerCheckTime = NDIS_STRING_CONST("TxPowerCheckTime"); 393 NDIS_STRING STRTxPowerControlOn = NDIS_STRING_CONST("TxPowerControlOn"); 394 NDIS_STRING STRTxPowerRssiThresh = NDIS_STRING_CONST("TxPowerRssiThresh"); 395 NDIS_STRING STRTxPowerRssiRestoreThresh = NDIS_STRING_CONST("TxPowerRssiRestoreThresh"); 396 NDIS_STRING STRTxPowerTempRecover = NDIS_STRING_CONST("TxPowerTempRecover"); 397 398 399 /*-----------------------------------*/ 400 /*-----------------------------------*/ 401 /* QOS Parameters */ 402 /*-----------------------------------*/ 403 NDIS_STRING STRWMEEnable = NDIS_STRING_CONST("WME_Enable"); 404 NDIS_STRING STRTrafficAdmCtrlEnable = NDIS_STRING_CONST("TrafficAdmCtrl_Enable"); 405 NDIS_STRING STRdesiredPsMode = NDIS_STRING_CONST("desiredPsMode"); 406 NDIS_STRING STRQOSmsduLifeTimeBE = NDIS_STRING_CONST("QOS_msduLifeTimeBE"); 407 NDIS_STRING STRQOSmsduLifeTimeBK = NDIS_STRING_CONST("QOS_msduLifeTimeBK"); 408 NDIS_STRING STRQOSmsduLifeTimeVI = NDIS_STRING_CONST("QOS_msduLifeTimeVI"); 409 NDIS_STRING STRQOSmsduLifeTimeVO = NDIS_STRING_CONST("QOS_msduLifeTimeVO"); 410 NDIS_STRING STRQOSrxTimeOutPsPoll = NDIS_STRING_CONST("QOS_rxTimeoutPsPoll"); 411 NDIS_STRING STRQOSrxTimeOutUPSD = NDIS_STRING_CONST("QOS_rxTimeoutUPSD"); 412 NDIS_STRING STRQOSwmePsModeBE = NDIS_STRING_CONST("QOS_wmePsModeBE"); 413 NDIS_STRING STRQOSwmePsModeBK = NDIS_STRING_CONST("QOS_wmePsModeBK"); 414 NDIS_STRING STRQOSwmePsModeVI = NDIS_STRING_CONST("QOS_wmePsModeVI"); 415 NDIS_STRING STRQOSwmePsModeVO = NDIS_STRING_CONST("QOS_wmePsModeVO"); 416 NDIS_STRING STRQOSShortRetryLimitBE = NDIS_STRING_CONST("QOS_ShortRetryLimitBE"); 417 NDIS_STRING STRQOSShortRetryLimitBK = NDIS_STRING_CONST("QOS_ShortRetryLimitBK"); 418 NDIS_STRING STRQOSShortRetryLimitVI = NDIS_STRING_CONST("QOS_ShortRetryLimitVI"); 419 NDIS_STRING STRQOSShortRetryLimitVO = NDIS_STRING_CONST("QOS_ShortRetryLimitVO"); 420 NDIS_STRING STRQOSLongRetryLimitBE = NDIS_STRING_CONST("QOS_LongRetryLimitBE"); 421 NDIS_STRING STRQOSLongRetryLimitBK = NDIS_STRING_CONST("QOS_LongRetryLimitBK"); 422 NDIS_STRING STRQOSLongRetryLimitVI = NDIS_STRING_CONST("QOS_LongRetryLimitVI"); 423 NDIS_STRING STRQOSLongRetryLimitVO = NDIS_STRING_CONST("QOS_LongRetryLimitVO"); 424 425 NDIS_STRING STRQOSAckPolicyBE = NDIS_STRING_CONST("QOS_AckPolicyBE"); 426 NDIS_STRING STRQOSAckPolicyBK = NDIS_STRING_CONST("QOS_AckPolicyBK"); 427 NDIS_STRING STRQOSAckPolicyVI = NDIS_STRING_CONST("QOS_AckPolicyVI"); 428 NDIS_STRING STRQOSAckPolicyVO = NDIS_STRING_CONST("QOS_AckPolicyVO"); 429 NDIS_STRING STRQoSqueue0OverFlowPolicy = NDIS_STRING_CONST("QOS_queue0OverFlowPolicy"); 430 NDIS_STRING STRQoSqueue1OverFlowPolicy = NDIS_STRING_CONST("QOS_queue1OverFlowPolicy"); 431 NDIS_STRING STRQoSqueue2OverFlowPolicy = NDIS_STRING_CONST("QOS_queue2OverFlowPolicy"); 432 NDIS_STRING STRQoSqueue3OverFlowPolicy = NDIS_STRING_CONST("QOS_queue3OverFlowPolicy"); 433 /* HP parameters */ 434 NDIS_STRING STR11nEnable = NDIS_STRING_CONST("HT_Enable"); 435 NDIS_STRING STRBaPolicyTid_0 = NDIS_STRING_CONST("BaPolicyTid_0"); 436 NDIS_STRING STRBaPolicyTid_1 = NDIS_STRING_CONST("BaPolicyTid_1"); 437 NDIS_STRING STRBaPolicyTid_2 = NDIS_STRING_CONST("BaPolicyTid_2"); 438 NDIS_STRING STRBaPolicyTid_3 = NDIS_STRING_CONST("BaPolicyTid_3"); 439 NDIS_STRING STRBaPolicyTid_4 = NDIS_STRING_CONST("BaPolicyTid_4"); 440 NDIS_STRING STRBaPolicyTid_5 = NDIS_STRING_CONST("BaPolicyTid_5"); 441 NDIS_STRING STRBaPolicyTid_6 = NDIS_STRING_CONST("BaPolicyTid_6"); 442 NDIS_STRING STRBaPolicyTid_7 = NDIS_STRING_CONST("BaPolicyTid_7"); 443 NDIS_STRING STRBaInactivityTimeoutTid_0 = NDIS_STRING_CONST("BaInactivityTimeoutTid_0"); 444 NDIS_STRING STRBaInactivityTimeoutTid_1 = NDIS_STRING_CONST("BaInactivityTimeoutTid_1"); 445 NDIS_STRING STRBaInactivityTimeoutTid_2 = NDIS_STRING_CONST("BaInactivityTimeoutTid_2"); 446 NDIS_STRING STRBaInactivityTimeoutTid_3 = NDIS_STRING_CONST("BaInactivityTimeoutTid_3"); 447 NDIS_STRING STRBaInactivityTimeoutTid_4 = NDIS_STRING_CONST("BaInactivityTimeoutTid_4"); 448 NDIS_STRING STRBaInactivityTimeoutTid_5 = NDIS_STRING_CONST("BaInactivityTimeoutTid_5"); 449 NDIS_STRING STRBaInactivityTimeoutTid_6 = NDIS_STRING_CONST("BaInactivityTimeoutTid_6"); 450 NDIS_STRING STRBaInactivityTimeoutTid_7 = NDIS_STRING_CONST("BaInactivityTimeoutTid_7"); 451 452 453 /* HW Tx queues mem-blocks allocation thresholds */ 454 NDIS_STRING STRQOStxBlksThresholdBE = NDIS_STRING_CONST("QOS_txBlksThresholdBE"); 455 NDIS_STRING STRQOStxBlksThresholdBK = NDIS_STRING_CONST("QOS_txBlksThresholdBK"); 456 NDIS_STRING STRQOStxBlksThresholdVI = NDIS_STRING_CONST("QOS_txBlksThresholdVI"); 457 NDIS_STRING STRQOStxBlksThresholdVO = NDIS_STRING_CONST("QOS_txBlksThresholdVO"); 458 459 /* HW Rx mem-blocks Number */ 460 NDIS_STRING STRRxMemBlksNum = NDIS_STRING_CONST("RxMemBlksNum"); 461 462 /* Traffic Intensity parameters*/ 463 NDIS_STRING STRTrafficIntensityThresHigh = NDIS_STRING_CONST("TrafficIntensityThresHigh"); 464 NDIS_STRING STRTrafficIntensityThresLow = NDIS_STRING_CONST("TrafficIntensityThresLow"); 465 NDIS_STRING STRTrafficIntensityTestInterval = NDIS_STRING_CONST("TrafficIntensityTestInterval"); 466 NDIS_STRING STRTrafficIntensityThresholdEnabled = NDIS_STRING_CONST("TrafficIntensityThresholdEnabled"); 467 NDIS_STRING STRTrafficMonitorMinIntervalPercentage = NDIS_STRING_CONST("TrafficMonitorMinIntervalPercent"); 468 469 /* Packet Burst parameters */ 470 NDIS_STRING STRQOSPacketBurstEnable = NDIS_STRING_CONST("QOS_PacketBurstEnable"); 471 NDIS_STRING STRQOSPacketBurstTxOpLimit = NDIS_STRING_CONST("QOS_PacketBurstTxOpLimit"); 472 473 /* Performance Boost (for speed or for QoS) */ 474 NDIS_STRING STRPerformanceBoost = NDIS_STRING_CONST("PerformanceBoost"); 475 476 /* Maximum AMPDU Size */ 477 NDIS_STRING STRMaxAMPDU = NDIS_STRING_CONST("MaxAMPDU"); 478 479 /*-----------------------------------*/ 480 /* QOS classifier Parameters */ 481 /*-----------------------------------*/ 482 NDIS_STRING STRClsfr_Type = NDIS_STRING_CONST("Clsfr_Type"); 483 NDIS_STRING STRNumOfCodePoints = NDIS_STRING_CONST("NumOfCodePoints"); 484 NDIS_STRING STRNumOfDstPortClassifiers = NDIS_STRING_CONST("NumOfDstPortClassifiers"); 485 NDIS_STRING STRNumOfDstIPPortClassifiers = NDIS_STRING_CONST("NumOfDstIPPortClassifiers"); 486 487 NDIS_STRING STRDSCPClassifier00_CodePoint = NDIS_STRING_CONST("DSCPClassifier00_CodePoint"); 488 NDIS_STRING STRDSCPClassifier01_CodePoint = NDIS_STRING_CONST("DSCPClassifier01_CodePoint"); 489 NDIS_STRING STRDSCPClassifier02_CodePoint = NDIS_STRING_CONST("DSCPClassifier02_CodePoint"); 490 NDIS_STRING STRDSCPClassifier03_CodePoint = NDIS_STRING_CONST("DSCPClassifier03_CodePoint"); 491 NDIS_STRING STRDSCPClassifier04_CodePoint = NDIS_STRING_CONST("DSCPClassifier04_CodePoint"); 492 NDIS_STRING STRDSCPClassifier05_CodePoint = NDIS_STRING_CONST("DSCPClassifier05_CodePoint"); 493 NDIS_STRING STRDSCPClassifier06_CodePoint = NDIS_STRING_CONST("DSCPClassifier06_CodePoint"); 494 NDIS_STRING STRDSCPClassifier07_CodePoint = NDIS_STRING_CONST("DSCPClassifier07_CodePoint"); 495 NDIS_STRING STRDSCPClassifier08_CodePoint = NDIS_STRING_CONST("DSCPClassifier08_CodePoint"); 496 NDIS_STRING STRDSCPClassifier09_CodePoint = NDIS_STRING_CONST("DSCPClassifier09_CodePoint"); 497 NDIS_STRING STRDSCPClassifier10_CodePoint = NDIS_STRING_CONST("DSCPClassifier10_CodePoint"); 498 NDIS_STRING STRDSCPClassifier11_CodePoint = NDIS_STRING_CONST("DSCPClassifier11_CodePoint"); 499 NDIS_STRING STRDSCPClassifier12_CodePoint = NDIS_STRING_CONST("DSCPClassifier12_CodePoint"); 500 NDIS_STRING STRDSCPClassifier13_CodePoint = NDIS_STRING_CONST("DSCPClassifier13_CodePoint"); 501 NDIS_STRING STRDSCPClassifier14_CodePoint = NDIS_STRING_CONST("DSCPClassifier14_CodePoint"); 502 NDIS_STRING STRDSCPClassifier15_CodePoint = NDIS_STRING_CONST("DSCPClassifier15_CodePoint"); 503 504 NDIS_STRING STRDSCPClassifier00_DTag = NDIS_STRING_CONST("DSCPClassifier00_DTag"); 505 NDIS_STRING STRDSCPClassifier01_DTag = NDIS_STRING_CONST("DSCPClassifier01_DTag"); 506 NDIS_STRING STRDSCPClassifier02_DTag = NDIS_STRING_CONST("DSCPClassifier02_DTag"); 507 NDIS_STRING STRDSCPClassifier03_DTag = NDIS_STRING_CONST("DSCPClassifier03_DTag"); 508 NDIS_STRING STRDSCPClassifier04_DTag = NDIS_STRING_CONST("DSCPClassifier04_DTag"); 509 NDIS_STRING STRDSCPClassifier05_DTag = NDIS_STRING_CONST("DSCPClassifier05_DTag"); 510 NDIS_STRING STRDSCPClassifier06_DTag = NDIS_STRING_CONST("DSCPClassifier06_DTag"); 511 NDIS_STRING STRDSCPClassifier07_DTag = NDIS_STRING_CONST("DSCPClassifier07_DTag"); 512 NDIS_STRING STRDSCPClassifier08_DTag = NDIS_STRING_CONST("DSCPClassifier08_DTag"); 513 NDIS_STRING STRDSCPClassifier09_DTag = NDIS_STRING_CONST("DSCPClassifier09_DTag"); 514 NDIS_STRING STRDSCPClassifier10_DTag = NDIS_STRING_CONST("DSCPClassifier10_DTag"); 515 NDIS_STRING STRDSCPClassifier11_DTag = NDIS_STRING_CONST("DSCPClassifier11_DTag"); 516 NDIS_STRING STRDSCPClassifier12_DTag = NDIS_STRING_CONST("DSCPClassifier12_DTag"); 517 NDIS_STRING STRDSCPClassifier13_DTag = NDIS_STRING_CONST("DSCPClassifier13_DTag"); 518 NDIS_STRING STRDSCPClassifier14_DTag = NDIS_STRING_CONST("DSCPClassifier14_DTag"); 519 NDIS_STRING STRDSCPClassifier15_DTag = NDIS_STRING_CONST("DSCPClassifier15_DTag"); 520 521 522 NDIS_STRING STRPortClassifier00_Port = NDIS_STRING_CONST("PortClassifier00_Port"); 523 NDIS_STRING STRPortClassifier01_Port = NDIS_STRING_CONST("PortClassifier01_Port"); 524 NDIS_STRING STRPortClassifier02_Port = NDIS_STRING_CONST("PortClassifier02_Port"); 525 NDIS_STRING STRPortClassifier03_Port = NDIS_STRING_CONST("PortClassifier03_Port"); 526 NDIS_STRING STRPortClassifier04_Port = NDIS_STRING_CONST("PortClassifier04_Port"); 527 NDIS_STRING STRPortClassifier05_Port = NDIS_STRING_CONST("PortClassifier05_Port"); 528 NDIS_STRING STRPortClassifier06_Port = NDIS_STRING_CONST("PortClassifier06_Port"); 529 NDIS_STRING STRPortClassifier07_Port = NDIS_STRING_CONST("PortClassifier07_Port"); 530 NDIS_STRING STRPortClassifier08_Port = NDIS_STRING_CONST("PortClassifier08_Port"); 531 NDIS_STRING STRPortClassifier09_Port = NDIS_STRING_CONST("PortClassifier09_Port"); 532 NDIS_STRING STRPortClassifier10_Port = NDIS_STRING_CONST("PortClassifier10_Port"); 533 NDIS_STRING STRPortClassifier11_Port = NDIS_STRING_CONST("PortClassifier11_Port"); 534 NDIS_STRING STRPortClassifier12_Port = NDIS_STRING_CONST("PortClassifier12_Port"); 535 NDIS_STRING STRPortClassifier13_Port = NDIS_STRING_CONST("PortClassifier13_Port"); 536 NDIS_STRING STRPortClassifier14_Port = NDIS_STRING_CONST("PortClassifier14_Port"); 537 NDIS_STRING STRPortClassifier15_Port = NDIS_STRING_CONST("PortClassifier15_Port"); 538 539 NDIS_STRING STRPortClassifier00_DTag = NDIS_STRING_CONST("PortClassifier00_DTag"); 540 NDIS_STRING STRPortClassifier01_DTag = NDIS_STRING_CONST("PortClassifier01_DTag"); 541 NDIS_STRING STRPortClassifier02_DTag = NDIS_STRING_CONST("PortClassifier02_DTag"); 542 NDIS_STRING STRPortClassifier03_DTag = NDIS_STRING_CONST("PortClassifier03_DTag"); 543 NDIS_STRING STRPortClassifier04_DTag = NDIS_STRING_CONST("PortClassifier04_DTag"); 544 NDIS_STRING STRPortClassifier05_DTag = NDIS_STRING_CONST("PortClassifier05_DTag"); 545 NDIS_STRING STRPortClassifier06_DTag = NDIS_STRING_CONST("PortClassifier06_DTag"); 546 NDIS_STRING STRPortClassifier07_DTag = NDIS_STRING_CONST("PortClassifier07_DTag"); 547 NDIS_STRING STRPortClassifier08_DTag = NDIS_STRING_CONST("PortClassifier08_DTag"); 548 NDIS_STRING STRPortClassifier09_DTag = NDIS_STRING_CONST("PortClassifier09_DTag"); 549 NDIS_STRING STRPortClassifier10_DTag = NDIS_STRING_CONST("PortClassifier10_DTag"); 550 NDIS_STRING STRPortClassifier11_DTag = NDIS_STRING_CONST("PortClassifier11_DTag"); 551 NDIS_STRING STRPortClassifier12_DTag = NDIS_STRING_CONST("PortClassifier12_DTag"); 552 NDIS_STRING STRPortClassifier13_DTag = NDIS_STRING_CONST("PortClassifier13_DTag"); 553 NDIS_STRING STRPortClassifier14_DTag = NDIS_STRING_CONST("PortClassifier14_DTag"); 554 NDIS_STRING STRPortClassifier15_DTag = NDIS_STRING_CONST("PortClassifier15_DTag"); 555 556 NDIS_STRING STRIPPortClassifier00_IPAddress = NDIS_STRING_CONST("IPPortClassifier00_IPAddress"); 557 NDIS_STRING STRIPPortClassifier01_IPAddress = NDIS_STRING_CONST("IPPortClassifier01_IPAddress"); 558 NDIS_STRING STRIPPortClassifier02_IPAddress = NDIS_STRING_CONST("IPPortClassifier02_IPAddress"); 559 NDIS_STRING STRIPPortClassifier03_IPAddress = NDIS_STRING_CONST("IPPortClassifier03_IPAddress"); 560 NDIS_STRING STRIPPortClassifier04_IPAddress = NDIS_STRING_CONST("IPPortClassifier04_IPAddress"); 561 NDIS_STRING STRIPPortClassifier05_IPAddress = NDIS_STRING_CONST("IPPortClassifier05_IPAddress"); 562 NDIS_STRING STRIPPortClassifier06_IPAddress = NDIS_STRING_CONST("IPPortClassifier06_IPAddress"); 563 NDIS_STRING STRIPPortClassifier07_IPAddress = NDIS_STRING_CONST("IPPortClassifier07_IPAddress"); 564 NDIS_STRING STRIPPortClassifier08_IPAddress = NDIS_STRING_CONST("IPPortClassifier08_IPAddress"); 565 NDIS_STRING STRIPPortClassifier09_IPAddress = NDIS_STRING_CONST("IPPortClassifier09_IPAddress"); 566 NDIS_STRING STRIPPortClassifier10_IPAddress = NDIS_STRING_CONST("IPPortClassifier10_IPAddress"); 567 NDIS_STRING STRIPPortClassifier11_IPAddress = NDIS_STRING_CONST("IPPortClassifier11_IPAddress"); 568 NDIS_STRING STRIPPortClassifier12_IPAddress = NDIS_STRING_CONST("IPPortClassifier12_IPAddress"); 569 NDIS_STRING STRIPPortClassifier13_IPAddress = NDIS_STRING_CONST("IPPortClassifier13_IPAddress"); 570 NDIS_STRING STRIPPortClassifier14_IPAddress = NDIS_STRING_CONST("IPPortClassifier14_IPAddress"); 571 NDIS_STRING STRIPPortClassifier15_IPAddress = NDIS_STRING_CONST("IPPortClassifier15_IPAddress"); 572 573 NDIS_STRING STRIPPortClassifier00_Port = NDIS_STRING_CONST("IPPortClassifier00_Port"); 574 NDIS_STRING STRIPPortClassifier01_Port = NDIS_STRING_CONST("IPPortClassifier01_Port"); 575 NDIS_STRING STRIPPortClassifier02_Port = NDIS_STRING_CONST("IPPortClassifier02_Port"); 576 NDIS_STRING STRIPPortClassifier03_Port = NDIS_STRING_CONST("IPPortClassifier03_Port"); 577 NDIS_STRING STRIPPortClassifier04_Port = NDIS_STRING_CONST("IPPortClassifier04_Port"); 578 NDIS_STRING STRIPPortClassifier05_Port = NDIS_STRING_CONST("IPPortClassifier05_Port"); 579 NDIS_STRING STRIPPortClassifier06_Port = NDIS_STRING_CONST("IPPortClassifier06_Port"); 580 NDIS_STRING STRIPPortClassifier07_Port = NDIS_STRING_CONST("IPPortClassifier07_Port"); 581 NDIS_STRING STRIPPortClassifier08_Port = NDIS_STRING_CONST("IPPortClassifier08_Port"); 582 NDIS_STRING STRIPPortClassifier09_Port = NDIS_STRING_CONST("IPPortClassifier09_Port"); 583 NDIS_STRING STRIPPortClassifier10_Port = NDIS_STRING_CONST("IPPortClassifier10_Port"); 584 NDIS_STRING STRIPPortClassifier11_Port = NDIS_STRING_CONST("IPPortClassifier11_Port"); 585 NDIS_STRING STRIPPortClassifier12_Port = NDIS_STRING_CONST("IPPortClassifier12_Port"); 586 NDIS_STRING STRIPPortClassifier13_Port = NDIS_STRING_CONST("IPPortClassifier13_Port"); 587 NDIS_STRING STRIPPortClassifier14_Port = NDIS_STRING_CONST("IPPortClassifier14_Port"); 588 NDIS_STRING STRIPPortClassifier15_Port = NDIS_STRING_CONST("IPPortClassifier15_Port"); 589 590 NDIS_STRING STRIPPortClassifier00_DTag = NDIS_STRING_CONST("IPPortClassifier00_DTag"); 591 NDIS_STRING STRIPPortClassifier01_DTag = NDIS_STRING_CONST("IPPortClassifier01_DTag"); 592 NDIS_STRING STRIPPortClassifier02_DTag = NDIS_STRING_CONST("IPPortClassifier02_DTag"); 593 NDIS_STRING STRIPPortClassifier03_DTag = NDIS_STRING_CONST("IPPortClassifier03_DTag"); 594 NDIS_STRING STRIPPortClassifier04_DTag = NDIS_STRING_CONST("IPPortClassifier04_DTag"); 595 NDIS_STRING STRIPPortClassifier05_DTag = NDIS_STRING_CONST("IPPortClassifier05_DTag"); 596 NDIS_STRING STRIPPortClassifier06_DTag = NDIS_STRING_CONST("IPPortClassifier06_DTag"); 597 NDIS_STRING STRIPPortClassifier07_DTag = NDIS_STRING_CONST("IPPortClassifier07_DTag"); 598 NDIS_STRING STRIPPortClassifier08_DTag = NDIS_STRING_CONST("IPPortClassifier08_DTag"); 599 NDIS_STRING STRIPPortClassifier09_DTag = NDIS_STRING_CONST("IPPortClassifier09_DTag"); 600 NDIS_STRING STRIPPortClassifier10_DTag = NDIS_STRING_CONST("IPPortClassifier10_DTag"); 601 NDIS_STRING STRIPPortClassifier11_DTag = NDIS_STRING_CONST("IPPortClassifier11_DTag"); 602 NDIS_STRING STRIPPortClassifier12_DTag = NDIS_STRING_CONST("IPPortClassifier12_DTag"); 603 NDIS_STRING STRIPPortClassifier13_DTag = NDIS_STRING_CONST("IPPortClassifier13_DTag"); 604 NDIS_STRING STRIPPortClassifier14_DTag = NDIS_STRING_CONST("IPPortClassifier14_DTag"); 605 NDIS_STRING STRIPPortClassifier15_DTag = NDIS_STRING_CONST("IPPortClassifier15_DTag"); 606 607 /*----------------------------- 608 Rx Data Filter parameters 609 -----------------------------*/ 610 NDIS_STRING STRRxDataFiltersEnabled = NDIS_STRING_CONST("RxDataFilters_Enabled"); 611 NDIS_STRING STRRxDataFiltersDefaultAction = NDIS_STRING_CONST("RxDataFilters_DefaultAction"); 612 613 NDIS_STRING STRRxDataFiltersFilter1Offset = NDIS_STRING_CONST("RxDataFilters_Filter1Offset"); 614 NDIS_STRING STRRxDataFiltersFilter1Mask = NDIS_STRING_CONST("RxDataFilters_Filter1Mask"); 615 NDIS_STRING STRRxDataFiltersFilter1Pattern = NDIS_STRING_CONST("RxDataFilters_Filter1Pattern"); 616 617 NDIS_STRING STRRxDataFiltersFilter2Offset = NDIS_STRING_CONST("RxDataFilters_Filter2Offset"); 618 NDIS_STRING STRRxDataFiltersFilter2Mask = NDIS_STRING_CONST("RxDataFilters_Filter2Mask"); 619 NDIS_STRING STRRxDataFiltersFilter2Pattern = NDIS_STRING_CONST("RxDataFilters_Filter2Pattern"); 620 621 NDIS_STRING STRRxDataFiltersFilter3Offset = NDIS_STRING_CONST("RxDataFilters_Filter3Offset"); 622 NDIS_STRING STRRxDataFiltersFilter3Mask = NDIS_STRING_CONST("RxDataFilters_Filter3Mask"); 623 NDIS_STRING STRRxDataFiltersFilter3Pattern = NDIS_STRING_CONST("RxDataFilters_Filter3Pattern"); 624 625 NDIS_STRING STRRxDataFiltersFilter4Offset = NDIS_STRING_CONST("RxDataFilters_Filter4Offset"); 626 NDIS_STRING STRRxDataFiltersFilter4Mask = NDIS_STRING_CONST("RxDataFilters_Filter4Mask"); 627 NDIS_STRING STRRxDataFiltersFilter4Pattern = NDIS_STRING_CONST("RxDataFilters_Filter4Pattern"); 628 629 630 NDIS_STRING STRReAuthActiveTimeout = NDIS_STRING_CONST( "ReAuthActiveTimeout" ); 631 632 /*--------------------------- 633 Measurement parameters 634 -----------------------------*/ 635 NDIS_STRING STRMeasurTrafficThreshold = NDIS_STRING_CONST( "MeasurTrafficThreshold" ); 636 NDIS_STRING STRMeasurMaxDurationOnNonServingChannel = NDIS_STRING_CONST( "MeasurMaxDurationOnNonServingChannel" ); 637 638 /*--------------------------- 639 XCC Manager parameters 640 -----------------------------*/ 641 #ifdef XCC_MODULE_INCLUDED 642 NDIS_STRING STRXCCModeEnabled = NDIS_STRING_CONST( "XCCModeEnabled" ); 643 #endif 644 645 NDIS_STRING STRXCCTestIgnoreDeAuth0 = NDIS_STRING_CONST( "XCCTestRogeAP" ); 646 647 /*-----------------------------------*/ 648 /* EEPROM-less support */ 649 /*-----------------------------------*/ 650 NDIS_STRING STREEPROMlessModeSupported = NDIS_STRING_CONST( "EEPROMlessModeSupported" ); 651 NDIS_STRING STRstationMacAddress = NDIS_STRING_CONST("dot11StationID"); 652 653 654 /*-----------------------------------*/ 655 /* INI file to configuration */ 656 /*-----------------------------------*/ 657 658 NDIS_STRING SendINIBufferToUser = NDIS_STRING_CONST("SendINIBufferToUserMode"); 659 660 /*------------------------------------------- 661 RSSI/SNR Weights for Average calculations 662 --------------------------------------------*/ 663 664 NDIS_STRING STRRssiBeaconAverageWeight = NDIS_STRING_CONST("RssiBeaconAverageWeight"); 665 NDIS_STRING STRRssiPacketAverageWeight = NDIS_STRING_CONST("RssiPacketAverageWeight"); 666 NDIS_STRING STRSnrBeaconAverageWeight = NDIS_STRING_CONST("SnrBeaconAverageWeight"); 667 NDIS_STRING STRSnrPacketAverageWeight = NDIS_STRING_CONST("SnrPacketAverageWeight"); 668 669 /*-----------------------------------*/ 670 /* Scan concentrator parameters */ 671 /*-----------------------------------*/ 672 NDIS_STRING STRMinimumDurationBetweenOsScans = NDIS_STRING_CONST( "MinimumDurationBetweenOsScans" ); 673 NDIS_STRING STRDfsPassiveDwellTimeMs = NDIS_STRING_CONST( "DfsPassiveDwellTimeMs" ); 674 NDIS_STRING STRScanPushMode = NDIS_STRING_CONST( "ScanPushMode" ); 675 676 NDIS_STRING STRScanResultAging = NDIS_STRING_CONST( "ScanResultAging" ); 677 NDIS_STRING STRScanCncnRssiThreshold = NDIS_STRING_CONST( "ScanCncnRssiThreshold" ); 678 679 NDIS_STRING STRParseWSCInBeacons = NDIS_STRING_CONST( "ParseWSCInBeacons" ); 680 681 /*-----------------------------------*/ 682 /* Current BSS parameters */ 683 /*-----------------------------------*/ 684 NDIS_STRING STRNullDataKeepAliveDefaultPeriod = NDIS_STRING_CONST("NullDataKeepAliveDefaultPeriod"); 685 686 /*-----------------------------------*/ 687 /* Context-Engine parameters */ 688 /*-----------------------------------*/ 689 NDIS_STRING STRContextSwitchRequired = NDIS_STRING_CONST("ContextSwitchRequired"); 690 691 /*-----------------------------------*/ 692 /* Radio parameters */ 693 /*-----------------------------------*/ 694 NDIS_STRING STRTXBiPReferencePDvoltage_2_4G = NDIS_STRING_CONST("TXBiPReferencePDvoltage_2_4G"); 695 NDIS_STRING STRTxBiPReferencePower_2_4G = NDIS_STRING_CONST("TxBiPReferencePower_2_4G"); 696 NDIS_STRING STRTxBiPOffsetdB_2_4G = NDIS_STRING_CONST("TxBiPOffsetdB_2_4G"); 697 NDIS_STRING STRTxPerRatePowerLimits_2_4G_Normal = NDIS_STRING_CONST("TxPerRatePowerLimits_2_4G_Normal"); 698 NDIS_STRING STRTxPerRatePowerLimits_2_4G_Degraded = NDIS_STRING_CONST("TxPerRatePowerLimits_2_4G_Degraded"); 699 NDIS_STRING STRTxPerRatePowerLimits_2_4G_Extreme = NDIS_STRING_CONST("STRTxPerRatePowerLimits_2_4G_Extreme"); 700 NDIS_STRING STRTxPerChannelPowerLimits_2_4G_11b = NDIS_STRING_CONST("TxPerChannelPowerLimits_2_4G_11b"); 701 NDIS_STRING STRTxPerChannelPowerLimits_2_4G_OFDM = NDIS_STRING_CONST("TxPerChannelPowerLimits_2_4G_OFDM"); 702 NDIS_STRING STRTxPDVsRateOffsets_2_4G = NDIS_STRING_CONST("TxPDVsRateOffsets_2_4G"); 703 NDIS_STRING STRTxIbiasTable_2_4G = NDIS_STRING_CONST("TxIbiasTable_2_4G"); 704 NDIS_STRING STRRxFemInsertionLoss_2_4G = NDIS_STRING_CONST("RxFemInsertionLoss_2_4G"); 705 706 NDIS_STRING STRDegradedLowToNormalThr_2_4G = NDIS_STRING_CONST("DegradedLowToNormalThr_2_4G"); 707 NDIS_STRING STRNormalToDegradedHighThr_2_4G = NDIS_STRING_CONST("NormalToDegradedHighThr_2_4G"); 708 709 NDIS_STRING STRDegradedLowToNormalThr_5G = NDIS_STRING_CONST("DegradedLowToNormalThr_5G"); 710 NDIS_STRING STRNormalToDegradedHighThr_5G = NDIS_STRING_CONST("NormalToDegradedHighThr_5G"); 711 712 NDIS_STRING STRRxTraceInsertionLoss_2_4G = NDIS_STRING_CONST("RxTraceInsertionLoss_2_4G"); 713 NDIS_STRING STRTXTraceLoss_2_4G = NDIS_STRING_CONST("TXTraceLoss_2_4G"); 714 NDIS_STRING STRRxRssiAndProcessCompensation_2_4G = NDIS_STRING_CONST("RxRssiAndProcessCompensation_2_4G"); 715 NDIS_STRING STRTXBiPReferencePDvoltage_5G = NDIS_STRING_CONST("TXBiPReferencePDvoltage_5G"); 716 NDIS_STRING STRTxBiPReferencePower_5G = NDIS_STRING_CONST("TxBiPReferencePower_5G"); 717 NDIS_STRING STRTxBiPOffsetdB_5G = NDIS_STRING_CONST("TxBiPOffsetdB_5G"); 718 719 NDIS_STRING STRTxPerRatePowerLimits_5G_Normal = NDIS_STRING_CONST("TxPerRatePowerLimits_5G_Normal"); 720 NDIS_STRING STRTxPerRatePowerLimits_5G_Degraded = NDIS_STRING_CONST("TxPerRatePowerLimits_5G_Degraded"); 721 NDIS_STRING STRTxPerRatePowerLimits_5G_Extreme = NDIS_STRING_CONST("TxPerRatePowerLimits_5G_Extreme"); 722 723 NDIS_STRING STRTxPerChannelPowerLimits_5G_OFDM = NDIS_STRING_CONST("TxPerChannelPowerLimits_5G_OFDM"); 724 NDIS_STRING STRTxPDVsRateOffsets_5G = NDIS_STRING_CONST("TxPDVsRateOffsets_5G"); 725 NDIS_STRING STRTxIbiasTable_5G = NDIS_STRING_CONST("TxIbiasTable_5G"); 726 NDIS_STRING STRRxFemInsertionLoss_5G = NDIS_STRING_CONST("RxFemInsertionLoss_5G"); 727 NDIS_STRING STRRxTraceInsertionLoss_5G = NDIS_STRING_CONST("RxTraceInsertionLoss_5G"); 728 NDIS_STRING STRTXTraceLoss_5G = NDIS_STRING_CONST("TXTraceLoss_5G"); 729 NDIS_STRING STRRxRssiAndProcessCompensation_5G = NDIS_STRING_CONST("RxRssiAndProcessCompensation_5G"); 730 NDIS_STRING STRFRefClock = NDIS_STRING_CONST("STRFRefClock"); 731 NDIS_STRING STRFRefClockSettingTime = NDIS_STRING_CONST("STRFRefClockSettingTime"); 732 NDIS_STRING STRFRefClockStatus = NDIS_STRING_CONST("FRefClockStatus"); 733 NDIS_STRING STRTXBiPFEMAutoDetect = NDIS_STRING_CONST("TXBiPFEMAutoDetect"); 734 NDIS_STRING STRTXBiPFEMManufacturer = NDIS_STRING_CONST("TXBiPFEMManufacturer"); 735 NDIS_STRING STRClockValidOnWakeup = NDIS_STRING_CONST("ClockValidOnWakeup"); 736 NDIS_STRING STRDC2DCMode = NDIS_STRING_CONST("DC2DCMode"); 737 NDIS_STRING STRSingle_Dual_Band_Solution = NDIS_STRING_CONST("Single_Dual_Band_Solution"); 738 NDIS_STRING STRSettings = NDIS_STRING_CONST("Settings"); 739 740 NDIS_STRING STRTxPerChannelPowerCompensation_2_4G = NDIS_STRING_CONST("TxPerChannelPowerCompensation_2_4G"); 741 NDIS_STRING STRTxPerChannelPowerCompensation_5G_OFDM = NDIS_STRING_CONST("TxPerChannelPowerCompensation_5G_OFDM"); 742 743 /*-----------------------------------*/ 744 /* Driver-Main parameters */ 745 /*-----------------------------------*/ 746 NDIS_STRING STRWlanDrvThreadPriority = NDIS_STRING_CONST("WlanDrvThreadPriority"); 747 NDIS_STRING STRBusDrvThreadPriority = NDIS_STRING_CONST("BusDrvThreadPriority"); 748 NDIS_STRING STRSdioBlkSizeShift = NDIS_STRING_CONST("SdioBlkSizeShift"); 749 750 751 /*-----------------------------------*/ 752 /* Roaming parameters */ 753 /*-----------------------------------*/ 754 NDIS_STRING STRRoamingOperationalMode = NDIS_STRING_CONST("RoamingOperationalMode"); 755 NDIS_STRING STRSendTspecInReassPkt = NDIS_STRING_CONST("SendTspecInReassPkt"); 756 757 /*-----------------------------------*/ 758 /* FM Coexistence parameters */ 759 /*-----------------------------------*/ 760 NDIS_STRING STRFmCoexEnable = NDIS_STRING_CONST("FmCoexuEnable"); 761 NDIS_STRING STRFmCoexSwallowPeriod = NDIS_STRING_CONST("FmCoexuSwallowPeriod"); 762 NDIS_STRING STRFmCoexNDividerFrefSet1 = NDIS_STRING_CONST("FmCoexuNDividerFrefSet1"); 763 NDIS_STRING STRFmCoexNDividerFrefSet2 = NDIS_STRING_CONST("FmCoexuNDividerFrefSet2"); 764 NDIS_STRING STRFmCoexMDividerFrefSet1 = NDIS_STRING_CONST("FmCoexuMDividerFrefSet1"); 765 NDIS_STRING STRFmCoexMDividerFrefSet2 = NDIS_STRING_CONST("FmCoexuMDividerFrefSet2"); 766 NDIS_STRING STRFmCoexPllStabilizationTime = NDIS_STRING_CONST("FmCoexuPllStabilizationTime"); 767 NDIS_STRING STRFmCoexLdoStabilizationTime = NDIS_STRING_CONST("FmCoexuLdoStabilizationTime"); 768 NDIS_STRING STRFmCoexDisturbedBandMargin = NDIS_STRING_CONST("FmCoexuDisturbedBandMargin"); 769 NDIS_STRING STRFmCoexSwallowClkDif = NDIS_STRING_CONST("FmCoexSwallowClkDif"); 770 771 /*----------------------------------------*/ 772 /* Rate Management Parameters */ 773 /*----------------------------------------*/ 774 775 776 NDIS_STRING STRRateMngRateRetryScore = NDIS_STRING_CONST("RateMngRateRetryScore"); 777 NDIS_STRING STRRateMngPerAdd = NDIS_STRING_CONST("RateMngPerAdd"); 778 NDIS_STRING STRRateMngPerTh1 = NDIS_STRING_CONST("RateMngPerTh1"); 779 NDIS_STRING STRRateMngPerTh2 = NDIS_STRING_CONST("RateMngPerTh2"); 780 NDIS_STRING STRRateMngMaxPer = NDIS_STRING_CONST("RateMngMaxPer"); 781 NDIS_STRING STRRateMngInverseCuriosityFactor = NDIS_STRING_CONST("RateMngInverseCuriosityFactor"); 782 NDIS_STRING STRRateMngTxFailLowTh = NDIS_STRING_CONST("RateMngTxFailLowTh"); 783 NDIS_STRING STRRateMngTxFailHighTh = NDIS_STRING_CONST("RateMngTxFailHighTh"); 784 NDIS_STRING STRRateMngPerAlphaShift = NDIS_STRING_CONST("RateMngPerAlphaShift"); 785 NDIS_STRING STRRateMngPerAddShift = NDIS_STRING_CONST("RateMngPerAddShift"); 786 NDIS_STRING STRRateMngPerBeta1Shift = NDIS_STRING_CONST("RateMngPerBeta1Shift"); 787 NDIS_STRING STRRateMngPerBeta2Shift = NDIS_STRING_CONST("RateMngPerBeta2Shift"); 788 NDIS_STRING STRRateMngRateCheckUp = NDIS_STRING_CONST("RateMngRateCheckUp"); 789 NDIS_STRING STRRateMngRateCheckDown = NDIS_STRING_CONST("RateMngRateCheckDown"); 790 NDIS_STRING STRRateMngRateRetryPolicy = NDIS_STRING_CONST("RateMngRateRetryPolicy"); 791 792 NDIS_STRING STRincludeWSCinProbeReq = NDIS_STRING_CONST("IncludeWSCinProbeReq"); 793 794 795 static void parseTwoDigitsSequenceHex (TI_UINT8 *sInString, TI_UINT8 *uOutArray, TI_UINT8 uSize); 796 797 static void regConvertStringtoCoexActivityTable(TI_UINT8 *strCoexActivityTable, TI_UINT32 numOfElements, TCoexActivity *CoexActivityArray, TI_UINT8 strSize); 798 799 static int decryptWEP( TI_INT8* pSrc, TI_INT8* pDst, TI_UINT32 len); 800 static short _btoi ( char *sptr, short slen, int *pi, short base ); 801 static void initValusFromRgstryString( TI_INT8* pSrc, TI_INT8* pDst, TI_UINT32 len); 802 803 804 805 static void readRates(TWlanDrvIfObjPtr pAdapter, TInitTable *pInitTable); 806 static void decryptScanControlTable(TI_UINT8* src, TI_UINT8* dst, USHORT len); 807 808 static TI_UINT32 regReadIntegerTable(TWlanDrvIfObjPtr pAdapter, 809 PNDIS_STRING pParameterName, 810 TI_INT8* pDefaultValue, 811 USHORT defaultLen, 812 TI_UINT8* pUnsignedParameter, 813 TI_INT8* pSignedParameter, 814 TI_UINT32* pEntriesNumber, 815 TI_UINT8 uParameterSize, 816 TI_BOOL bHex); 817 818 static void assignRegValue(TI_UINT32* lValue, PNDIS_CONFIGURATION_PARAMETER ndisParameter); 819 820 static void parse_filter_request(TRxDataFilterRequest* request, TI_UINT8 offset, char * mask, TI_UINT8 maskLength, char * pattern, TI_UINT8 patternLength); 821 822 static void regReadIntegerParameter ( 823 TWlanDrvIfObjPtr pAdapter, 824 PNDIS_STRING pParameterName, 825 TI_UINT32 defaultValue, 826 TI_UINT32 minValue, 827 TI_UINT32 maxValue, 828 TI_UINT8 parameterSize, 829 TI_UINT8* pParameter); 830 831 static void regReadIntegerParameterHex ( 832 TWlanDrvIfObjPtr pAdapter, 833 PNDIS_STRING pParameterName, 834 TI_UINT32 defaultValue, 835 TI_UINT32 minValue, 836 TI_UINT32 maxValue, 837 TI_UINT8 defaultSize, 838 TI_UINT8 * pParameter); 839 840 static void regReadStringParameter ( 841 TWlanDrvIfObjPtr pAdapter, 842 PNDIS_STRING pParameterName, 843 TI_INT8* pDefaultValue, 844 USHORT defaultLen, 845 TI_UINT8* pParameter, 846 void* pParameterSize); 847 848 static void regReadWepKeyParameter (TWlanDrvIfObjPtr pAdapter, TI_UINT8 *pKeysStructure, TI_UINT8 defaultKeyId); 849 850 851 /* ---------------------------------------------------------------------------*/ 852 /* Converts a string to a signed int. Assumes base 10. Assumes positive*/ 853 /* number*/ 854 /**/ 855 /* Returns value on success, -1 on failure*/ 856 /**/ 857 /* ---------------------------------------------------------------------------*/ 858 static TI_UINT32 tiwlnstrtoi (char *num, TI_UINT32 length) 859 { 860 TI_UINT32 value; 861 862 if(num == NULL || length == 0 ) 863 { 864 return 0; 865 } 866 867 for(value=0;length&&*num;num++,length--) 868 { 869 if(*num<='9'&&*num>= '0') 870 { 871 value=(value*10)+(*num - '0'); 872 } 873 else { /* Out of range*/ 874 break; 875 } 876 } 877 return value; 878 } 879 880 /* ---------------------------------------------------------------------------*/ 881 /* Converts a string to a signed int. Assumes base 16. Assumes positive*/ 882 /* number*/ 883 /**/ 884 /* Returns value on success, -1 on failure*/ 885 /**/ 886 /* ---------------------------------------------------------------------------*/ 887 static TI_UINT32 tiwlnstrtoi_hex (TI_UINT8 *num, TI_UINT32 length) 888 { 889 TI_UINT32 value = 0; 890 891 if (num == NULL || length == 0) 892 { 893 return 0; 894 } 895 896 for (value = 0; length && *num; num++, length--) 897 { 898 if (*num <= '9' && *num >= '0') 899 { 900 value = (value * 16) + (*num - '0'); 901 } 902 else if (*num <= 'f' && *num >= 'a') 903 { 904 value = (value * 16) + (*num - (TI_UINT8)'a' + 10); 905 } 906 else if (*num <= 'F' && *num >= 'A') 907 { 908 value = (value * 16) + (*num - (TI_UINT8)'A' + 10); 909 } 910 else 911 { /* Out of range*/ 912 break; 913 } 914 } 915 916 return value; 917 } 918 919 920 /*----------------------------------------------------------------------------- 921 922 Routine Name: 923 924 regFillInitTable 925 926 Routine Description: 927 928 929 Arguments: 930 931 932 Return Value: 933 934 None 935 936 -----------------------------------------------------------------------------*/ 937 void 938 regFillInitTable( 939 TWlanDrvIfObjPtr pAdapter, 940 void* pInitTable 941 ) 942 { 943 static TI_UINT8 *ClsfrIp = "0a 03 01 c9"; 944 static TI_UINT8 ClsfrIpString[16]; 945 static TI_UINT8 ClsfrIpStringSize; 946 947 /* EEPROM-less : MAC address */ 948 static TI_UINT8 regMACstrLen = REG_MAC_ADDR_STR_LEN; 949 static TI_UINT8 staMACAddress[REG_MAC_ADDR_STR_LEN]; 950 static TI_UINT8 defStaMacAddress0[]= "10 01 02 03 04 05"; 951 static TI_UINT8 regArpIpStrLen = REG_ARP_IP_ADDR_STR_LEN; 952 static TI_UINT8 staArpIpAddress[REG_ARP_IP_ADDR_STR_LEN]; 953 static TI_UINT8 defArpIpAddress[] = "0a 02 0a b7" ; /*value by default*/ 954 955 /*defaults values for beacon IE table*/ 956 /*TI_UINT8 defBeaconIETableSize = 0 ;*/ 957 static TI_UINT8 defBeaconIETable[] = "00 01 01 01 32 01 2a 01 03 01 06 01 07 01 20 01 25 01 23 01 30 01 28 01 2e 01 3d 01 85 01 dd 01 00 52 f2 02 00 01"; 958 /*TI_UINT8 tmpIeTable[BEACON_FILTER_TABLE_MAX_SIZE] ;*/ 959 static TI_UINT8 tmpIeTableSize = 37; 960 static TI_UINT8 strSize = 113; 961 962 /* defaults values for CoexActivity table*/ 963 /* example: WLAN(0), BT_VOICE(0), defPrio(20), raisePrio(25), minServ(0), maxServ(1ms) */ 964 static TI_UINT8 defCoexActivityTable[] = ""; /* Sample "01 00 14 19 0000 0001 " */ 965 966 static TI_UINT32 filterOffset = 0; 967 static char filterMask[16]; 968 static TI_UINT8 filterMaskLength; 969 static char filterPattern[16]; 970 static TI_UINT8 filterPatternLength; 971 972 static USHORT tableLen = 0; 973 static USHORT loopIndex = 0; 974 static TI_UINT8 ScanControlTable24Tmp[2 * NUM_OF_CHANNELS_24]; 975 static TI_UINT8 ScanControlTable5Tmp[2 * NUM_OF_CHANNELS_5]; 976 static TI_UINT8 ScanControlTable24Def[2* NUM_OF_CHANNELS_24] = "FFFFFFFFFFFFFFFFFFFFFFFFFFFF"; 977 static TI_UINT8 ScanControlTable5Def[2 * NUM_OF_CHANNELS_5] = "FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000000000000000000000000000000000000000000000000000000000000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000000000FF000000FF000000FF000000FF000000FF000000000000000000000000000000"; 978 static TI_UINT8 reportSeverityTableDefaults[REPORT_SEVERITY_MAX+1] = "00001101"; 979 static TI_UINT16 reportSeverityTableLen; 980 981 static TI_UINT32 uWiFiMode = 0; 982 static TI_UINT32 uPerformanceBoostMode = PERFORMANCE_BOOST_MODE_DEF; 983 TI_INT8 SRConfigParams[MAX_SMART_REFLEX_PARAM]; 984 static TI_UINT32 len,TempSRCnt; 985 static TI_UINT8 uTempRatePolicyList[RATE_MNG_MAX_RETRY_POLICY_PARAMS_LEN]; 986 static TI_UINT32 uTempRatePolicyCnt=0; 987 988 TInitTable *p = (TInitTable *)pInitTable; 989 TI_UINT32 uTempEntriesCount, uIndex; 990 991 PRINT(DBG_REGISTRY_LOUD, "TIWL: Reading InitTable parameters\n"); 992 993 if (!p) 994 return; 995 996 /* Reset structure */ 997 NdisZeroMemory(p, sizeof(TInitTable)); 998 999 regReadIntegerParameter(pAdapter, &STRincludeWSCinProbeReq, 1000 WSC_INCLUDE_IN_BEACON_DEF,WSC_INCLUDE_IN_BEACON_MIN,WSC_INCLUDE_IN_BEACON_MAX, 1001 sizeof p->siteMgrInitParams.includeWSCinProbeReq, 1002 (TI_UINT8*)&p->siteMgrInitParams.includeWSCinProbeReq); 1003 1004 /* Beacon filter*/ 1005 /*is the desired state ENABLED ?*/ 1006 regReadIntegerParameter(pAdapter, &STRBeaconFilterDesiredState, 1007 DEF_BEACON_FILTER_ENABLE_VALUE, MIN_BEACON_FILTER_ENABLE_VALUE, MAX_BEACON_FILTER_ENABLE_VALUE, 1008 sizeof p->siteMgrInitParams.beaconFilterParams.desiredState, 1009 (TI_UINT8*)&p->siteMgrInitParams.beaconFilterParams.desiredState ); 1010 1011 regReadIntegerParameter(pAdapter, &STRBeaconFilterStored, 1012 DEF_NUM_STORED_FILTERS, MIN_NUM_STORED_FILTERS, MAX_NUM_STORED_FILTERS, 1013 sizeof p->siteMgrInitParams.beaconFilterParams.numOfStored, 1014 (TI_UINT8*)&p->siteMgrInitParams.beaconFilterParams.numOfStored ); 1015 1016 /*Read the beacon filter IE table*/ 1017 /*Read the size of the table*/ 1018 regReadIntegerParameter(pAdapter, &STRBeaconIETableSize, 1019 BEACON_FILTER_IE_TABLE_DEF_SIZE, BEACON_FILTER_IE_TABLE_MIN_SIZE, 1020 BEACON_FILTER_IE_TABLE_MAX_SIZE, 1021 sizeof p->siteMgrInitParams.beaconFilterParams.IETableSize, 1022 (TI_UINT8*)(&p->siteMgrInitParams.beaconFilterParams.IETableSize) ); 1023 1024 tmpIeTableSize = p->siteMgrInitParams.beaconFilterParams.IETableSize; 1025 1026 /*Read the number of elements in the table ( this is because 221 has 5 values following it )*/ 1027 regReadIntegerParameter(pAdapter, &STRBeaconIETableNumOfElem, 1028 DEF_BEACON_FILTER_IE_TABLE_NUM, BEACON_FILTER_IE_TABLE_MIN_NUM, 1029 BEACON_FILTER_IE_TABLE_MAX_NUM, 1030 sizeof p->siteMgrInitParams.beaconFilterParams.numOfElements, 1031 (TI_UINT8*)(&p->siteMgrInitParams.beaconFilterParams.numOfElements) ); 1032 1033 /*printk("\n OsRgstr tmpIeTableSize = %d numOfElems = %d" , tmpIeTableSize , p->siteMgrInitParams.beaconFilterParams.numOfElements) ;*/ 1034 strSize = 3 * tmpIeTableSize - 1 ; /*includes spaces between bytes*/ 1035 if ( ( tmpIeTableSize > 0 ) && ( tmpIeTableSize <= BEACON_FILTER_IE_TABLE_MAX_SIZE) ) 1036 { 1037 TI_UINT8 *staBeaconFilterIETable; 1038 1039 staBeaconFilterIETable = os_memoryAlloc(pAdapter, BEACON_FILTER_STRING_MAX_LEN); 1040 if (staBeaconFilterIETable) { 1041 regReadStringParameter(pAdapter, &STRBeaconIETable , 1042 (TI_INT8*)(defBeaconIETable), strSize, 1043 (TI_UINT8*)staBeaconFilterIETable, &strSize); 1044 1045 parseTwoDigitsSequenceHex (staBeaconFilterIETable, (TI_UINT8*)&p->siteMgrInitParams.beaconFilterParams.IETable[0], tmpIeTableSize); 1046 os_memoryFree(pAdapter, staBeaconFilterIETable, BEACON_FILTER_STRING_MAX_LEN); 1047 } 1048 } 1049 1050 /* MAC ADDRESSES FILTER*/ 1051 regReadIntegerParameter(pAdapter, &STRFilterEnabled, 1052 DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE, 1053 MAX_FILTER_ENABLE_VALUE, 1054 sizeof p->twdInitParams.tMacAddrFilter.isFilterEnabled, 1055 (TI_UINT8*) &p->twdInitParams.tMacAddrFilter.isFilterEnabled); 1056 1057 regReadIntegerParameter(pAdapter, &STRnumGroupAddrs, 1058 NUM_GROUP_ADDRESS_VALUE_DEF, NUM_GROUP_ADDRESS_VALUE_MIN, 1059 NUM_GROUP_ADDRESS_VALUE_MAX, 1060 sizeof p->twdInitParams.tMacAddrFilter.numOfMacAddresses, 1061 (TI_UINT8*) &p->twdInitParams.tMacAddrFilter.numOfMacAddresses); 1062 1063 /*printk("\nOsRgstry Num Of Group Addr:%d \n" , p->twdInitParams.tMacAddrFilter.numOfMacAddresses) ;*/ 1064 { 1065 TI_UINT8 defStaMacAddress1[]= "11 11 12 13 14 15"; 1066 TI_UINT8 defStaMacAddress2[]= "12 21 22 23 24 25"; 1067 TI_UINT8 defStaMacAddress3[]= "13 31 32 33 34 35"; 1068 TI_UINT8 defStaMacAddress4[]= "14 41 42 43 44 45"; 1069 TI_UINT8 defStaMacAddress5[]= "15 51 52 53 54 55"; 1070 TI_UINT8 defStaMacAddress6[]= "16 61 62 63 64 65"; 1071 TI_UINT8 defStaMacAddress7[]= "17 71 72 73 74 75"; 1072 int macIndex ; /*used for group address filtering*/ 1073 1074 macIndex = p->twdInitParams.tMacAddrFilter.numOfMacAddresses - 1; 1075 switch( macIndex ) 1076 { 1077 case 7: 1078 { 1079 1080 regReadStringParameter(pAdapter, &STRGroup_addr7, 1081 (TI_INT8*)(defStaMacAddress7), REG_MAC_ADDR_STR_LEN, 1082 (TI_UINT8*)staMACAddress, ®MACstrLen); 1083 1084 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[7], MAC_ADDR_LEN); 1085 --macIndex; 1086 } 1087 1088 case 6: 1089 { 1090 1091 regReadStringParameter(pAdapter, &STRGroup_addr6, 1092 (TI_INT8*)(defStaMacAddress6), REG_MAC_ADDR_STR_LEN, 1093 (TI_UINT8*)staMACAddress, ®MACstrLen); 1094 1095 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[6], MAC_ADDR_LEN); 1096 --macIndex; 1097 } 1098 1099 case 5: 1100 { 1101 1102 regReadStringParameter(pAdapter, &STRGroup_addr5, 1103 (TI_INT8*)(defStaMacAddress5), REG_MAC_ADDR_STR_LEN, 1104 (TI_UINT8*)staMACAddress, ®MACstrLen); 1105 1106 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[5], MAC_ADDR_LEN); 1107 --macIndex; 1108 } 1109 1110 case 4: 1111 { 1112 1113 regReadStringParameter(pAdapter, &STRGroup_addr4, 1114 (TI_INT8*)(defStaMacAddress4), REG_MAC_ADDR_STR_LEN, 1115 (TI_UINT8*)staMACAddress, ®MACstrLen); 1116 1117 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[4], MAC_ADDR_LEN); 1118 --macIndex; 1119 } 1120 1121 case 3: 1122 { 1123 1124 regReadStringParameter(pAdapter, &STRGroup_addr3, 1125 (TI_INT8*)(defStaMacAddress3), REG_MAC_ADDR_STR_LEN, 1126 (TI_UINT8*)staMACAddress, ®MACstrLen); 1127 1128 parseTwoDigitsSequenceHex (staMACAddress, (TI_UINT8*)&p->twdInitParams.tMacAddrFilter.macAddrTable[3], MAC_ADDR_LEN); 1129 --macIndex; 1130 } 1131 1132 case 2: 1133 { 1134 1135 regReadStringParameter(pAdapter, &STRGroup_addr2, 1136 (TI_INT8*)(defStaMacAddress2), REG_MAC_ADDR_STR_LEN, 1137 (TI_UINT8*)staMACAddress, ®MACstrLen); 1138 1139 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[2], MAC_ADDR_LEN); 1140 --macIndex; 1141 } 1142 1143 case 1: 1144 { 1145 1146 regReadStringParameter(pAdapter, &STRGroup_addr1, 1147 (TI_INT8*)(defStaMacAddress1), REG_MAC_ADDR_STR_LEN, 1148 (TI_UINT8*)staMACAddress, ®MACstrLen); 1149 1150 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[1], MAC_ADDR_LEN); 1151 --macIndex; 1152 } 1153 1154 case 0: 1155 { 1156 1157 regReadStringParameter(pAdapter, &STRGroup_addr0, 1158 (TI_INT8*)(defStaMacAddress0), REG_MAC_ADDR_STR_LEN, 1159 (TI_UINT8*)staMACAddress, ®MACstrLen); 1160 1161 parseTwoDigitsSequenceHex (staMACAddress,(TI_UINT8*) &p->twdInitParams.tMacAddrFilter.macAddrTable[0], MAC_ADDR_LEN); 1162 } 1163 1164 default: 1165 { 1166 1167 } 1168 } 1169 } 1170 1171 /************************/ 1172 /* Read severity table */ 1173 /**********************/ 1174 1175 regReadStringParameter(pAdapter, &STR_ReportSeverityTable, 1176 (TI_INT8*)reportSeverityTableDefaults, 1177 (TI_UINT8)REPORT_SEVERITY_MAX, 1178 (TI_UINT8*)p->tReport.aSeverityTable, 1179 (TI_UINT8*)&reportSeverityTableLen); 1180 1181 1182 /***********************/ 1183 /* Read modules table */ 1184 /*********************/ 1185 { 1186 TI_UINT8 *reportModuleTableDefaults; 1187 TI_UINT16 reportModuleTableLen; 1188 1189 reportModuleTableDefaults = os_memoryAlloc(pAdapter, REPORT_FILES_NUM); 1190 if (!reportModuleTableDefaults) 1191 return; 1192 1193 /*set all report modules.as default*/ 1194 memset(reportModuleTableDefaults, '1', REPORT_FILES_NUM ); 1195 1196 regReadStringParameter(pAdapter, &STR_ReportModuleTable, 1197 (TI_INT8*)reportModuleTableDefaults, 1198 (TI_UINT8)REPORT_FILES_NUM, 1199 (TI_UINT8*)p->tReport.aFileEnable, 1200 (TI_UINT8*)&reportModuleTableLen); 1201 os_memoryFree(pAdapter, reportModuleTableDefaults, REPORT_FILES_NUM); 1202 } 1203 /* rate Policy Params */ 1204 regReadIntegerParameter(pAdapter, &STRRatePolicyUserShortRetryLimit, 1205 CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_DEF, 1206 CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_MIN, 1207 CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_MAX, 1208 sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy.shortRetryLimit, 1209 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataTxRatePolicy.shortRetryLimit); 1210 1211 regReadIntegerParameter(pAdapter, &STRRatePolicyUserLongRetryLimit, 1212 CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_DEF, 1213 CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_MIN, 1214 CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_MAX, 1215 sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy.longRetryLimit, 1216 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataTxRatePolicy.longRetryLimit); 1217 1218 regReadIntegerParameterHex (pAdapter, &STRRatePolicyUserEnabledRatesMaskCck, 1219 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_CCK_DEF, 1220 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MIN, 1221 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MAX, 1222 sizeof p->ctrlDataInitParams.policyEnabledRatesMaskCck, 1223 (TI_UINT8*)&p->ctrlDataInitParams.policyEnabledRatesMaskCck); 1224 1225 regReadIntegerParameterHex (pAdapter, &STRRatePolicyUserEnabledRatesMaskOfdm, 1226 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_OFDM_DEF, 1227 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MIN, 1228 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MAX, 1229 sizeof p->ctrlDataInitParams.policyEnabledRatesMaskOfdm, 1230 (TI_UINT8*)&p->ctrlDataInitParams.policyEnabledRatesMaskOfdm); 1231 1232 regReadIntegerParameterHex (pAdapter, &STRRatePolicyUserEnabledRatesMaskOfdmA, 1233 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_OFDMA_DEF, 1234 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MIN, 1235 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MAX, 1236 sizeof p->ctrlDataInitParams.policyEnabledRatesMaskOfdmA, 1237 (TI_UINT8*)&p->ctrlDataInitParams.policyEnabledRatesMaskOfdmA); 1238 1239 regReadIntegerParameterHex (pAdapter, &STRRatePolicyUserEnabledRatesMaskOfdmN, 1240 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_OFDMN_DEF, 1241 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MIN, 1242 CTRL_DATA_RATE_POLICY_USER_EN_DIS_MASK_MAX, 1243 sizeof p->ctrlDataInitParams.policyEnabledRatesMaskOfdmN, 1244 (TI_UINT8*)&p->ctrlDataInitParams.policyEnabledRatesMaskOfdmN); 1245 1246 1247 regReadIntegerParameter(pAdapter, &STRRxEnergyDetection, 1248 TI_FALSE, TI_FALSE, TI_TRUE, 1249 sizeof p->twdInitParams.tGeneral.halCtrlRxEnergyDetection, 1250 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlRxEnergyDetection); 1251 1252 regReadIntegerParameter(pAdapter, &STRCh14TelecCca, 1253 TI_FALSE, TI_FALSE, TI_TRUE, 1254 sizeof p->twdInitParams.tGeneral.halCtrlCh14TelecCca, 1255 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlCh14TelecCca); 1256 1257 regReadIntegerParameter(pAdapter, &STRTddCalibrationInterval, 1258 300, 1, 0xFFFFFFFF, 1259 sizeof p->twdInitParams.tGeneral.tddRadioCalTimout, 1260 (TI_UINT8*)&p->twdInitParams.tGeneral.tddRadioCalTimout); 1261 1262 regReadIntegerParameter(pAdapter, &STRCrtCalibrationInterval, 1263 2, 1, 0xFFFFFFFF, 1264 sizeof p->twdInitParams.tGeneral.CrtRadioCalTimout, 1265 (TI_UINT8*)&p->twdInitParams.tGeneral.CrtRadioCalTimout); 1266 1267 regReadIntegerParameter(pAdapter, &STRMacClockRate, 1268 80, 0, 255, 1269 sizeof p->twdInitParams.tGeneral.halCtrlMacClock, 1270 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlMacClock); 1271 1272 regReadIntegerParameter(pAdapter, &STRArmClockRate, 1273 80, 0, 255, 1274 sizeof p->twdInitParams.tGeneral.halCtrlArmClock, 1275 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlArmClock); 1276 1277 regReadIntegerParameter(pAdapter, &STRg80211DraftNumber, 1278 DRAFT_6_AND_LATER, DRAFT_5_AND_EARLIER, DRAFT_6_AND_LATER, 1279 sizeof p->siteMgrInitParams.siteMgrUseDraftNum, 1280 (TI_UINT8*)&p->siteMgrInitParams.siteMgrUseDraftNum); 1281 1282 regReadIntegerParameter(pAdapter, &STRTraceBufferSize, 1283 /*1024, 0, 1024, sizeof(TI_UINT32), */ 1284 16, 16, 16, 1285 sizeof p->twdInitParams.tGeneral.TraceBufferSize, 1286 (TI_UINT8*)&p->twdInitParams.tGeneral.TraceBufferSize); 1287 1288 regReadIntegerParameter(pAdapter, &STRPrintTrace, 1289 TI_FALSE, TI_FALSE, TI_TRUE, 1290 sizeof p->twdInitParams.tGeneral.bDoPrint, 1291 (TI_UINT8*)&p->twdInitParams.tGeneral.bDoPrint); 1292 1293 regReadIntegerParameter(pAdapter, &STRFirmwareDebug, 1294 TI_FALSE, TI_FALSE, TI_TRUE, 1295 sizeof p->twdInitParams.tGeneral.halCtrlFirmwareDebug, 1296 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlFirmwareDebug); 1297 1298 1299 #ifndef TIWLN_WINCE30 1300 regReadIntegerParameter(pAdapter, &STRHwACXAccessMethod, 1301 TWD_HW_ACCESS_METHOD_DEF, TWD_HW_ACCESS_METHOD_MIN, 1302 TWD_HW_ACCESS_METHOD_MAX, 1303 sizeof p->twdInitParams.tGeneral.hwAccessMethod, 1304 (TI_UINT8*)&p->twdInitParams.tGeneral.hwAccessMethod); 1305 #else 1306 /* Slave indirect*/ 1307 p->twdInitParams.tGeneral.hwAccessMethod = 0; 1308 #endif 1309 regReadIntegerParameter(pAdapter, &STRMaxSitesFragCollect, 1310 TWD_SITE_FRAG_COLLECT_DEF, TWD_SITE_FRAG_COLLECT_MIN, 1311 TWD_SITE_FRAG_COLLECT_MAX, 1312 sizeof p->twdInitParams.tGeneral.maxSitesFragCollect, 1313 (TI_UINT8*)&p->twdInitParams.tGeneral.maxSitesFragCollect); 1314 1315 regReadIntegerParameter(pAdapter, &STRBetEnable, 1316 POWER_MGMNT_BET_ENABLE_DEF, POWER_MGMNT_BET_ENABLE_MIN, 1317 POWER_MGMNT_BET_ENABLE_MAX, 1318 sizeof p->PowerMgrInitParams.BetEnable, 1319 (TI_UINT8*)&p->PowerMgrInitParams.BetEnable); 1320 1321 regReadIntegerParameter(pAdapter, &STRBetMaxConsecutive, 1322 POWER_MGMNT_BET_MAX_CONSC_DEF, POWER_MGMNT_BET_MAX_CONSC_MIN, 1323 POWER_MGMNT_BET_MAX_CONSC_MAX, 1324 sizeof p->PowerMgrInitParams.MaximumConsecutiveET, 1325 (TI_UINT8*)&p->PowerMgrInitParams.MaximumConsecutiveET); 1326 1327 /*--------------- Maximal time between full beacon reception ------------------*/ 1328 regReadIntegerParameter(pAdapter, &STRMaxFullBeaconInterval, 1329 POWER_MGMNT_MAX_FULL_BEACON_DEF, POWER_MGMNT_MAX_FULL_BEACON_MIN, 1330 POWER_MGMNT_MAX_FULL_BEACON_MAX, 1331 sizeof p->PowerMgrInitParams.MaximalFullBeaconReceptionInterval, 1332 (TI_UINT8*)&p->PowerMgrInitParams.MaximalFullBeaconReceptionInterval); 1333 1334 regReadIntegerParameter(pAdapter, &STRBetEnableThreshold, 1335 POWER_MGMNT_BET_DISABLE_THRESHOLD_DEF, POWER_MGMNT_BET_DISABLE_THRESHOLD_MIN, 1336 POWER_MGMNT_BET_DISABLE_THRESHOLD_MAX, 1337 sizeof p->PowerMgrInitParams.BetEnableThreshold, 1338 (TI_UINT8*)&p->PowerMgrInitParams.BetEnableThreshold); 1339 1340 regReadIntegerParameter(pAdapter, &STRBetDisableThreshold, 1341 HAL_CTRL_BET_DISABLE_THRESHOLD_DEF, HAL_CTRL_BET_DISABLE_THRESHOLD_MIN, 1342 HAL_CTRL_BET_DISABLE_THRESHOLD_MAX, 1343 sizeof p->PowerMgrInitParams.BetDisableThreshold, 1344 (TI_UINT8*)&p->PowerMgrInitParams.BetDisableThreshold); 1345 1346 regReadIntegerParameter(pAdapter, &STRTxFlashEnable, 1347 TWD_TX_FLASH_ENABLE_DEF, TWD_TX_FLASH_ENABLE_MIN, 1348 TWD_TX_FLASH_ENABLE_MAX, 1349 sizeof p->twdInitParams.tGeneral.TxFlashEnable, 1350 (TI_UINT8*)&p->twdInitParams.tGeneral.TxFlashEnable); 1351 1352 1353 p->twdInitParams.tGeneral.beaconTemplateSize = sizeof(probeRspTemplate_t); 1354 p->twdInitParams.tGeneral.probeRequestTemplateSize = sizeof(probeReqTemplate_t); 1355 p->twdInitParams.tGeneral.probeResponseTemplateSize = sizeof(probeRspTemplate_t); 1356 p->twdInitParams.tGeneral.nullTemplateSize = sizeof(nullDataTemplate_t); 1357 p->twdInitParams.tGeneral.disconnTemplateSize = sizeof(disconnTemplate_t); 1358 p->twdInitParams.tGeneral.PsPollTemplateSize = sizeof(psPollTemplate_t); 1359 p->twdInitParams.tGeneral.qosNullDataTemplateSize = sizeof(QosNullDataTemplate_t); 1360 p->twdInitParams.tGeneral.ArpRspTemplateSize = sizeof(ArpRspTemplate_t); 1361 1362 regReadIntegerParameter(pAdapter, 1363 &STRBeaconRxTimeout, 1364 BCN_RX_TIMEOUT_DEF_VALUE, 1365 BCN_RX_TIMEOUT_MIN_VALUE, 1366 BCN_RX_TIMEOUT_MAX_VALUE, 1367 sizeof p->twdInitParams.tGeneral.BeaconRxTimeout, 1368 (TI_UINT8*)&p->twdInitParams.tGeneral.BeaconRxTimeout); 1369 1370 regReadIntegerParameter(pAdapter, 1371 &STRBroadcastRxTimeout, 1372 BROADCAST_RX_TIMEOUT_DEF_VALUE, 1373 BROADCAST_RX_TIMEOUT_MIN_VALUE, 1374 BROADCAST_RX_TIMEOUT_MAX_VALUE, 1375 sizeof p->twdInitParams.tGeneral.BroadcastRxTimeout, 1376 (TI_UINT8*)&p->twdInitParams.tGeneral.BroadcastRxTimeout); 1377 1378 regReadIntegerParameter(pAdapter, 1379 &STRRxBroadcastInPs, 1380 RX_BROADCAST_IN_PS_DEF_VALUE, 1381 RX_BROADCAST_IN_PS_MIN_VALUE, 1382 RX_BROADCAST_IN_PS_MAX_VALUE, 1383 sizeof p->twdInitParams.tGeneral.RxBroadcastInPs, 1384 (TI_UINT8*)&p->twdInitParams.tGeneral.RxBroadcastInPs); 1385 1386 regReadIntegerParameter(pAdapter, &STRCalibrationChannel2_4, 1387 TWD_CALIBRATION_CHANNEL_2_4_DEF, TWD_CALIBRATION_CHANNEL_2_4_MIN, 1388 TWD_CALIBRATION_CHANNEL_2_4_MAX, 1389 sizeof p->twdInitParams.tGeneral.halCtrlCalibrationChannel2_4, 1390 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlCalibrationChannel2_4); 1391 1392 regReadIntegerParameter(pAdapter, &STRCalibrationChannel5_0, 1393 TWD_CALIBRATION_CHANNEL_5_0_DEF, TWD_CALIBRATION_CHANNEL_5_0_MIN, 1394 TWD_CALIBRATION_CHANNEL_5_0_MAX, 1395 sizeof p->twdInitParams.tGeneral.halCtrlCalibrationChannel5_0, 1396 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlCalibrationChannel5_0); 1397 1398 regReadIntegerParameter(pAdapter, 1399 &STRConsecutivePsPollDeliveryFailureThreshold, 1400 CONSECUTIVE_PS_POLL_FAILURE_DEF, 1401 CONSECUTIVE_PS_POLL_FAILURE_MIN, 1402 CONSECUTIVE_PS_POLL_FAILURE_MAX, 1403 sizeof p->twdInitParams.tGeneral.ConsecutivePsPollDeliveryFailureThreshold, 1404 (TI_UINT8*)&p->twdInitParams.tGeneral.ConsecutivePsPollDeliveryFailureThreshold); 1405 1406 1407 regReadIntegerParameter(pAdapter, &STRdot11RTSThreshold, 1408 TWD_RTS_THRESHOLD_DEF, TWD_RTS_THRESHOLD_MIN, 1409 TWD_RTS_THRESHOLD_MAX, 1410 sizeof p->twdInitParams.tGeneral.halCtrlRtsThreshold, 1411 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlRtsThreshold); 1412 1413 regReadIntegerParameter(pAdapter, &STRRxDisableBroadcast, 1414 TWD_RX_DISABLE_BROADCAST_DEF, TWD_RX_DISABLE_BROADCAST_MIN, 1415 TWD_RX_DISABLE_BROADCAST_MAX, 1416 sizeof p->twdInitParams.tGeneral.halCtrlRxDisableBroadcast, 1417 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlRxDisableBroadcast); 1418 1419 regReadIntegerParameter(pAdapter, &STRRecoveryEnable, 1420 TWD_RECOVERY_ENABLE_DEF, TWD_RECOVERY_ENABLE_MIN, 1421 TWD_RECOVERY_ENABLE_MAX, 1422 sizeof p->twdInitParams.tGeneral.halCtrlRecoveryEnable, 1423 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlRecoveryEnable); 1424 1425 p->healthMonitorInitParams.FullRecoveryEnable = (TI_BOOL)p->twdInitParams.tGeneral.halCtrlRecoveryEnable; 1426 1427 regReadIntegerParameter(pAdapter, &STRdot11FragThreshold, 1428 TWD_FRAG_THRESHOLD_DEF, TWD_FRAG_THRESHOLD_MIN, 1429 TWD_FRAG_THRESHOLD_MAX, 1430 sizeof p->twdInitParams.tGeneral.halCtrlFragThreshold, 1431 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlFragThreshold); 1432 1433 regReadIntegerParameter(pAdapter, &STRdot11MaxTxMSDULifetime, 1434 TWD_MAX_TX_MSDU_LIFETIME_DEF, TWD_MAX_TX_MSDU_LIFETIME_MIN, 1435 TWD_MAX_TX_MSDU_LIFETIME_MAX, 1436 sizeof p->twdInitParams.tGeneral.halCtrlMaxTxMsduLifetime, 1437 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlMaxTxMsduLifetime); 1438 1439 regReadIntegerParameter(pAdapter, &STRdot11MaxReceiveLifetime, 1440 TWD_MAX_RX_MSDU_LIFETIME_DEF, TWD_MAX_RX_MSDU_LIFETIME_MIN, 1441 TWD_MAX_RX_MSDU_LIFETIME_MAX, 1442 sizeof p->twdInitParams.tGeneral.halCtrlMaxRxMsduLifetime, 1443 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlMaxRxMsduLifetime); 1444 1445 regReadIntegerParameter(pAdapter, &STRdot11RateFallBackRetryLimit, 1446 TWD_RATE_FB_RETRY_LIMIT_DEF, TWD_RATE_FB_RETRY_LIMIT_MIN, 1447 TWD_RATE_FB_RETRY_LIMIT_MAX, 1448 sizeof p->twdInitParams.tGeneral.halCtrlRateFallbackRetry, 1449 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlRateFallbackRetry); 1450 1451 regReadIntegerParameter(pAdapter, &STRListenInterval, 1452 TWD_LISTEN_INTERVAL_DEF, TWD_LISTEN_INTERVAL_MIN, 1453 TWD_LISTEN_INTERVAL_MAX, 1454 sizeof p->twdInitParams.tGeneral.halCtrlListenInterval, 1455 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlListenInterval); 1456 1457 regReadIntegerParameter(pAdapter, &STRdot11TxAntenna, 1458 TWD_TX_ANTENNA_DEF, TWD_TX_ANTENNA_MIN, 1459 TWD_TX_ANTENNA_MAX, 1460 sizeof p->twdInitParams.tGeneral.halCtrlTxAntenna, 1461 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlTxAntenna); 1462 /* reverse tx antenna value - ACX and utility have reversed values */ 1463 if (p->twdInitParams.tGeneral.halCtrlTxAntenna == TX_ANTENNA_2) 1464 p->twdInitParams.tGeneral.halCtrlTxAntenna = TX_ANTENNA_1; 1465 else 1466 p->twdInitParams.tGeneral.halCtrlTxAntenna = TX_ANTENNA_2; 1467 1468 1469 regReadIntegerParameter(pAdapter, &STRdot11RxAntenna, 1470 TWD_RX_ANTENNA_DEF, TWD_RX_ANTENNA_MIN, 1471 TWD_RX_ANTENNA_MAX, 1472 sizeof p->twdInitParams.tGeneral.halCtrlRxAntenna, 1473 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlRxAntenna); 1474 1475 1476 regReadIntegerParameter(pAdapter, &STRTxCompleteThreshold, 1477 TWD_TX_CMPLT_THRESHOLD_DEF, TWD_TX_CMPLT_THRESHOLD_MIN, 1478 TWD_TX_CMPLT_THRESHOLD_MAX, 1479 sizeof p->twdInitParams.tGeneral.TxCompletePacingThreshold, 1480 (TI_UINT8*)&(p->twdInitParams.tGeneral.TxCompletePacingThreshold)); 1481 1482 regReadIntegerParameter(pAdapter, &STRTxCompleteTimeout, 1483 TWD_TX_CMPLT_TIMEOUT_DEF, TWD_TX_CMPLT_TIMEOUT_MIN, 1484 TWD_TX_CMPLT_TIMEOUT_MAX, 1485 sizeof p->twdInitParams.tGeneral.TxCompletePacingTimeout, 1486 (TI_UINT8*)&(p->twdInitParams.tGeneral.TxCompletePacingTimeout)); 1487 1488 regReadIntegerParameter(pAdapter, &STRRxInterruptThreshold, 1489 TWD_RX_INTR_THRESHOLD_DEF, TWD_RX_INTR_THRESHOLD_MIN, 1490 TWD_RX_INTR_THRESHOLD_MAX, 1491 sizeof p->twdInitParams.tGeneral.RxIntrPacingThreshold, 1492 (TI_UINT8*)&(p->twdInitParams.tGeneral.RxIntrPacingThreshold)); 1493 1494 regReadIntegerParameter(pAdapter, &STRRxInterruptTimeout, 1495 TWD_RX_INTR_TIMEOUT_DEF, TWD_RX_INTR_TIMEOUT_MIN, 1496 TWD_RX_INTR_TIMEOUT_MAX, 1497 sizeof p->twdInitParams.tGeneral.RxIntrPacingTimeout, 1498 (TI_UINT8*)&(p->twdInitParams.tGeneral.RxIntrPacingTimeout)); 1499 1500 1501 regReadIntegerParameter(pAdapter, &STRRxAggregationPktsLimit, 1502 TWD_RX_AGGREG_PKTS_LIMIT_DEF, TWD_RX_AGGREG_PKTS_LIMIT_MIN, 1503 TWD_RX_AGGREG_PKTS_LIMIT_MAX, 1504 sizeof p->twdInitParams.tGeneral.uRxAggregPktsLimit, 1505 (TI_UINT8*)&(p->twdInitParams.tGeneral.uRxAggregPktsLimit)); 1506 1507 regReadIntegerParameter(pAdapter, &STRTxAggregationPktsLimit, 1508 TWD_TX_AGGREG_PKTS_LIMIT_DEF, TWD_TX_AGGREG_PKTS_LIMIT_MIN, 1509 TWD_TX_AGGREG_PKTS_LIMIT_MAX, 1510 sizeof p->twdInitParams.tGeneral.uTxAggregPktsLimit, 1511 (TI_UINT8*)&(p->twdInitParams.tGeneral.uTxAggregPktsLimit)); 1512 1513 regReadIntegerParameter(pAdapter, &STRdot11DesiredChannel, 1514 SITE_MGR_CHANNEL_DEF, SITE_MGR_CHANNEL_MIN, SITE_MGR_CHANNEL_MAX, 1515 sizeof p->siteMgrInitParams.siteMgrDesiredChannel, 1516 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredChannel); 1517 1518 /* NOTE: desired BSSID and SSID (and BSS type, later on) are currently set both to the SME and the site manager!!! */ 1519 { 1520 TI_UINT8 bssidBroadcast[MAC_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; 1521 1522 MAC_COPY (p->siteMgrInitParams.siteMgrDesiredBSSID, bssidBroadcast); 1523 MAC_COPY (p->tSmeModifiedInitParams.tDesiredBssid, bssidBroadcast); 1524 } 1525 1526 { 1527 static char dummySsidString[MAX_SSID_LEN]; 1528 1529 /* 1530 Default SSID should be non-Valid SSID, hence the STA will not try to connect 1531 */ 1532 for(loopIndex = 0; loopIndex < MAX_SSID_LEN; loopIndex++) 1533 dummySsidString[loopIndex] = (loopIndex+1); 1534 1535 regReadStringParameter(pAdapter, &STRdot11DesiredSSID, 1536 (TI_INT8*)dummySsidString, 1537 (TI_UINT8)MAX_SSID_LEN, 1538 (TI_UINT8*)p->siteMgrInitParams.siteMgrDesiredSSID.str, 1539 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredSSID.len); 1540 1541 /* in case no SSID desired at the init file set dummy len */ 1542 for(loopIndex = 0; loopIndex < MAX_SSID_LEN; loopIndex++) 1543 { 1544 if(dummySsidString[loopIndex] != p->siteMgrInitParams.siteMgrDesiredSSID.str[loopIndex]) 1545 break; 1546 } 1547 1548 p->siteMgrInitParams.siteMgrDesiredSSID.len = (TI_UINT8)loopIndex; 1549 } 1550 1551 NdisMoveMemory(&p->tSmeModifiedInitParams.tDesiredSsid, 1552 &p->siteMgrInitParams.siteMgrDesiredSSID, 1553 sizeof(TSsid)); 1554 1555 regReadIntegerParameter(pAdapter, &STRdot11DesiredNetworkType, 1556 SITE_MGR_DOT_11_MODE_DEF, SITE_MGR_DOT_11_MODE_MIN, SITE_MGR_DOT_11_MODE_MAX, 1557 sizeof p->siteMgrInitParams.siteMgrDesiredDot11Mode, 1558 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredDot11Mode); 1559 1560 regReadIntegerParameter(pAdapter, &STRdot11SlotTime, 1561 PHY_SLOT_TIME_SHORT, PHY_SLOT_TIME_LONG, PHY_SLOT_TIME_SHORT, 1562 sizeof p->siteMgrInitParams.siteMgrDesiredSlotTime, 1563 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredSlotTime); 1564 1565 regReadIntegerParameter(pAdapter, &STRdot11RtsCtsProtection, 1566 0, 0, 1, 1567 sizeof p->ctrlDataInitParams.ctrlDataDesiredCtsRtsStatus, 1568 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataDesiredCtsRtsStatus); 1569 1570 regReadIntegerParameter(pAdapter, &STRdot11IbssProtection, 1571 ERP_PROTECTION_STANDARD, ERP_PROTECTION_NONE, ERP_PROTECTION_STANDARD, 1572 sizeof p->ctrlDataInitParams.ctrlDataDesiredIbssProtection, 1573 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataDesiredIbssProtection); 1574 1575 /* When working in band A, minimum channel is 36 and not 1*/ 1576 if (p->siteMgrInitParams.siteMgrDesiredDot11Mode == DOT11_A_MODE) 1577 { 1578 if (p->siteMgrInitParams.siteMgrDesiredChannel < SITE_MGR_CHANNEL_A_MIN) 1579 p->siteMgrInitParams.siteMgrDesiredChannel = SITE_MGR_CHANNEL_A_MIN; 1580 } 1581 1582 { 1583 static TI_UINT32 Freq2ChannelTable[] = {0,2412000,2417000,2422000,2427000,2432000,2437000, 1584 2442000,2447000,2452000,2457000, 1585 2462000,2467000,2472000,2484000}; 1586 1587 memcpy(p->siteMgrInitParams.siteMgrFreq2ChannelTable, 1588 Freq2ChannelTable, 1589 sizeof(Freq2ChannelTable)); 1590 } 1591 1592 /* read TX rates from registry */ 1593 readRates(pAdapter, p); 1594 1595 /* Note: desired BSS type is set both to the SME and site manager */ 1596 regReadIntegerParameter(pAdapter, &STRdot11DesiredBSSType, 1597 SITE_MGR_BSS_TYPE_DEF, BSS_INDEPENDENT, BSS_ANY, 1598 sizeof p->siteMgrInitParams.siteMgrDesiredBSSType, 1599 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredBSSType); 1600 p->tSmeModifiedInitParams.eDesiredBssType = p->siteMgrInitParams.siteMgrDesiredBSSType; 1601 1602 regReadIntegerParameter(pAdapter, &STRdot11BeaconPeriod, 1603 SITE_MGR_BEACON_INTERVAL_DEF, SITE_MGR_BEACON_INTERVAL_MIN, 1604 SITE_MGR_BEACON_INTERVAL_MAX, 1605 sizeof p->siteMgrInitParams.siteMgrDesiredBeaconInterval, 1606 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredBeaconInterval); 1607 1608 regReadIntegerParameter(pAdapter, &STRdot11ShortPreambleInvoked, 1609 SITE_MGR_PREAMBLE_TYPE_DEF, PREAMBLE_LONG, PREAMBLE_SHORT, 1610 sizeof p->siteMgrInitParams.siteMgrDesiredPreambleType, 1611 (TI_UINT8*)&p->siteMgrInitParams.siteMgrDesiredPreambleType); 1612 1613 regReadIntegerParameter(pAdapter, &STRReAuthActivePriority, 1614 POWER_MGMNT_RE_AUTH_ACTIVE_PRIO_DEF_VALUE, POWER_MGMNT_RE_AUTH_ACTIVE_PRIO_MIN_VALUE, 1615 POWER_MGMNT_RE_AUTH_ACTIVE_PRIO_MAX_VALUE, 1616 sizeof p->PowerMgrInitParams.reAuthActivePriority, 1617 (TI_UINT8*)&p->PowerMgrInitParams.reAuthActivePriority); 1618 1619 regReadIntegerParameter(pAdapter, &STRExternalMode, 1620 SITE_MGR_EXTERNAL_MODE_DEF, SITE_MGR_EXTERNAL_MODE_MIN, 1621 SITE_MGR_EXTERNAL_MODE_MAX, 1622 sizeof p->siteMgrInitParams.siteMgrExternalConfiguration, 1623 (TI_UINT8*)&p->siteMgrInitParams.siteMgrExternalConfiguration); 1624 1625 regReadIntegerParameter(pAdapter, &STRWiFiAdHoc, 1626 SITE_MGR_WiFiAdHoc_DEF, SITE_MGR_WiFiAdHoc_MIN, SITE_MGR_WiFiAdHoc_MAX, 1627 sizeof p->siteMgrInitParams.siteMgrWiFiAdhoc, 1628 (TI_UINT8*)&p->siteMgrInitParams.siteMgrWiFiAdhoc); 1629 1630 regReadIntegerParameter(pAdapter, &STRWiFiWmmPS, 1631 WIFI_WMM_PS_DEF, WIFI_WMM_PS_MIN, WIFI_WMM_PS_MAX, 1632 sizeof p->twdInitParams.tGeneral.WiFiWmmPS, 1633 (TI_UINT8*)&p->twdInitParams.tGeneral.WiFiWmmPS); 1634 1635 regReadIntegerParameter(pAdapter, &STRConnSelfTimeout, 1636 CONN_SELF_TIMEOUT_DEF, CONN_SELF_TIMEOUT_MIN, CONN_SELF_TIMEOUT_MAX, 1637 sizeof p->connInitParams.connSelfTimeout, 1638 (TI_UINT8*)&p->connInitParams.connSelfTimeout); 1639 1640 regReadIntegerParameter(pAdapter, &STRdot11AuthRespTimeout, 1641 AUTH_RESPONSE_TIMEOUT_DEF, AUTH_RESPONSE_TIMEOUT_MIN, AUTH_RESPONSE_TIMEOUT_MAX, 1642 sizeof p->authInitParams.authResponseTimeout, 1643 (TI_UINT8*)&p->authInitParams.authResponseTimeout); 1644 1645 regReadIntegerParameter(pAdapter, &STRdot11MaxAuthRetry, 1646 AUTH_MAX_RETRY_COUNT_DEF, AUTH_MAX_RETRY_COUNT_MIN, AUTH_MAX_RETRY_COUNT_MAX, 1647 sizeof p->authInitParams.authMaxRetryCount, 1648 (TI_UINT8*)&p->authInitParams.authMaxRetryCount); 1649 1650 regReadIntegerParameter(pAdapter, &STRdot11AssocRespTimeout, 1651 ASSOC_RESPONSE_TIMEOUT_DEF, ASSOC_RESPONSE_TIMEOUT_MIN, ASSOC_RESPONSE_TIMEOUT_MAX, 1652 sizeof p->assocInitParams.assocResponseTimeout, 1653 (TI_UINT8*)&p->assocInitParams.assocResponseTimeout); 1654 1655 regReadIntegerParameter(pAdapter, &STRdot11MaxAssocRetry, 1656 ASSOC_MAX_RETRY_COUNT_DEF, ASSOC_MAX_RETRY_COUNT_MIN, ASSOC_MAX_RETRY_COUNT_MAX, 1657 sizeof p->assocInitParams.assocMaxRetryCount, 1658 (TI_UINT8*)&p->assocInitParams.assocMaxRetryCount); 1659 1660 regReadIntegerParameter(pAdapter, &STRRxDataFiltersEnabled, 1661 RX_DATA_FILTERS_ENABLED_DEF, RX_DATA_FILTERS_ENABLED_MIN, RX_DATA_FILTERS_ENABLED_MAX, 1662 sizeof p->rxDataInitParams.rxDataFiltersEnabled, 1663 (TI_UINT8*)&p->rxDataInitParams.rxDataFiltersEnabled); 1664 1665 regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter1Offset, 1666 RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX, 1667 sizeof filterOffset, 1668 (TI_UINT8*) &filterOffset); 1669 1670 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter1Mask, 1671 RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF, 1672 (TI_UINT8*) filterMask, 1673 (TI_UINT8*) &filterMaskLength); 1674 1675 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter1Pattern, 1676 RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF, 1677 (TI_UINT8*) filterPattern, 1678 (TI_UINT8*) &filterPatternLength); 1679 1680 parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[0], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength); 1681 1682 regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter2Offset, 1683 RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX, 1684 sizeof filterOffset, 1685 (TI_UINT8*) &filterOffset); 1686 1687 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter2Mask, 1688 RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF, 1689 (TI_UINT8*) filterMask, 1690 (TI_UINT8*) &filterMaskLength); 1691 1692 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter2Pattern, 1693 RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF, 1694 (TI_UINT8*) filterPattern, 1695 (TI_UINT8*) &filterPatternLength); 1696 1697 parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[1], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength); 1698 1699 regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter3Offset, 1700 RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX, 1701 sizeof filterOffset, 1702 (TI_UINT8*) &filterOffset); 1703 1704 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter3Mask, 1705 RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF, 1706 (TI_UINT8*) filterMask, 1707 (TI_UINT8*) &filterMaskLength); 1708 1709 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter3Pattern, 1710 RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF, 1711 (TI_UINT8*) filterPattern, 1712 (TI_UINT8*) &filterPatternLength); 1713 1714 parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[2], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength); 1715 1716 regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter4Offset, 1717 RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX, 1718 sizeof filterOffset, 1719 (TI_UINT8*) &filterOffset); 1720 1721 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter4Mask, 1722 RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF, 1723 (TI_UINT8*) filterMask, 1724 (TI_UINT8*) &filterMaskLength); 1725 1726 regReadStringParameter(pAdapter, &STRRxDataFiltersFilter4Pattern, 1727 RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF, 1728 (TI_UINT8*) filterPattern, 1729 (TI_UINT8*) &filterPatternLength); 1730 1731 parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[3], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength); 1732 1733 regReadIntegerParameter(pAdapter, &STRRxDataFiltersDefaultAction, 1734 RX_DATA_FILTERS_DEFAULT_ACTION_DEF, RX_DATA_FILTERS_DEFAULT_ACTION_MIN, 1735 RX_DATA_FILTERS_DEFAULT_ACTION_MAX, 1736 sizeof p->rxDataInitParams.rxDataFiltersDefaultAction, 1737 (TI_UINT8*)&p->rxDataInitParams.rxDataFiltersDefaultAction); 1738 1739 regReadIntegerParameter(pAdapter, &STRReAuthActiveTimeout, 1740 RX_DATA_RE_AUTH_ACTIVE_TIMEOUT_DEF, RX_DATA_RE_AUTH_ACTIVE_TIMEOUT_MIN, 1741 RX_DATA_RE_AUTH_ACTIVE_TIMEOUT_MAX, 1742 sizeof p->rxDataInitParams.reAuthActiveTimeout, 1743 (TI_UINT8*)&p->rxDataInitParams.reAuthActiveTimeout); 1744 1745 regReadIntegerParameter(pAdapter, &STRCreditCalcTimout, 1746 TX_DATA_CREDIT_CALC_TIMOEUT_DEF, TX_DATA_CREDIT_CALC_TIMOEUT_MIN, 1747 TX_DATA_CREDIT_CALC_TIMOEUT_MAX, 1748 sizeof p->txDataInitParams.creditCalculationTimeout, 1749 (TI_UINT8*)&p->txDataInitParams.creditCalculationTimeout); 1750 1751 regReadIntegerParameter(pAdapter, &STRCreditCalcTimerEnabled, 1752 TI_FALSE, TI_FALSE, TI_TRUE, 1753 sizeof p->txDataInitParams.bCreditCalcTimerEnabled, 1754 (TI_UINT8*)&p->txDataInitParams.bCreditCalcTimerEnabled); 1755 1756 regReadIntegerParameter(pAdapter, &STRTrafficAdmControlTimeout, 1757 TRAFFIC_ADM_CONTROL_TIMEOUT_DEF, TRAFFIC_ADM_CONTROL_TIMEOUT_MIN, 1758 TRAFFIC_ADM_CONTROL_TIMEOUT_MAX, 1759 sizeof p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlResponseTimeout, 1760 (TI_UINT8*)&p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlResponseTimeout); 1761 1762 regReadIntegerParameter(pAdapter, &STRTrafficAdmControlUseFixedMsduSize, 1763 TI_FALSE, TI_FALSE, TI_TRUE, 1764 sizeof p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlUseFixedMsduSize, 1765 (TI_UINT8*)&p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlUseFixedMsduSize); 1766 1767 regReadIntegerParameter(pAdapter, &STRDesiredMaxSpLen, 1768 QOS_MAX_SP_LEN_DEF, QOS_MAX_SP_LEN_MIN, 1769 QOS_MAX_SP_LEN_MAX, 1770 sizeof p->qosMngrInitParams.desiredMaxSpLen, 1771 (TI_UINT8*)&p->qosMngrInitParams.desiredMaxSpLen); 1772 1773 regReadIntegerParameter(pAdapter, &STRCwFromUserEnable, 1774 QOS_CW_USER_ENABLE_DEF, QOS_CW_USER_ENABLE_MIN, 1775 QOS_CW_USER_ENABLE_MAX, 1776 sizeof p->qosMngrInitParams.bCwFromUserEnable, 1777 (TI_UINT8*)&p->qosMngrInitParams.bCwFromUserEnable); 1778 1779 regReadIntegerParameter(pAdapter, &STRDesireCwMin, 1780 QOS_CW_CWMIN_DEF, QOS_CW_CWMIN_MIN, 1781 QOS_CW_CWMIN_MAX, 1782 sizeof p->qosMngrInitParams.uDesireCwMin, 1783 (TI_UINT8*)&p->qosMngrInitParams.uDesireCwMin); 1784 1785 regReadIntegerParameter(pAdapter, &STRDesireCwMax, 1786 QOS_CW_CWMAX_DEF, QOS_CW_CWMAX_MIN, 1787 QOS_CW_CWMAX_MAX, 1788 sizeof p->qosMngrInitParams.uDesireCwMax, 1789 (TI_UINT8*)&p->qosMngrInitParams.uDesireCwMax); 1790 1791 /* SME Initialization Parameters */ 1792 /* ==================================== */ 1793 1794 regReadIntegerParameter(pAdapter, &STRSmeRadioOn, 1795 TI_TRUE, TI_FALSE, TI_TRUE, 1796 sizeof p->tSmeModifiedInitParams.bRadioOn, 1797 (TI_UINT8*)&p->tSmeModifiedInitParams.bRadioOn); 1798 regReadIntegerParameter(pAdapter, &STRSmeConnectMode, 1799 CONNECT_MODE_AUTO, CONNECT_MODE_AUTO, CONNECT_MODE_MANUAL, 1800 sizeof p->tSmeModifiedInitParams.eConnectMode, 1801 (TI_UINT8*)&p->tSmeModifiedInitParams.eConnectMode); 1802 1803 { 1804 /* due to the fact that two following init keys has negative values, we read them as table */ 1805 TI_UINT32 uEntriesNumber = 1; 1806 1807 regReadIntegerTable(pAdapter ,&STRSmeScanRssiThreshold, 1808 SME_SCAN_RSSI_THRESHOLD_DEF, sizeof(TI_INT8) * 3, 1809 (TI_UINT8*)&p->tSmeInitParams.iRssiThreshold, NULL, &uEntriesNumber, 1810 sizeof(TI_INT8),TI_FALSE); 1811 1812 if ( (p->tSmeInitParams.iRssiThreshold < SME_SCAN_RSSI_THRESHOLD_MIN) || 1813 (p->tSmeInitParams.iRssiThreshold > SME_SCAN_RSSI_THRESHOLD_MAX)) 1814 { 1815 p->tSmeInitParams.iRssiThreshold = SME_SCAN_RSSI_THRESHOLD_DEF_NUM; 1816 } 1817 1818 regReadIntegerTable(pAdapter ,&STRSmeScanSnrThreshold, 1819 SME_SCAN_SNR_THRESHOLD_DEF, sizeof(TI_INT8), 1820 (TI_UINT8*)&p->tSmeInitParams.iSnrThreshold, NULL, &uEntriesNumber, sizeof(TI_INT8),TI_FALSE); 1821 1822 if ( (p->tSmeInitParams.iSnrThreshold < SME_SCAN_SNR_THRESHOLD_MIN) || 1823 (p->tSmeInitParams.iSnrThreshold > SME_SCAN_SNR_THRESHOLD_MAX)) 1824 { 1825 p->tSmeInitParams.iSnrThreshold = SME_SCAN_SNR_THRESHOLD_DEF_NUM; 1826 } 1827 } 1828 1829 1830 regReadIntegerParameter(pAdapter ,&STRRoamScanEnable, 1831 0, 0, 1, sizeof(p->tRoamScanMngrInitParams.RoamingScanning_2_4G_enable), 1832 (TI_UINT8*)&p->tRoamScanMngrInitParams.RoamingScanning_2_4G_enable); 1833 1834 regReadIntegerParameter(pAdapter, &STRSmeScanCycleNumber, 1835 SME_SCAN_CYCLES_DEF, SME_SCAN_CYCLES_MIN, SME_SCAN_CYCLES_MAX, 1836 sizeof p->tSmeInitParams.uCycleNum, 1837 (TI_UINT8*)&p->tSmeInitParams.uCycleNum); 1838 regReadIntegerParameter(pAdapter, &STRSmeScanMaxDwellTime, 1839 SME_SCAN_MAX_DWELL_DEF, SME_SCAN_MAX_DWELL_MIN, SME_SCAN_MAX_DWELL_MAX, 1840 sizeof p->tSmeInitParams.uMaxScanDuration, 1841 (TI_UINT8*)&p->tSmeInitParams.uMaxScanDuration); 1842 regReadIntegerParameter(pAdapter, &STRSmeScanMinDwellTime, 1843 SME_SCAN_MIN_DWELL_DEF, SME_SCAN_MIN_DWELL_MIN, SME_SCAN_MIN_DWELL_MAX, 1844 sizeof p->tSmeInitParams.uMinScanDuration, 1845 (TI_UINT8*)&p->tSmeInitParams.uMinScanDuration); 1846 regReadIntegerParameter(pAdapter, &STRSmeScanProbeRequestNumber, 1847 SME_SCAN_PROBE_REQ_DEF, SME_SCAN_PROBE_REQ_MIN, SME_SCAN_PROBE_REQ_MAX, 1848 sizeof p->tSmeInitParams.uProbeReqNum, 1849 (TI_UINT8*)&p->tSmeInitParams.uProbeReqNum); 1850 1851 { 1852 TI_UINT32 *uSmeScanIntervalsTempList; 1853 1854 uSmeScanIntervalsTempList = os_memoryAlloc(pAdapter, SME_SCAN_INTERVALS_LIST_STRING_MAX_SIZE * sizeof(TI_UINT32)); 1855 if (!uSmeScanIntervalsTempList) { 1856 return; 1857 } 1858 regReadIntegerTable(pAdapter, &STRSmeScanIntervals, SME_SCAN_INTERVALS_LIST_VAL_DEF, 1859 SME_SCAN_INTERVALS_LIST_STRING_MAX_SIZE, 1860 (TI_UINT8 *)uSmeScanIntervalsTempList, NULL, &uTempEntriesCount, 1861 sizeof (TI_UINT32),TI_FALSE); 1862 /* sanity check */ 1863 if (uTempEntriesCount > PERIODIC_SCAN_MAX_INTERVAL_NUM) 1864 { 1865 uTempEntriesCount = PERIODIC_SCAN_MAX_INTERVAL_NUM; 1866 } 1867 /* convert from TI_UINT8 to TI_UINT32 */ 1868 for (uIndex = 0; uIndex < uTempEntriesCount; uIndex++) 1869 { 1870 p->tSmeInitParams.uScanIntervals[ uIndex ] = uSmeScanIntervalsTempList[ uIndex ]; 1871 } 1872 os_memoryFree(pAdapter, uSmeScanIntervalsTempList, SME_SCAN_INTERVALS_LIST_STRING_MAX_SIZE * sizeof(TI_UINT32)); 1873 } 1874 { 1875 TI_UINT8 *uSmeTempList; 1876 TI_UINT32 uSmeGChannelsCount; 1877 1878 uSmeTempList = os_memoryAlloc(pAdapter, SME_SCAN_CHANNELS_LIST_G_STRING_MAX_SIZE); 1879 if (!uSmeTempList) { 1880 return; 1881 } 1882 regReadIntegerTable(pAdapter, &STRSmeScanGChannels, SME_SCAN_CHANNELS_LIST_G_VAL_DEF, 1883 SME_SCAN_CHANNELS_LIST_G_STRING_MAX_SIZE, 1884 (TI_UINT8 *)uSmeTempList, NULL, &uTempEntriesCount, 1885 sizeof (TI_UINT8),TI_FALSE); 1886 1887 1888 /* convert to channel list */ 1889 for (uIndex = 0; uIndex < uTempEntriesCount; uIndex++) 1890 { 1891 p->tSmeInitParams.tChannelList[ uIndex ].eBand = RADIO_BAND_2_4_GHZ; 1892 p->tSmeInitParams.tChannelList[ uIndex ].uChannel = uSmeTempList[ uIndex ]; 1893 } 1894 uSmeGChannelsCount = uTempEntriesCount; 1895 1896 /* 1897 * Add A_MODE channels to scan list only if it enabled 1898 * NOTE: Don't use empty channel list string 1899 */ 1900 if ((p->siteMgrInitParams.siteMgrDesiredDot11Mode == DOT11_A_MODE) || 1901 (p->siteMgrInitParams.siteMgrDesiredDot11Mode == DOT11_DUAL_MODE)) 1902 { 1903 regReadIntegerTable(pAdapter, &STRSmeScanAChannels, SME_SCAN_CHANNELS_LIST_A_VAL_DEF, 1904 SME_SCAN_CHANNELS_LIST_A_STRING_MAX_SIZE, 1905 (TI_UINT8*)&uSmeTempList, NULL, &uTempEntriesCount, 1906 sizeof (TI_UINT8),TI_FALSE); 1907 1908 /* convert to channel list */ 1909 for (uIndex = 0; uIndex < uTempEntriesCount; uIndex++) 1910 { 1911 p->tSmeInitParams.tChannelList[ uSmeGChannelsCount + uIndex ].eBand = RADIO_BAND_5_0_GHZ; 1912 p->tSmeInitParams.tChannelList[ uSmeGChannelsCount + uIndex ].uChannel = uSmeTempList[ uIndex ]; 1913 } 1914 1915 p->tSmeInitParams.uChannelNum = uSmeGChannelsCount + uIndex; 1916 } 1917 else 1918 { 1919 p->tSmeInitParams.uChannelNum = uSmeGChannelsCount; 1920 } 1921 os_memoryFree(pAdapter, uSmeTempList, SME_SCAN_CHANNELS_LIST_G_STRING_MAX_SIZE); 1922 } 1923 1924 regReadIntegerParameter(pAdapter, &STRdot11AuthenticationMode, 1925 RSN_AUTH_SUITE_DEF, RSN_AUTH_SUITE_MIN, RSN_AUTH_SUITE_MAX, 1926 sizeof p->rsnInitParams.authSuite, 1927 (TI_UINT8*)&p->rsnInitParams.authSuite); 1928 1929 /* Soft Gemini Section */ 1930 1931 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistEnable, 1932 SOFT_GEMINI_ENABLED_DEF, SOFT_GEMINI_ENABLED_MIN, SOFT_GEMINI_ENABLED_MAX, 1933 sizeof p->SoftGeminiInitParams.SoftGeminiEnable, 1934 (TI_UINT8*)&p->SoftGeminiInitParams.SoftGeminiEnable); 1935 1936 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsBtLoadRatio, 1937 SOFT_GEMINI_PARAMS_LOAD_RATIO_DEF, SOFT_GEMINI_PARAMS_LOAD_RATIO_MIN, SOFT_GEMINI_PARAMS_LOAD_RATIO_MAX, 1938 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BT_LOAD_RATIO], 1939 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BT_LOAD_RATIO]); 1940 1941 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsAutoPsMode, 1942 SOFT_GEMINI_PARAMS_AUTO_PS_MODE_DEF, SOFT_GEMINI_PARAMS_AUTO_PS_MODE_MIN, SOFT_GEMINI_PARAMS_AUTO_PS_MODE_MAX, 1943 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_AUTO_PS_MODE], 1944 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_AUTO_PS_MODE]); 1945 1946 regReadIntegerParameter(pAdapter, &STRBThWlanCoexHv3AutoScanEnlargedNumOfProbeReqPercent, 1947 SOFT_GEMINI_PARAMS_AUTO_SCAN_PROBE_REQ_DEF, SOFT_GEMINI_PARAMS_AUTO_SCAN_PROBE_REQ_MIN, SOFT_GEMINI_PARAMS_AUTO_SCAN_PROBE_REQ_MAX, 1948 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_AUTO_SCAN_PROBE_REQ], 1949 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_AUTO_SCAN_PROBE_REQ]); 1950 1951 regReadIntegerParameter(pAdapter, &STRBThWlanCoexHv3AutoScanEnlargedScanWinodowPercent, 1952 SOFT_GEMINI_PARAMS_ACTIVE_SCAN_DURATION_FACTOR_HV3_DEF, SOFT_GEMINI_PARAMS_ACTIVE_SCAN_DURATION_FACTOR_HV3_MIN, SOFT_GEMINI_PARAMS_ACTIVE_SCAN_DURATION_FACTOR_HV3_MAX, 1953 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ACTIVE_SCAN_DURATION_FACTOR_HV3], 1954 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ACTIVE_SCAN_DURATION_FACTOR_HV3]); 1955 1956 1957 regReadIntegerParameter(pAdapter, &STRBThWlanCoexA2dpAutoScanEnlargedScanWinodowPercent, 1958 SOFT_GEMINI_PARAMS_ACTIVE_SCAN_DURATION_FACTOR_A2DP_DEF, SOFT_GEMINI_PARAMS_ACTIVE_SCAN_DURATION_FACTOR_A2DP_MIN, SOFT_GEMINI_PARAMS_ACTIVE_SCAN_DURATION_FACTOR_A2DP_MAX, 1959 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ACTIVE_SCAN_DURATION_FACTOR_A2DP], 1960 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ACTIVE_SCAN_DURATION_FACTOR_A2DP]); 1961 1962 1963 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistHv3MaxOverride, 1964 SOFT_GEMINI_HV3_MAX_OVERRIDE_DEF, SOFT_GEMINI_HV3_MAX_OVERRIDE_MIN, SOFT_GEMINI_HV3_MAX_OVERRIDE_MAX, 1965 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_HV3_MAX_OVERRIDE], 1966 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_HV3_MAX_OVERRIDE]); 1967 1968 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistPerThreshold, 1969 SOFT_GEMINI_PARAMS_PER_THRESHOLD_DEF, SOFT_GEMINI_PARAMS_PER_THRESHOLD_MIN, SOFT_GEMINI_PARAMS_PER_THRESHOLD_MAX, 1970 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BT_PER_THRESHOLD], 1971 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BT_PER_THRESHOLD]); 1972 1973 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistNfsSampleInterval, 1974 SOFT_GEMINI_PARAMS_NFS_SAMPLE_INTERVAL_DEF, SOFT_GEMINI_PARAMS_NFS_SAMPLE_INTERVAL_MIN, SOFT_GEMINI_PARAMS_NFS_SAMPLE_INTERVAL_MAX, 1975 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BT_NFS_SAMPLE_INTERVAL], 1976 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BT_NFS_SAMPLE_INTERVAL]); 1977 1978 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistcoexAntennaConfiguration, 1979 SOFT_GEMINI_ANTENNA_CONFIGURATION_DEF, SOFT_GEMINI_ANTENNA_CONFIGURATION_MIN, SOFT_GEMINI_ANTENNA_CONFIGURATION_MAX, 1980 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ANTENNA_CONFIGURATION], 1981 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ANTENNA_CONFIGURATION]); 1982 1983 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistcoexMaxConsecutiveBeaconMissPrecent, 1984 SOFT_GEMINI_BEACON_MISS_PERCENT_DEF, SOFT_GEMINI_BEACON_MISS_PERCENT_MIN, SOFT_GEMINI_BEACON_MISS_PERCENT_MAX, 1985 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BEACON_MISS_PERCENT], 1986 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_BEACON_MISS_PERCENT]); 1987 1988 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistcoexAPRateAdapationThr, 1989 SOFT_GEMINI_RATE_ADAPT_THRESH_DEF, SOFT_GEMINI_RATE_ADAPT_THRESH_MIN, SOFT_GEMINI_RATE_ADAPT_THRESH_MAX, 1990 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_RATE_ADAPT_THRESH], 1991 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_RATE_ADAPT_THRESH]); 1992 1993 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistcoexAPRateAdapationSnr, 1994 SOFT_GEMINI_RATE_ADAPT_SNR_DEF, SOFT_GEMINI_RATE_ADAPT_SNR_MIN, SOFT_GEMINI_RATE_ADAPT_SNR_MAX, 1995 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_RATE_ADAPT_SNR], 1996 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_RATE_ADAPT_SNR]); 1997 1998 1999 /* BR section */ 2000 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclMasterMinBR, 2001 SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_BR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_BR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_BR_MAX, 2002 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_BR], 2003 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_BR]); 2004 2005 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclSlaveMinBR, 2006 SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_BR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_BR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_BR_MAX, 2007 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_BR], 2008 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_BR]); 2009 2010 2011 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclMasterMaxBR, 2012 SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_BR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_BR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_BR_MAX, 2013 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_BR], 2014 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_BR]); 2015 2016 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclSlaveMaxBR, 2017 SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_BR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_BR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_BR_MAX, 2018 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_BR], 2019 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_BR]); 2020 2021 2022 regReadIntegerParameter(pAdapter, &STRBThWlanPsMaxBtAclMasterBR, 2023 SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_BR_DEF, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_BR_MIN, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_BR_MAX, 2024 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_BR], 2025 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_BR]); 2026 2027 2028 regReadIntegerParameter(pAdapter, &STRBThWlanPsMaxBtAclSlaveBR, 2029 SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_BR_DEF, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_BR_MIN, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_BR_MAX, 2030 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_BR], 2031 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_BR]); 2032 2033 2034 2035 /* EDR section */ 2036 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclMasterMinEDR, 2037 SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_EDR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_EDR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_EDR_MAX, 2038 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_EDR], 2039 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MIN_EDR]); 2040 2041 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclSlaveMinEDR, 2042 SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_EDR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_EDR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_EDR_MAX, 2043 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_EDR], 2044 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MIN_EDR]); 2045 2046 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclMasterMaxEDR, 2047 SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_EDR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_EDR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_EDR_MAX, 2048 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_EDR], 2049 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_MASTER_MAX_EDR]); 2050 2051 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdAclSlaveMaxEDR, 2052 SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_EDR_DEF, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_EDR_MIN, SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_EDR_MAX, 2053 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_EDR], 2054 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_BT_ACL_SLAVE_MAX_EDR]); 2055 2056 regReadIntegerParameter(pAdapter, &STRBThWlanPsMaxBtAclMasterEDR, 2057 SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_EDR_DEF, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_EDR_MIN, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_EDR_MAX, 2058 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_EDR], 2059 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_MASTER_EDR]); 2060 2061 regReadIntegerParameter(pAdapter, &STRBThWlanPsMaxBtAclSlaveEDR, 2062 SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_EDR_DEF, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_EDR_MIN, SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_EDR_MAX, 2063 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_EDR], 2064 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_PS_MAX_BT_ACL_SLAVE_EDR]); 2065 2066 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistRxt, 2067 SOFT_GEMINI_RXT_DEF, SOFT_GEMINI_RXT_MIN, SOFT_GEMINI_RXT_MAX, 2068 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_RXT], 2069 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_RXT]); 2070 2071 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistTxt, 2072 SOFT_GEMINI_TXT_DEF, SOFT_GEMINI_TXT_MIN, SOFT_GEMINI_TXT_MAX, 2073 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TXT], 2074 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TXT]); 2075 2076 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistAdaptiveRxtTxt, 2077 SOFT_GEMINI_ADAPTIVE_RXT_TXT_DEF, SOFT_GEMINI_ADAPTIVE_RXT_TXT_MIN, SOFT_GEMINI_ADAPTIVE_RXT_TXT_MAX, 2078 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ADAPTIVE_RXT_TXT], 2079 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_ADAPTIVE_RXT_TXT]); 2080 2081 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistPsPollTimeout, 2082 SOFT_GEMINI_PS_POLL_TIMEOUT_DEF, SOFT_GEMINI_PS_POLL_TIMEOUT_MIN, SOFT_GEMINI_PS_POLL_TIMEOUT_MAX, 2083 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PS_POLL_TIMEOUT], 2084 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PS_POLL_TIMEOUT]); 2085 2086 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistUpsdTimeout, 2087 SOFT_GEMINI_UPSD_TIMEOUT_DEF, SOFT_GEMINI_UPSD_TIMEOUT_MIN, SOFT_GEMINI_UPSD_TIMEOUT_MAX, 2088 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_UPSD_TIMEOUT], 2089 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_UPSD_TIMEOUT]); 2090 2091 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveBtAclMasterMinEDR, 2092 SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR_DEF, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR_MIN, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR_MAX, 2093 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR], 2094 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR]); 2095 2096 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveBtAclSlaveMinEDR, 2097 SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR_DEF, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR_MIN, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR_MAX, 2098 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR], 2099 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR]); 2100 2101 2102 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveBtAclMasterMaxEDR, 2103 SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR_DEF, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR_MIN, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR_MAX, 2104 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR], 2105 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR]); 2106 2107 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveBtAclSlaveMaxEDR, 2108 SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR_DEF, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR_MIN, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR_MAX, 2109 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR], 2110 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR]); 2111 2112 2113 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveMaxBtAclMasterEDR, 2114 SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR_DEF, SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR_MIN, SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR_MAX, 2115 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR], 2116 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR]); 2117 2118 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveMaxBtAclSlaveEDR, 2119 SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR_DEF, SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR_MIN, SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR_MAX, 2120 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR], 2121 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR]); 2122 2123 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveBtAclMinBR, 2124 SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_BR_DEF, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_BR_MIN, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_BR_MAX, 2125 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MIN_BR], 2126 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MIN_BR]); 2127 2128 2129 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveBtAclMaxBR, 2130 SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_BR_DEF, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_BR_MIN, SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_BR_MAX, 2131 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MAX_BR], 2132 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_BT_ACL_MAX_BR]); 2133 2134 regReadIntegerParameter(pAdapter, &STRBThWlanCoexistWlanActiveMaxBtAclBR, 2135 SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_BR_DEF, SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_BR_MIN, SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_BR_MAX, 2136 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_BR], 2137 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_WLAN_ACTIVE_MAX_BT_ACL_BR]); 2138 2139 regReadIntegerParameter(pAdapter, &STRBThWlanCoexHv3AutoEnlargePassiveScanWindowPercent, 2140 SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_HV3_DEF, SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_HV3_MIN, SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_HV3_MAX, 2141 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_HV3], 2142 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_HV3]); 2143 2144 regReadIntegerParameter(pAdapter, &STRBThWlanCoexA2DPAutoEnlargePassiveScanWindowPercent, 2145 SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_A2DP_DEF, SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_A2DP_MIN, SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_A2DP_MAX, 2146 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_A2DP], 2147 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_DURATION_FACTOR_A2DP]); 2148 2149 regReadIntegerParameter(pAdapter, &STRBThWlanCoexPassiveScanA2dpBtTime, 2150 SOFT_GEMINI_PASSIVE_SCAN_A2DP_BT_TIME_DEF, SOFT_GEMINI_PASSIVE_SCAN_A2DP_BT_TIME_MIN, SOFT_GEMINI_PASSIVE_SCAN_A2DP_BT_TIME_MAX, 2151 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_A2DP_BT_TIME], 2152 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_A2DP_BT_TIME]); 2153 2154 regReadIntegerParameter(pAdapter, &STRBThWlanCoexPassiveScanA2dpWlanTime, 2155 SOFT_GEMINI_PASSIVE_SCAN_A2DP_WLAN_TIME_DEF, SOFT_GEMINI_PASSIVE_SCAN_A2DP_WLAN_TIME_MIN, SOFT_GEMINI_PASSIVE_SCAN_A2DP_WLAN_TIME_MAX, 2156 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_A2DP_WLAN_TIME], 2157 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_PASSIVE_SCAN_A2DP_WLAN_TIME]); 2158 2159 regReadIntegerParameter(pAdapter, &STRBThWlancoexDhcpTime, 2160 SOFT_GEMINI_DHCP_TIME_DEF, SOFT_GEMINI_DHCP_TIME_MIN, SOFT_GEMINI_DHCP_TIME_MAX, 2161 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_DHCP_TIME], 2162 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_DHCP_TIME]); 2163 2164 regReadIntegerParameter(pAdapter, &STRBThWlanCoexHv3MaxServed, 2165 SOFT_GEMINI_HV3_MAX_SERVED_DEF, SOFT_GEMINI_HV3_MAX_SERVED_MIN, SOFT_GEMINI_HV3_MAX_SERVED_MAX, 2166 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_HV3_MAX_SERVED], 2167 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_HV3_MAX_SERVED]); 2168 regReadIntegerParameter(pAdapter, &STRBThWlanCoexTemp1, 2169 SOFT_GEMINI_TEMP_PARAM_1_DEF, SOFT_GEMINI_TEMP_PARAM_1_MIN, SOFT_GEMINI_TEMP_PARAM_1_MAX, 2170 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_1], 2171 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_1]); 2172 2173 regReadIntegerParameter(pAdapter, &STRBThWlanCoexTemp2, 2174 SOFT_GEMINI_TEMP_PARAM_2_DEF, SOFT_GEMINI_TEMP_PARAM_2_MIN, SOFT_GEMINI_TEMP_PARAM_2_MAX, 2175 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_2], 2176 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_2]); 2177 2178 regReadIntegerParameter(pAdapter, &STRBThWlanCoexTemp3, 2179 SOFT_GEMINI_TEMP_PARAM_3_DEF, SOFT_GEMINI_TEMP_PARAM_3_MIN, SOFT_GEMINI_TEMP_PARAM_3_MAX, 2180 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_3], 2181 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_3]); 2182 2183 regReadIntegerParameter(pAdapter, &STRBThWlanCoexTemp4, 2184 SOFT_GEMINI_TEMP_PARAM_4_DEF, SOFT_GEMINI_TEMP_PARAM_4_MIN, SOFT_GEMINI_TEMP_PARAM_4_MAX, 2185 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_4], 2186 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_4]); 2187 2188 regReadIntegerParameter(pAdapter, &STRBThWlanCoexTemp5, 2189 SOFT_GEMINI_TEMP_PARAM_5_DEF, SOFT_GEMINI_TEMP_PARAM_5_MIN, SOFT_GEMINI_TEMP_PARAM_5_MAX, 2190 sizeof p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_5], 2191 (TI_UINT8*)&p->SoftGeminiInitParams.coexParams[SOFT_GEMINI_TEMP_PARAM_5]); 2192 2193 2194 /* 2195 * CoexActivity table 2196 */ 2197 2198 /* Read the number of elements in the table ( this is because table entry has 5 values following it )*/ 2199 regReadIntegerParameter(pAdapter, &STRCoexActivityNumOfElem, 2200 COEX_ACTIVITY_TABLE_DEF_NUM, COEX_ACTIVITY_TABLE_MIN_NUM, COEX_ACTIVITY_TABLE_MAX_NUM, 2201 sizeof p->twdInitParams.tGeneral.halCoexActivityTable.numOfElements, 2202 (TI_UINT8*)(&p->twdInitParams.tGeneral.halCoexActivityTable.numOfElements) ); 2203 2204 /* Read the CoexActivity table string */ 2205 { 2206 TI_UINT8 *strCoexActivityTable; 2207 TI_UINT8 strCoexActivitySize = 0; 2208 2209 strCoexActivityTable = os_memoryAlloc(pAdapter, COEX_ACTIVITY_TABLE_MAX_NUM*COEX_ACTIVITY_TABLE_SIZE); 2210 if (strCoexActivityTable) { 2211 regReadStringParameter(pAdapter, &STRCoexActivityTable , 2212 (TI_INT8*)(defCoexActivityTable), strCoexActivitySize, 2213 (TI_UINT8*)strCoexActivityTable, &strCoexActivitySize); 2214 2215 /* Convert the CoexActivity table string */ 2216 regConvertStringtoCoexActivityTable(strCoexActivityTable , p->twdInitParams.tGeneral.halCoexActivityTable.numOfElements, &p->twdInitParams.tGeneral.halCoexActivityTable.entry[0] , strCoexActivitySize); 2217 os_memoryFree(pAdapter, strCoexActivityTable, COEX_ACTIVITY_TABLE_MAX_NUM*COEX_ACTIVITY_TABLE_SIZE); 2218 } 2219 } 2220 2221 /* 2222 Power Manager 2223 */ 2224 regReadIntegerParameter(pAdapter, 2225 &STRPowerMode, 2226 POWER_MODE_DEF_VALUE, 2227 POWER_MODE_MIN_VALUE, 2228 POWER_MODE_MAX_VALUE, 2229 sizeof p->PowerMgrInitParams.powerMode, 2230 (TI_UINT8*)&p->PowerMgrInitParams.powerMode); 2231 2232 regReadIntegerParameter(pAdapter, 2233 &STRBeaconReceiveTime, 2234 BEACON_RECEIVE_TIME_DEF_VALUE, 2235 BEACON_RECEIVE_TIME_MIN_VALUE, 2236 BEACON_RECEIVE_TIME_MAX_VALUE, 2237 sizeof p->PowerMgrInitParams.beaconReceiveTime, 2238 (TI_UINT8*)&p->PowerMgrInitParams.beaconReceiveTime); 2239 2240 regReadIntegerParameter(pAdapter, 2241 &STRBaseBandWakeUpTime, 2242 BASE_BAND_WAKE_UP_TIME_DEF_VALUE, 2243 BASE_BAND_WAKE_UP_TIME_MIN_VALUE, 2244 BASE_BAND_WAKE_UP_TIME_MAX_VALUE, 2245 sizeof p->PowerMgrInitParams.BaseBandWakeUpTime, 2246 (TI_UINT8*)&p->PowerMgrInitParams.BaseBandWakeUpTime); 2247 2248 regReadIntegerParameter(pAdapter, 2249 &STRHangoverPeriod, 2250 HANGOVER_PERIOD_DEF_VALUE, 2251 HANGOVER_PERIOD_MIN_VALUE, 2252 HANGOVER_PERIOD_MAX_VALUE, 2253 sizeof p->PowerMgrInitParams.hangoverPeriod, 2254 (TI_UINT8*)&p->PowerMgrInitParams.hangoverPeriod); 2255 2256 regReadIntegerParameter(pAdapter, 2257 &STRBeaconListenInterval, 2258 BEACON_LISTEN_INTERVAL_DEF_VALUE, 2259 BEACON_LISTEN_INTERVAL_MIN_VALUE, 2260 BEACON_LISTEN_INTERVAL_MAX_VALUE, 2261 sizeof p->PowerMgrInitParams.beaconListenInterval, 2262 (TI_UINT8*)&p->PowerMgrInitParams.beaconListenInterval); 2263 2264 regReadIntegerParameter(pAdapter, 2265 &STRDtimListenInterval, 2266 DTIM_LISTEN_INTERVAL_DEF_VALUE, 2267 DTIM_LISTEN_INTERVAL_MIN_VALUE, 2268 DTIM_LISTEN_INTERVAL_MAX_VALUE, 2269 sizeof p->PowerMgrInitParams.dtimListenInterval, 2270 (TI_UINT8*)&p->PowerMgrInitParams.dtimListenInterval); 2271 2272 regReadIntegerParameter(pAdapter, 2273 &STRNConsecutiveBeaconsMissed, 2274 N_CONSECUTIVE_BEACONS_MISSED_DEF_VALUE, 2275 N_CONSECUTIVE_BEACONS_MISSED_MIN_VALUE, 2276 N_CONSECUTIVE_BEACONS_MISSED_MAX_VALUE, 2277 sizeof p->PowerMgrInitParams.nConsecutiveBeaconsMissed, 2278 (TI_UINT8*)&p->PowerMgrInitParams.nConsecutiveBeaconsMissed); 2279 2280 regReadIntegerParameter(pAdapter, 2281 &STREnterTo802_11PsRetries, 2282 ENTER_TO_802_11_POWER_SAVE_RETRIES_DEF_VALUE, 2283 ENTER_TO_802_11_POWER_SAVE_RETRIES_MIN_VALUE, 2284 ENTER_TO_802_11_POWER_SAVE_RETRIES_MAX_VALUE, 2285 sizeof p->PowerMgrInitParams.EnterTo802_11PsRetries, 2286 (TI_UINT8*)&p->PowerMgrInitParams.EnterTo802_11PsRetries); 2287 2288 regReadIntegerParameter(pAdapter, 2289 &STRAutoPowerModeInterval, 2290 AUTO_POWER_MODE_INTERVAL_DEF_VALUE, 2291 AUTO_POWER_MODE_INTERVAL_MIN_VALUE, 2292 AUTO_POWER_MODE_INTERVAL_MAX_VALUE, 2293 sizeof p->PowerMgrInitParams.autoModeInterval, 2294 (TI_UINT8*)&p->PowerMgrInitParams.autoModeInterval); 2295 2296 regReadIntegerParameter(pAdapter, 2297 &STRAutoPowerModeActiveTh, 2298 AUTO_POWER_MODE_ACTIVE_TH_DEF_VALUE, 2299 AUTO_POWER_MODE_ACTIVE_TH_MIN_VALUE, 2300 AUTO_POWER_MODE_ACTIVE_TH_MAX_VALUE, 2301 sizeof p->PowerMgrInitParams.autoModeActiveTH, 2302 (TI_UINT8*)&p->PowerMgrInitParams.autoModeActiveTH); 2303 2304 regReadIntegerParameter(pAdapter, 2305 &STRAutoPowerModeDozeTh, 2306 AUTO_POWER_MODE_DOZE_TH_DEF_VALUE, 2307 AUTO_POWER_MODE_DOZE_TH_MIN_VALUE, 2308 AUTO_POWER_MODE_DOZE_TH_MAX_VALUE, 2309 sizeof p->PowerMgrInitParams.autoModeDozeTH, 2310 (TI_UINT8*)&p->PowerMgrInitParams.autoModeDozeTH); 2311 2312 regReadIntegerParameter(pAdapter, 2313 &STRAutoPowerModeDozeMode, 2314 AUTO_POWER_MODE_DOZE_MODE_DEF_VALUE, 2315 AUTO_POWER_MODE_DOZE_MODE_MIN_VALUE, 2316 AUTO_POWER_MODE_DOZE_MODE_MAX_VALUE, 2317 sizeof p->PowerMgrInitParams.autoModeDozeMode, 2318 (TI_UINT8*)&p->PowerMgrInitParams.autoModeDozeMode); 2319 2320 regReadIntegerParameter(pAdapter, 2321 &STRDefaultPowerLevel, 2322 POWERAUTHO_POLICY_ELP, 2323 POWERAUTHO_POLICY_ELP, 2324 POWERAUTHO_POLICY_AWAKE, 2325 sizeof p->PowerMgrInitParams.defaultPowerLevel, 2326 (TI_UINT8*)&p->PowerMgrInitParams.defaultPowerLevel); 2327 2328 regReadIntegerParameter(pAdapter, 2329 &STRPowerSavePowerLevel, 2330 POWERAUTHO_POLICY_ELP, 2331 POWERAUTHO_POLICY_ELP, 2332 POWERAUTHO_POLICY_AWAKE, 2333 sizeof p->PowerMgrInitParams.PowerSavePowerLevel, 2334 (TI_UINT8*)&p->PowerMgrInitParams.PowerSavePowerLevel); 2335 2336 2337 regReadIntegerParameter(pAdapter, 2338 &STRBurstModeEnable, 2339 BURST_MODE_ENABLE_DEF, 2340 BURST_MODE_ENABLE_MIN, 2341 BURST_MODE_ENABLE_MAX, 2342 sizeof p->qosMngrInitParams.bEnableBurstMode, 2343 (TI_UINT8*)&p->qosMngrInitParams.bEnableBurstMode); 2344 2345 regReadIntegerParameter(pAdapter, 2346 &STRDcoItrimEnabled, 2347 TWD_DCO_ITRIM_ENABLE_DEF, 2348 TWD_DCO_ITRIM_ENABLE_MIN, 2349 TWD_DCO_ITRIM_ENABLE_MAX, 2350 sizeof p->twdInitParams.tDcoItrimParams.enable, 2351 (TI_UINT8*)&p->twdInitParams.tDcoItrimParams.enable); 2352 2353 regReadIntegerParameter(pAdapter, 2354 &STRDcoItrimModerationTimeout, 2355 TWD_DCO_ITRIM_MODERATION_TIMEOUT_DEF, 2356 TWD_DCO_ITRIM_MODERATION_TIMEOUT_MIN, 2357 TWD_DCO_ITRIM_MODERATION_TIMEOUT_MAX, 2358 sizeof p->twdInitParams.tDcoItrimParams.moderationTimeoutUsec, 2359 (TI_UINT8*)&p->twdInitParams.tDcoItrimParams.moderationTimeoutUsec); 2360 2361 /*---------------------------------- 2362 TX power adjust 2363 ------------------------------------*/ 2364 2365 regReadIntegerParameter(pAdapter, &STRTxPowerCheckTime, 2366 1, 1, 1200, /* in units of 5000 ms */ 2367 sizeof p->siteMgrInitParams.TxPowerCheckTime, 2368 (TI_UINT8*)&p->siteMgrInitParams.TxPowerCheckTime); 2369 2370 2371 regReadIntegerParameter(pAdapter, &STRTxPowerControlOn, 2372 0, 0, 1, /* on/off (1/0) default is off */ 2373 sizeof p->siteMgrInitParams.TxPowerControlOn, 2374 (TI_UINT8*)&p->siteMgrInitParams.TxPowerControlOn); 2375 2376 regReadIntegerParameter(pAdapter, &STRTxPowerRssiThresh, 2377 38, 0, 200, /* the value is positive and will be translated by driver */ 2378 sizeof p->siteMgrInitParams.TxPowerRssiThresh, 2379 (TI_UINT8*)&p->siteMgrInitParams.TxPowerRssiThresh); 2380 2381 regReadIntegerParameter(pAdapter, &STRTxPowerRssiRestoreThresh, 2382 45, 0, 200, /* the value is positive and will be translated by driver */ 2383 sizeof p->siteMgrInitParams.TxPowerRssiRestoreThresh, 2384 (TI_UINT8*)&p->siteMgrInitParams.TxPowerRssiRestoreThresh); 2385 2386 regReadIntegerParameter(pAdapter, &STRTxPowerTempRecover, 2387 MIN_TX_POWER, MIN_TX_POWER, MAX_TX_POWER, 2388 sizeof p->regulatoryDomainInitParams.uTemporaryTxPower, 2389 (TI_UINT8*)&p->regulatoryDomainInitParams.uTemporaryTxPower); 2390 2391 /*---------------------------------- 2392 end of TX power adjust 2393 ------------------------------------*/ 2394 2395 regReadIntegerTable (pAdapter, &STRTxPerRatePowerLimits_2_4G_Extreme, RADIO_TX_PER_POWER_LIMITS_2_4_EXTREME_DEF_TABLE, 2396 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerRatePowerLimits_2_4G_Extreme, 2397 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_INT8),TI_TRUE); 2398 2399 regReadIntegerParameter(pAdapter, &STRDegradedLowToNormalThr_2_4G, 2400 RADIO_DEGRADED_LOW_TO_NORMAL_THR_2_4G_DEF,RADIO_DEGRADED_LOW_TO_NORMAL_THR_2_4G_MIN,RADIO_DEGRADED_LOW_TO_NORMAL_THR_2_4G_MAX,sizeof (TI_UINT8), 2401 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.DegradedLowToNormalThr_2_4G); 2402 2403 regReadIntegerParameter(pAdapter, &STRNormalToDegradedHighThr_2_4G, 2404 RADIO_NORMAL_TO_DEGRADED_HIGH_THR_2_4G_DEF,RADIO_NORMAL_TO_DEGRADED_HIGH_THR_2_4G_MIN,RADIO_NORMAL_TO_DEGRADED_HIGH_THR_2_4G_MAX,sizeof (TI_UINT8), 2405 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.NormalToDegradedHighThr_2_4G); 2406 2407 regReadIntegerParameter(pAdapter, &STRDegradedLowToNormalThr_5G, 2408 RADIO_DEGRADED_LOW_TO_NORMAL_THR_5G_DEF,RADIO_DEGRADED_LOW_TO_NORMAL_THR_5G_MIN,RADIO_DEGRADED_LOW_TO_NORMAL_THR_5G_MAX,sizeof (TI_UINT8), 2409 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.DegradedLowToNormalThr_5G); 2410 2411 regReadIntegerParameter(pAdapter, &STRNormalToDegradedHighThr_5G, 2412 RADIO_NORMAL_TO_DEGRADED_HIGH_THR_5G_DEF,RADIO_NORMAL_TO_DEGRADED_HIGH_THR_5G_MIN,RADIO_NORMAL_TO_DEGRADED_HIGH_THR_5G_MAX,sizeof (TI_UINT8), 2413 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.NormalToDegradedHighThr_5G); 2414 2415 regReadIntegerTable (pAdapter, &STRTxPerRatePowerLimits_5G_Extreme, RADIO_TX_PER_POWER_LIMITS_5_EXTREME_DEF_TABLE, 2416 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerRatePowerLimits_5G_Extreme, 2417 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 2418 2419 /*--------------- Extended Radio Parameters --------------------------*/ 2420 2421 regReadIntegerTable (pAdapter, &STRTxPerChannelPowerCompensation_2_4G, RADIO_TX_PER_CH_POWER_COMPENSATION_2_4_DEF, 2422 HALF_NUMBER_OF_2_4_G_CHANNELS, NULL, (TI_INT8*)&p->twdInitParams.tIniFileExtRadioParams.TxPerChannelPowerCompensation_2_4G, 2423 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 2424 2425 regReadIntegerTable (pAdapter, &STRTxPerChannelPowerCompensation_5G_OFDM, RADIO_TX_PER_CH_POWER_COMPENSATION_5_DEF, 2426 HALF_NUMBER_OF_5G_CHANNELS, NULL, (TI_INT8*)&p->twdInitParams.tIniFileExtRadioParams.TxPerChannelPowerCompensation_5G_OFDM, 2427 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 2428 2429 2430 regReadIntegerParameter(pAdapter, &STRSettings, 2431 65,0,255, 2432 sizeof p->twdInitParams.tPlatformGenParams.GeneralSettings, 2433 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.GeneralSettings); 2434 2435 /*---------------------- Smart Reflex Configration -----------------------*/ 2436 regReadIntegerParameter(pAdapter, &STRSRState, 2437 SMART_REFLEX_STATE_DEF, SMART_REFLEX_STATE_MIN, SMART_REFLEX_STATE_MAX, 2438 sizeof p->twdInitParams.tPlatformGenParams.SRState, 2439 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.SRState); 2440 2441 NdisZeroMemory(&SRConfigParams[0],MAX_SMART_REFLEX_PARAM ); 2442 regReadIntegerTable (pAdapter, &STRSRConfigParam1, SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE_SRF1, 2443 MAX_SMART_REFLEX_PARAM, NULL, (TI_INT8*)&SRConfigParams, 2444 (TI_UINT32*)&TempSRCnt, sizeof (TI_INT8),TI_TRUE); 2445 len = SRConfigParams[0]; 2446 NdisZeroMemory(&(p->twdInitParams.tPlatformGenParams.SRF1[0]),MAX_SMART_REFLEX_PARAM); 2447 if ((len < MAX_SMART_REFLEX_PARAM) && ((TempSRCnt <= len + 1) || (TempSRCnt == MAX_SMART_REFLEX_PARAM))) 2448 { 2449 memcpy(&(p->twdInitParams.tPlatformGenParams.SRF1[0]), &SRConfigParams[0],TempSRCnt); 2450 } 2451 2452 NdisZeroMemory(&SRConfigParams[0],MAX_SMART_REFLEX_PARAM ); 2453 regReadIntegerTable (pAdapter, &STRSRConfigParam2, SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE_SRF2, 2454 MAX_SR_PARAM_LEN, NULL, (TI_INT8*)&SRConfigParams, 2455 (TI_UINT32*)&TempSRCnt, sizeof (TI_INT8),TI_TRUE); 2456 len = SRConfigParams[0]; 2457 if ((len > MAX_SR_PARAM_LEN) || (TempSRCnt > len + 1)) 2458 { 2459 NdisZeroMemory(&(p->twdInitParams.tPlatformGenParams.SRF2[0]),MAX_SMART_REFLEX_PARAM); 2460 } 2461 else 2462 { 2463 memcpy(&(p->twdInitParams.tPlatformGenParams.SRF2[0]), &SRConfigParams[0],TempSRCnt); 2464 } 2465 2466 NdisZeroMemory(&SRConfigParams[0],MAX_SMART_REFLEX_PARAM); 2467 regReadIntegerTable (pAdapter, &STRSRConfigParam3, SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE_SRF3, 2468 MAX_SR_PARAM_LEN, NULL, (TI_INT8*)&SRConfigParams, 2469 (TI_UINT32*)&TempSRCnt, sizeof (TI_INT8), TI_TRUE); 2470 len = SRConfigParams[0]; 2471 if ((len > MAX_SR_PARAM_LEN)|| (TempSRCnt > len + 1)) 2472 { 2473 NdisZeroMemory(&(p->twdInitParams.tPlatformGenParams.SRF3[0]),MAX_SMART_REFLEX_PARAM ); 2474 } 2475 else 2476 { 2477 memcpy(&(p->twdInitParams.tPlatformGenParams.SRF3[0]), &SRConfigParams[0],TempSRCnt); 2478 } 2479 2480 /*---------------------- Power Management Configuration -----------------------*/ 2481 regReadIntegerParameter(pAdapter, 2482 &STRPowerMgmtHangOverPeriod, 2483 HANGOVER_PERIOD_DEF_VALUE, 2484 HANGOVER_PERIOD_MIN_VALUE, 2485 HANGOVER_PERIOD_MAX_VALUE, 2486 sizeof p->PowerMgrInitParams.hangOverPeriod, 2487 (TI_UINT8*)&p->PowerMgrInitParams.hangOverPeriod); 2488 2489 regReadIntegerParameter(pAdapter, 2490 &STRPowerMgmtNeedToSendNullData, 2491 POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_DEF_VALUE, 2492 POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_MIN_VALUE, 2493 POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_MAX_VALUE, 2494 sizeof p->PowerMgrInitParams.needToSendNullData, 2495 (TI_UINT8*)&p->PowerMgrInitParams.needToSendNullData); 2496 2497 regReadIntegerParameter(pAdapter, 2498 &STRPowerMgmtNullPktRateModulation, 2499 POWER_MGMNT_NULL_PACKET_RATE_MOD_DEF_VALUE, 2500 POWER_MGMNT_NULL_PACKET_RATE_MOD_MIN_VALUE, 2501 POWER_MGMNT_NULL_PACKET_RATE_MOD_MAX_VALUE, 2502 sizeof p->PowerMgrInitParams.NullPktRateModulation, 2503 (TI_UINT8*)&p->PowerMgrInitParams.NullPktRateModulation); 2504 2505 regReadIntegerParameter(pAdapter, 2506 &STRPowerMgmtNumNullPktRetries, 2507 POWER_MGMNT_NUM_NULL_PACKET_RETRY_DEF_VALUE, 2508 POWER_MGMNT_NUM_NULL_PACKET_RETRY_MIN_VALUE, 2509 POWER_MGMNT_NUM_NULL_PACKET_RETRY_MAX_VALUE, 2510 sizeof p->PowerMgrInitParams.numNullPktRetries, 2511 (TI_UINT8*)&p->PowerMgrInitParams.numNullPktRetries); 2512 2513 regReadIntegerParameter(pAdapter, 2514 &STRPowerMgmtPllLockTime, 2515 PLL_LOCK_TIME_DEF_VALUE, 2516 PLL_LOCK_TIME_MIN_VALUE, 2517 PLL_LOCK_TIME_MAX_VALUE, 2518 sizeof p->PowerMgrInitParams.PLLlockTime, 2519 (TI_UINT8*)&p->PowerMgrInitParams.PLLlockTime); 2520 2521 regReadIntegerParameter(pAdapter, 2522 &STRPsPollDeliveryFailureRecoveryPeriod, 2523 PS_POLL_FAILURE_PERIOD_DEF, 2524 PS_POLL_FAILURE_PERIOD_MIN, 2525 PS_POLL_FAILURE_PERIOD_MAX, 2526 sizeof p->PowerMgrInitParams.PsPollDeliveryFailureRecoveryPeriod, 2527 (TI_UINT8*)&p->PowerMgrInitParams.PsPollDeliveryFailureRecoveryPeriod); 2528 2529 regReadIntegerParameter(pAdapter, 2530 &STRHostClkSettlingTime, 2531 HOST_CLK_SETTLE_TIME_USEC_DEF, 2532 HOST_CLK_SETTLE_TIME_USEC_MIN, 2533 HOST_CLK_SETTLE_TIME_USEC_MAX, 2534 sizeof p->twdInitParams.tGeneral.uHostClkSettlingTime, 2535 (TI_UINT8*)&p->twdInitParams.tGeneral.uHostClkSettlingTime); 2536 2537 regReadIntegerParameter(pAdapter, 2538 &STRHostFastWakeupSupport, 2539 HOST_FAST_WAKE_SUPPORT_DEF, 2540 HOST_FAST_WAKE_SUPPORT_MIN, 2541 HOST_FAST_WAKE_SUPPORT_MAX, 2542 sizeof p->twdInitParams.tGeneral.uHostFastWakeupSupport, 2543 (TI_UINT8*)&p->twdInitParams.tGeneral.uHostFastWakeupSupport); 2544 2545 /*--------------- Power Management Wake up conditions ------------------*/ 2546 2547 regReadIntegerParameter(pAdapter, &STRListenInterval, 2548 TWD_LISTEN_INTERVAL_DEF, TWD_LISTEN_INTERVAL_MIN, 2549 TWD_LISTEN_INTERVAL_MAX, 2550 sizeof p->PowerMgrInitParams.listenInterval, 2551 (TI_UINT8*)&p->PowerMgrInitParams.listenInterval); 2552 2553 /*-----------------------------------------------------------------------*/ 2554 2555 /*--------------- Power Server Init Parameters ------------------*/ 2556 regReadIntegerParameter(pAdapter, 2557 &STRPowerMgmtNumNullPktRetries, 2558 POWER_MGMNT_NUM_NULL_PACKET_RETRY_DEF_VALUE, 2559 POWER_MGMNT_NUM_NULL_PACKET_RETRY_MIN_VALUE, 2560 POWER_MGMNT_NUM_NULL_PACKET_RETRY_MAX_VALUE, 2561 sizeof p->twdInitParams.tPowerSrv.numNullPktRetries, 2562 (TI_UINT8*)&p->twdInitParams.tPowerSrv.numNullPktRetries); 2563 2564 regReadIntegerParameter(pAdapter, 2565 &STRPowerMgmtHangOverPeriod, 2566 HANGOVER_PERIOD_DEF_VALUE, 2567 HANGOVER_PERIOD_MIN_VALUE, 2568 HANGOVER_PERIOD_MAX_VALUE, 2569 sizeof p->twdInitParams.tPowerSrv.hangOverPeriod, 2570 (TI_UINT8*)&p->twdInitParams.tPowerSrv.hangOverPeriod); 2571 /*-----------------------------------------------------------------------*/ 2572 2573 2574 /* Scan SRV */ 2575 regReadIntegerParameter(pAdapter, &STRNumberOfNoScanCompleteToRecovery, 2576 SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_DEF, 2577 SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_MIN, 2578 SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_MAX, 2579 sizeof (p->twdInitParams.tScanSrv.numberOfNoScanCompleteToRecovery), 2580 (TI_UINT8*)&(p->twdInitParams.tScanSrv.numberOfNoScanCompleteToRecovery) ); 2581 2582 regReadIntegerParameter(pAdapter, &STRTriggeredScanTimeOut, 2583 SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_DEF, 2584 SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_MIN, 2585 SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_MAX, 2586 sizeof (p->twdInitParams.tScanSrv.uTriggeredScanTimeOut), 2587 (TI_UINT8*)&(p->twdInitParams.tScanSrv.uTriggeredScanTimeOut) ); 2588 2589 2590 /* Regulatory Domain */ 2591 2592 /* Indicate the time in which the STA didn't receive any country code and was not connected, and therefore 2593 will delete its current country code */ 2594 regReadIntegerParameter(pAdapter, &STRTimeToResetCountryMs, 2595 REGULATORY_DOMAIN_COUNTRY_TIME_RESET_DEF, REGULATORY_DOMAIN_COUNTRY_TIME_RESET_MIN, 2596 REGULATORY_DOMAIN_COUNTRY_TIME_RESET_MAX, 2597 sizeof p->regulatoryDomainInitParams.uTimeOutToResetCountryMs, 2598 (TI_UINT8*)&(p->regulatoryDomainInitParams.uTimeOutToResetCountryMs)); 2599 2600 /* 802.11d/h */ 2601 regReadIntegerParameter(pAdapter, &STRMultiRegulatoryDomainEnabled, 2602 MULTI_REGULATORY_DOMAIN_ENABLED_DEF, MULTI_REGULATORY_DOMAIN_ENABLED_MIN, 2603 MULTI_REGULATORY_DOMAIN_ENABLED_MAX, 2604 sizeof p->regulatoryDomainInitParams.multiRegulatoryDomainEnabled, 2605 (TI_UINT8*)&(p->regulatoryDomainInitParams.multiRegulatoryDomainEnabled)); 2606 2607 regReadIntegerParameter(pAdapter, &STRSpectrumManagementEnabled, 2608 SPECTRUM_MANAGEMENT_ENABLED_DEF, SPECTRUM_MANAGEMENT_ENABLED_MIN, 2609 SPECTRUM_MANAGEMENT_ENABLED_MAX, 2610 sizeof p->regulatoryDomainInitParams.spectrumManagementEnabled, 2611 (TI_UINT8*)&(p->regulatoryDomainInitParams.spectrumManagementEnabled)); 2612 2613 regReadIntegerParameter(pAdapter, &STRSpectrumManagementEnabled, 2614 SPECTRUM_MANAGEMENT_ENABLED_DEF, SPECTRUM_MANAGEMENT_ENABLED_MIN, 2615 SPECTRUM_MANAGEMENT_ENABLED_MAX, 2616 sizeof p->SwitchChannelInitParams.dot11SpectrumManagementRequired, 2617 (TI_UINT8*)&(p->SwitchChannelInitParams.dot11SpectrumManagementRequired)); 2618 2619 2620 /* Scan Control Tables */ 2621 regReadStringParameter(pAdapter, &STRScanControlTable24, 2622 (TI_INT8*)&ScanControlTable24Def[0],(USHORT)(2 * NUM_OF_CHANNELS_24), 2623 (TI_UINT8*)&(ScanControlTable24Tmp[0]), 2624 (PUSHORT)&tableLen); 2625 2626 for( loopIndex = tableLen ; loopIndex < 2 * NUM_OF_CHANNELS_24 ; loopIndex++) 2627 ScanControlTable24Tmp[loopIndex] = '0'; 2628 2629 decryptScanControlTable(ScanControlTable24Tmp,(TI_UINT8*)&(p->regulatoryDomainInitParams.desiredScanControlTable.ScanControlTable24.tableString[0]),2 * NUM_OF_CHANNELS_24); 2630 2631 2632 /* Scan Control Tables for 5 Ghz*/ 2633 regReadStringParameter(pAdapter, &STRScanControlTable5, 2634 (TI_INT8*)&ScanControlTable5Def[0],(USHORT)(2 * A_5G_BAND_NUM_CHANNELS), 2635 (TI_UINT8*)&(ScanControlTable5Tmp[0]), 2636 (PUSHORT)&tableLen); 2637 2638 2639 for( loopIndex = tableLen ; loopIndex < 2 * A_5G_BAND_NUM_CHANNELS ; loopIndex++) 2640 ScanControlTable5Tmp[loopIndex] = '0'; 2641 2642 decryptScanControlTable(ScanControlTable5Tmp,(TI_UINT8*)&(p->regulatoryDomainInitParams.desiredScanControlTable.ScanControlTable5.tableString[0]),2 * A_5G_BAND_NUM_CHANNELS); 2643 2644 2645 /* Tx Power */ 2646 regReadIntegerParameter(pAdapter, &STRTxPower, 2647 DEF_TX_POWER, MIN_TX_POWER, MAX_TX_POWER, 2648 sizeof p->regulatoryDomainInitParams.desiredTxPower, 2649 (TI_UINT8*)&p->regulatoryDomainInitParams.desiredTxPower); 2650 2651 regReadIntegerParameter(pAdapter, &STRdot11WEPStatus, 2652 RSN_WEP_STATUS_DEF, RSN_WEP_STATUS_MIN, RSN_WEP_STATUS_MAX, 2653 sizeof p->rsnInitParams.privacyOn, 2654 (TI_UINT8*)&p->rsnInitParams.privacyOn); 2655 /* reverse privacy value - windows is setting 1 as off */ 2656 /* 2657 p->rsnInitParams.privacyMode = !(p->rsnInitParams.privacyOn); 2658 p->rsnInitParams.privacyOn = !(p->rsnInitParams.privacyOn); 2659 */ 2660 2661 regReadIntegerParameter(pAdapter, &STRdot11WEPDefaultKeyID, 2662 RSN_DEFAULT_KEY_ID_DEF, RSN_DEFAULT_KEY_ID_MIN, 2663 RSN_DEFAULT_KEY_ID_MAX, 2664 sizeof p->rsnInitParams.defaultKeyId, 2665 (TI_UINT8*)&p->rsnInitParams.defaultKeyId); 2666 2667 2668 regReadIntegerParameter(pAdapter, &STRMixedMode, 2669 RSN_WEPMIXEDMODE_ENABLED_DEF, RSN_WEPMIXEDMODE_ENABLED_MIN, 2670 RSN_WEPMIXEDMODE_ENABLED_MAX, 2671 sizeof p->rsnInitParams.mixedMode, 2672 (TI_UINT8*)&p->rsnInitParams.mixedMode); 2673 2674 regReadIntegerParameter(pAdapter, &STRWPAMixedMode, 2675 RSN_WPAMIXEDMODE_ENABLE_DEF, RSN_WPAMIXEDMODE_ENABLE_MIN, 2676 RSN_WPAMIXEDMODE_ENABLE_MAX, 2677 sizeof p->rsnInitParams.WPAMixedModeEnable, 2678 (TI_UINT8*)&p->rsnInitParams.WPAMixedModeEnable); 2679 2680 regReadIntegerParameter(pAdapter, &STRRSNPreAuth, 2681 RSN_PREAUTH_ENABLE_DEF, RSN_PREAUTH_ENABLE_MIN, 2682 RSN_PREAUTH_ENABLE_MAX, 2683 sizeof p->rsnInitParams.preAuthSupport, 2684 (TI_UINT8*)&p->rsnInitParams.preAuthSupport); 2685 2686 regReadIntegerParameter(pAdapter, &STRRSNPreAuthTimeout, 2687 RSN_PREAUTH_TIMEOUT_DEF, RSN_PREAUTH_TIMEOUT_MIN, 2688 RSN_PREAUTH_TIMEOUT_MAX, 2689 sizeof p->rsnInitParams.preAuthTimeout, 2690 (TI_UINT8*)&p->rsnInitParams.preAuthTimeout); 2691 2692 regReadIntegerParameter(pAdapter, &STRPairwiseMicFailureFilter, 2693 PAIRWISE_MIC_FAIL_FILTER_DEF, PAIRWISE_MIC_FAIL_FILTER_MIN, 2694 PAIRWISE_MIC_FAIL_FILTER_MAX, 2695 sizeof p->rsnInitParams.bPairwiseMicFailureFilter, 2696 (TI_UINT8*)&p->rsnInitParams.bPairwiseMicFailureFilter); 2697 2698 regReadWepKeyParameter(pAdapter, (TI_UINT8*)p->rsnInitParams.keys, p->rsnInitParams.defaultKeyId); 2699 2700 2701 /*--------------------------- 2702 QOS parameters 2703 -----------------------------*/ 2704 2705 regReadIntegerParameter(pAdapter, &STRClsfr_Type, 2706 CLSFR_TYPE_DEF, CLSFR_TYPE_MIN, 2707 CLSFR_TYPE_MAX, 2708 sizeof p->txDataInitParams.ClsfrInitParam.eClsfrType, 2709 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.eClsfrType); 2710 2711 switch(p->txDataInitParams.ClsfrInitParam.eClsfrType) 2712 { 2713 case D_TAG_CLSFR: 2714 /* Trivial mapping D-tag to D-tag - no need to read more keys*/ 2715 break; 2716 2717 case DSCP_CLSFR: 2718 2719 regReadIntegerParameter(pAdapter, &STRNumOfCodePoints, 2720 NUM_OF_CODE_POINTS_DEF, NUM_OF_CODE_POINTS_MIN, 2721 NUM_OF_CODE_POINTS_MAX, 2722 sizeof p->txDataInitParams.ClsfrInitParam.uNumActiveEntries, 2723 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.uNumActiveEntries); 2724 regReadIntegerParameter(pAdapter, &STRDSCPClassifier00_CodePoint, 2725 DSCP_CLASSIFIER_CODE_POINT_00, CLASSIFIER_CODE_POINT_MIN, 2726 CLASSIFIER_CODE_POINT_MAX, 2727 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.CodePoint, 2728 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.CodePoint); 2729 regReadIntegerParameter(pAdapter, &STRDSCPClassifier01_CodePoint, 2730 DSCP_CLASSIFIER_CODE_POINT_01, CLASSIFIER_CODE_POINT_MIN, 2731 CLASSIFIER_CODE_POINT_MAX, 2732 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.CodePoint, 2733 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.CodePoint); 2734 regReadIntegerParameter(pAdapter, &STRDSCPClassifier02_CodePoint, 2735 DSCP_CLASSIFIER_CODE_POINT_02, CLASSIFIER_CODE_POINT_MIN, 2736 CLASSIFIER_CODE_POINT_MAX, 2737 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.CodePoint, 2738 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.CodePoint); 2739 regReadIntegerParameter(pAdapter, &STRDSCPClassifier03_CodePoint, 2740 DSCP_CLASSIFIER_CODE_POINT_03, CLASSIFIER_CODE_POINT_MIN, 2741 CLASSIFIER_CODE_POINT_MAX, 2742 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.CodePoint, 2743 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.CodePoint); 2744 regReadIntegerParameter(pAdapter, &STRDSCPClassifier04_CodePoint, 2745 DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2746 CLASSIFIER_CODE_POINT_MAX, 2747 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.CodePoint, 2748 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.CodePoint); 2749 regReadIntegerParameter(pAdapter, &STRDSCPClassifier05_CodePoint, 2750 DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2751 CLASSIFIER_CODE_POINT_MAX, 2752 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.CodePoint, 2753 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.CodePoint); 2754 regReadIntegerParameter(pAdapter, &STRDSCPClassifier06_CodePoint, 2755 DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2756 CLASSIFIER_CODE_POINT_MAX, 2757 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.CodePoint, 2758 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.CodePoint); 2759 regReadIntegerParameter(pAdapter, &STRDSCPClassifier07_CodePoint, 2760 DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2761 CLASSIFIER_CODE_POINT_MAX, 2762 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.CodePoint, 2763 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.CodePoint); 2764 regReadIntegerParameter(pAdapter, &STRDSCPClassifier08_CodePoint, 2765 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2766 CLASSIFIER_CODE_POINT_MAX, 2767 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.CodePoint, 2768 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.CodePoint); 2769 regReadIntegerParameter(pAdapter, &STRDSCPClassifier09_CodePoint, 2770 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2771 CLASSIFIER_CODE_POINT_MAX, 2772 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.CodePoint, 2773 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.CodePoint); 2774 regReadIntegerParameter(pAdapter, &STRDSCPClassifier10_CodePoint, 2775 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2776 CLASSIFIER_CODE_POINT_MAX, 2777 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.CodePoint, 2778 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.CodePoint); 2779 regReadIntegerParameter(pAdapter, &STRDSCPClassifier11_CodePoint, 2780 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2781 CLASSIFIER_CODE_POINT_MAX, 2782 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.CodePoint, 2783 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.CodePoint); 2784 regReadIntegerParameter(pAdapter, &STRDSCPClassifier12_CodePoint, 2785 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2786 CLASSIFIER_CODE_POINT_MAX, 2787 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.CodePoint, 2788 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.CodePoint); 2789 regReadIntegerParameter(pAdapter, &STRDSCPClassifier13_CodePoint, 2790 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2791 CLASSIFIER_CODE_POINT_MAX, 2792 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.CodePoint, 2793 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.CodePoint); 2794 regReadIntegerParameter(pAdapter, &STRDSCPClassifier14_CodePoint, 2795 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2796 CLASSIFIER_CODE_POINT_MAX, 2797 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.CodePoint, 2798 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.CodePoint); 2799 regReadIntegerParameter(pAdapter, &STRDSCPClassifier15_CodePoint, 2800 CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN, 2801 CLASSIFIER_CODE_POINT_MAX, 2802 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.CodePoint, 2803 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.CodePoint); 2804 regReadIntegerParameter(pAdapter, &STRDSCPClassifier00_DTag, 2805 DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2806 CLASSIFIER_DTAG_MAX, 2807 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag, 2808 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag); 2809 regReadIntegerParameter(pAdapter, &STRDSCPClassifier01_DTag, 2810 DSCP_CLASSIFIER_DTAG_00, CLASSIFIER_DTAG_MIN, 2811 CLASSIFIER_DTAG_MAX, 2812 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag, 2813 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag); 2814 regReadIntegerParameter(pAdapter, &STRDSCPClassifier02_DTag, 2815 DSCP_CLASSIFIER_DTAG_01, CLASSIFIER_DTAG_MIN, 2816 CLASSIFIER_DTAG_MAX, 2817 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag, 2818 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag); 2819 regReadIntegerParameter(pAdapter, &STRDSCPClassifier03_DTag, 2820 DSCP_CLASSIFIER_DTAG_02, CLASSIFIER_DTAG_MIN, 2821 CLASSIFIER_DTAG_MAX, 2822 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag, 2823 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag); 2824 regReadIntegerParameter(pAdapter, &STRDSCPClassifier04_DTag, 2825 DSCP_CLASSIFIER_DTAG_03, CLASSIFIER_DTAG_MIN, 2826 CLASSIFIER_DTAG_MAX, 2827 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag, 2828 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag); 2829 regReadIntegerParameter(pAdapter, &STRDSCPClassifier05_DTag, 2830 DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2831 CLASSIFIER_DTAG_MAX, 2832 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag, 2833 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag); 2834 regReadIntegerParameter(pAdapter, &STRDSCPClassifier06_DTag, 2835 DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2836 CLASSIFIER_DTAG_MAX, 2837 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag, 2838 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag); 2839 regReadIntegerParameter(pAdapter, &STRDSCPClassifier07_DTag, 2840 DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2841 CLASSIFIER_DTAG_MAX, 2842 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag, 2843 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag); 2844 regReadIntegerParameter(pAdapter, &STRDSCPClassifier08_DTag, 2845 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2846 CLASSIFIER_DTAG_MAX, 2847 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag, 2848 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag); 2849 regReadIntegerParameter(pAdapter, &STRDSCPClassifier09_DTag, 2850 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2851 CLASSIFIER_DTAG_MAX, 2852 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag, 2853 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag); 2854 regReadIntegerParameter(pAdapter, &STRDSCPClassifier10_DTag, 2855 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2856 CLASSIFIER_DTAG_MAX, 2857 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag, 2858 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag); 2859 regReadIntegerParameter(pAdapter, &STRDSCPClassifier11_DTag, 2860 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2861 CLASSIFIER_DTAG_MAX, 2862 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag, 2863 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag); 2864 regReadIntegerParameter(pAdapter, &STRDSCPClassifier12_DTag, 2865 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2866 CLASSIFIER_DTAG_MAX, 2867 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag, 2868 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag); 2869 regReadIntegerParameter(pAdapter, &STRDSCPClassifier13_DTag, 2870 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2871 CLASSIFIER_DTAG_MAX, 2872 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag, 2873 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag); 2874 regReadIntegerParameter(pAdapter, &STRDSCPClassifier14_DTag, 2875 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2876 CLASSIFIER_DTAG_MAX, 2877 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag, 2878 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag); 2879 regReadIntegerParameter(pAdapter, &STRDSCPClassifier15_DTag, 2880 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2881 CLASSIFIER_DTAG_MAX, 2882 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag, 2883 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag); 2884 2885 2886 break; 2887 2888 case PORT_CLSFR: 2889 2890 regReadIntegerParameter(pAdapter, &STRNumOfDstPortClassifiers, 2891 NUM_OF_PORT_CLASSIFIERS_DEF, NUM_OF_PORT_CLASSIFIERS_MIN, 2892 NUM_OF_PORT_CLASSIFIERS_MAX, 2893 sizeof p->txDataInitParams.ClsfrInitParam.uNumActiveEntries, 2894 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.uNumActiveEntries); 2895 regReadIntegerParameter(pAdapter, &STRPortClassifier00_Port, 2896 PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2897 CLASSIFIER_PORT_MAX, 2898 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstPortNum, 2899 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstPortNum); 2900 regReadIntegerParameter(pAdapter, &STRPortClassifier01_Port, 2901 PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2902 CLASSIFIER_PORT_MAX, 2903 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstPortNum, 2904 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstPortNum); 2905 regReadIntegerParameter(pAdapter, &STRPortClassifier02_Port, 2906 PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2907 CLASSIFIER_PORT_MAX, 2908 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstPortNum, 2909 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstPortNum); 2910 regReadIntegerParameter(pAdapter, &STRPortClassifier03_Port, 2911 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2912 CLASSIFIER_PORT_MAX, 2913 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstPortNum, 2914 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstPortNum); 2915 regReadIntegerParameter(pAdapter, &STRPortClassifier04_Port, 2916 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2917 CLASSIFIER_PORT_MAX, 2918 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstPortNum, 2919 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstPortNum); 2920 regReadIntegerParameter(pAdapter, &STRPortClassifier05_Port, 2921 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2922 CLASSIFIER_PORT_MAX, 2923 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstPortNum, 2924 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstPortNum); 2925 regReadIntegerParameter(pAdapter, &STRPortClassifier06_Port, 2926 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2927 CLASSIFIER_PORT_MAX, 2928 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstPortNum, 2929 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstPortNum); 2930 regReadIntegerParameter(pAdapter, &STRPortClassifier07_Port, 2931 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2932 CLASSIFIER_PORT_MAX, 2933 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstPortNum, 2934 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstPortNum); 2935 regReadIntegerParameter(pAdapter, &STRPortClassifier08_Port, 2936 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2937 CLASSIFIER_PORT_MAX, 2938 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstPortNum, 2939 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstPortNum); 2940 regReadIntegerParameter(pAdapter, &STRPortClassifier09_Port, 2941 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2942 CLASSIFIER_PORT_MAX, 2943 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstPortNum, 2944 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstPortNum); 2945 regReadIntegerParameter(pAdapter, &STRPortClassifier10_Port, 2946 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2947 CLASSIFIER_PORT_MAX, 2948 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstPortNum, 2949 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstPortNum); 2950 regReadIntegerParameter(pAdapter, &STRPortClassifier11_Port, 2951 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2952 CLASSIFIER_PORT_MAX, 2953 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstPortNum, 2954 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstPortNum); 2955 regReadIntegerParameter(pAdapter, &STRPortClassifier12_Port, 2956 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2957 CLASSIFIER_PORT_MAX, 2958 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstPortNum, 2959 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstPortNum); 2960 regReadIntegerParameter(pAdapter, &STRPortClassifier13_Port, 2961 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2962 CLASSIFIER_PORT_MAX, 2963 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstPortNum, 2964 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstPortNum); 2965 regReadIntegerParameter(pAdapter, &STRPortClassifier14_Port, 2966 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2967 CLASSIFIER_PORT_MAX, 2968 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstPortNum, 2969 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstPortNum); 2970 regReadIntegerParameter(pAdapter, &STRPortClassifier15_Port, 2971 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 2972 CLASSIFIER_PORT_MAX, 2973 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstPortNum, 2974 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstPortNum); 2975 regReadIntegerParameter(pAdapter, &STRPortClassifier00_DTag, 2976 PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2977 CLASSIFIER_DTAG_MAX, 2978 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag, 2979 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag); 2980 regReadIntegerParameter(pAdapter, &STRPortClassifier01_DTag, 2981 PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2982 CLASSIFIER_DTAG_MAX, 2983 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag, 2984 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag); 2985 regReadIntegerParameter(pAdapter, &STRPortClassifier02_DTag, 2986 PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2987 CLASSIFIER_DTAG_MAX, 2988 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag, 2989 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag); 2990 regReadIntegerParameter(pAdapter, &STRPortClassifier03_DTag, 2991 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2992 CLASSIFIER_DTAG_MAX, 2993 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag, 2994 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag); 2995 regReadIntegerParameter(pAdapter, &STRPortClassifier04_DTag, 2996 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 2997 CLASSIFIER_DTAG_MAX, 2998 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag, 2999 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag); 3000 regReadIntegerParameter(pAdapter, &STRPortClassifier05_DTag, 3001 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3002 CLASSIFIER_DTAG_MAX, 3003 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag, 3004 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag); 3005 regReadIntegerParameter(pAdapter, &STRPortClassifier06_DTag, 3006 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3007 CLASSIFIER_DTAG_MAX, 3008 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag, 3009 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag); 3010 regReadIntegerParameter(pAdapter, &STRPortClassifier07_DTag, 3011 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3012 CLASSIFIER_DTAG_MAX, 3013 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag, 3014 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag); 3015 regReadIntegerParameter(pAdapter, &STRPortClassifier08_DTag, 3016 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3017 CLASSIFIER_DTAG_MAX, 3018 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag, 3019 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag); 3020 regReadIntegerParameter(pAdapter, &STRPortClassifier09_DTag, 3021 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3022 CLASSIFIER_DTAG_MAX, 3023 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag, 3024 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag); 3025 regReadIntegerParameter(pAdapter, &STRPortClassifier10_DTag, 3026 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3027 CLASSIFIER_DTAG_MAX, 3028 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag, 3029 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag); 3030 regReadIntegerParameter(pAdapter, &STRPortClassifier11_DTag, 3031 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3032 CLASSIFIER_DTAG_MAX, 3033 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag, 3034 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag); 3035 regReadIntegerParameter(pAdapter, &STRPortClassifier12_DTag, 3036 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3037 CLASSIFIER_DTAG_MAX, 3038 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag, 3039 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag); 3040 regReadIntegerParameter(pAdapter, &STRPortClassifier13_DTag, 3041 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3042 CLASSIFIER_DTAG_MAX, 3043 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag, 3044 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag); 3045 regReadIntegerParameter(pAdapter, &STRPortClassifier14_DTag, 3046 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3047 CLASSIFIER_DTAG_MAX, 3048 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag, 3049 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag); 3050 regReadIntegerParameter(pAdapter, &STRPortClassifier15_DTag, 3051 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3052 CLASSIFIER_DTAG_MAX, 3053 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag, 3054 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag); 3055 3056 break; 3057 3058 3059 case IPPORT_CLSFR: 3060 3061 regReadIntegerParameter(pAdapter, &STRNumOfDstIPPortClassifiers, 3062 NUM_OF_IPPORT_CLASSIFIERS_DEF, NUM_OF_IPPORT_CLASSIFIERS_MIN, 3063 NUM_OF_IPPORT_CLASSIFIERS_MAX, 3064 sizeof p->txDataInitParams.ClsfrInitParam.uNumActiveEntries, 3065 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.uNumActiveEntries); 3066 3067 regReadStringParameter(pAdapter, &STRIPPortClassifier00_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3068 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstIPAddress, 4); 3069 3070 regReadStringParameter(pAdapter, &STRIPPortClassifier01_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3071 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstIPAddress, 4); 3072 3073 regReadStringParameter(pAdapter, &STRIPPortClassifier02_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3074 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstIPAddress, 4); 3075 3076 regReadStringParameter(pAdapter, &STRIPPortClassifier03_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3077 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstIPAddress, 4); 3078 3079 regReadStringParameter(pAdapter, &STRIPPortClassifier04_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3080 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstIPAddress, 4); 3081 3082 regReadStringParameter(pAdapter, &STRIPPortClassifier05_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3083 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstIPAddress, 4); 3084 3085 regReadStringParameter(pAdapter, &STRIPPortClassifier06_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3086 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstIPAddress, 4); 3087 3088 regReadStringParameter(pAdapter, &STRIPPortClassifier07_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3089 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstIPAddress, 4); 3090 3091 regReadStringParameter(pAdapter, &STRIPPortClassifier08_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3092 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstIPAddress, 4); 3093 3094 regReadStringParameter(pAdapter, &STRIPPortClassifier09_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3095 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstIPAddress, 4); 3096 3097 regReadStringParameter(pAdapter, &STRIPPortClassifier10_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3098 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstIPAddress, 4); 3099 3100 regReadStringParameter(pAdapter, &STRIPPortClassifier11_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3101 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstIPAddress, 4); 3102 3103 regReadStringParameter(pAdapter, &STRIPPortClassifier12_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3104 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstIPAddress, 4); 3105 3106 regReadStringParameter(pAdapter, &STRIPPortClassifier13_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3107 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstIPAddress, 4); 3108 3109 regReadStringParameter(pAdapter, &STRIPPortClassifier14_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3110 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstIPAddress, 4); 3111 3112 regReadStringParameter(pAdapter, &STRIPPortClassifier15_IPAddress, (TI_INT8*)(ClsfrIp), 11, (TI_UINT8*)ClsfrIpString, &ClsfrIpStringSize); 3113 initValusFromRgstryString( (TI_INT8*)(ClsfrIpString), (TI_INT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstIPAddress, 4); 3114 3115 regReadIntegerParameter(pAdapter, &STRIPPortClassifier00_Port, 3116 IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3117 CLASSIFIER_PORT_MAX, 3118 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstPortNum, 3119 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstPortNum); 3120 regReadIntegerParameter(pAdapter, &STRIPPortClassifier01_Port, 3121 IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3122 CLASSIFIER_PORT_MAX, 3123 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstPortNum, 3124 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstPortNum); 3125 regReadIntegerParameter(pAdapter, &STRIPPortClassifier02_Port, 3126 IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3127 CLASSIFIER_PORT_MAX, 3128 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstPortNum, 3129 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstPortNum); 3130 regReadIntegerParameter(pAdapter, &STRIPPortClassifier03_Port, 3131 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3132 CLASSIFIER_PORT_MAX, 3133 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstPortNum, 3134 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstPortNum); 3135 regReadIntegerParameter(pAdapter, &STRIPPortClassifier04_Port, 3136 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3137 CLASSIFIER_PORT_MAX, 3138 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstPortNum, 3139 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstPortNum); 3140 regReadIntegerParameter(pAdapter, &STRIPPortClassifier05_Port, 3141 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3142 CLASSIFIER_PORT_MAX, 3143 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstPortNum, 3144 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstPortNum); 3145 regReadIntegerParameter(pAdapter, &STRIPPortClassifier06_Port, 3146 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3147 CLASSIFIER_PORT_MAX, 3148 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstPortNum, 3149 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstPortNum); 3150 regReadIntegerParameter(pAdapter, &STRIPPortClassifier07_Port, 3151 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3152 CLASSIFIER_PORT_MAX, 3153 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstPortNum, 3154 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstPortNum); 3155 regReadIntegerParameter(pAdapter, &STRIPPortClassifier08_Port, 3156 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3157 CLASSIFIER_PORT_MAX, 3158 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstPortNum, 3159 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstPortNum); 3160 regReadIntegerParameter(pAdapter, &STRIPPortClassifier09_Port, 3161 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3162 CLASSIFIER_PORT_MAX, 3163 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstPortNum, 3164 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstPortNum); 3165 regReadIntegerParameter(pAdapter, &STRIPPortClassifier10_Port, 3166 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3167 CLASSIFIER_PORT_MAX, 3168 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstPortNum, 3169 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstPortNum); 3170 regReadIntegerParameter(pAdapter, &STRIPPortClassifier11_Port, 3171 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3172 CLASSIFIER_PORT_MAX, 3173 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstPortNum, 3174 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstPortNum); 3175 regReadIntegerParameter(pAdapter, &STRIPPortClassifier12_Port, 3176 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3177 CLASSIFIER_PORT_MAX, 3178 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstPortNum, 3179 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstPortNum); 3180 regReadIntegerParameter(pAdapter, &STRIPPortClassifier13_Port, 3181 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3182 CLASSIFIER_PORT_MAX, 3183 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstPortNum, 3184 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstPortNum); 3185 regReadIntegerParameter(pAdapter, &STRIPPortClassifier14_Port, 3186 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3187 CLASSIFIER_PORT_MAX, 3188 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstPortNum, 3189 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstPortNum); 3190 regReadIntegerParameter(pAdapter, &STRIPPortClassifier15_Port, 3191 CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN, 3192 CLASSIFIER_PORT_MAX, 3193 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstPortNum, 3194 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstPortNum); 3195 regReadIntegerParameter(pAdapter, &STRIPPortClassifier00_DTag, 3196 IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3197 CLASSIFIER_DTAG_MAX, 3198 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag, 3199 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag); 3200 regReadIntegerParameter(pAdapter, &STRIPPortClassifier01_DTag, 3201 IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3202 CLASSIFIER_DTAG_MAX, 3203 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag, 3204 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag); 3205 regReadIntegerParameter(pAdapter, &STRIPPortClassifier02_DTag, 3206 IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3207 CLASSIFIER_DTAG_MAX, 3208 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag, 3209 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag); 3210 regReadIntegerParameter(pAdapter, &STRIPPortClassifier03_DTag, 3211 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3212 CLASSIFIER_DTAG_MAX, 3213 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag, 3214 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag); 3215 regReadIntegerParameter(pAdapter, &STRIPPortClassifier04_DTag, 3216 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3217 CLASSIFIER_DTAG_MAX, 3218 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag, 3219 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag); 3220 regReadIntegerParameter(pAdapter, &STRIPPortClassifier05_DTag, 3221 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3222 CLASSIFIER_DTAG_MAX, 3223 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag, 3224 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag); 3225 regReadIntegerParameter(pAdapter, &STRIPPortClassifier06_DTag, 3226 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3227 CLASSIFIER_DTAG_MAX, 3228 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag, 3229 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag); 3230 regReadIntegerParameter(pAdapter, &STRIPPortClassifier07_DTag, 3231 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3232 CLASSIFIER_DTAG_MAX, 3233 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag, 3234 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag); 3235 regReadIntegerParameter(pAdapter, &STRIPPortClassifier08_DTag, 3236 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3237 CLASSIFIER_DTAG_MAX, 3238 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag, 3239 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag); 3240 regReadIntegerParameter(pAdapter, &STRIPPortClassifier09_DTag, 3241 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3242 CLASSIFIER_DTAG_MAX, 3243 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag, 3244 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag); 3245 regReadIntegerParameter(pAdapter, &STRIPPortClassifier10_DTag, 3246 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3247 CLASSIFIER_DTAG_MAX, 3248 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag, 3249 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag); 3250 regReadIntegerParameter(pAdapter, &STRIPPortClassifier11_DTag, 3251 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3252 CLASSIFIER_DTAG_MAX, 3253 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag, 3254 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag); 3255 regReadIntegerParameter(pAdapter, &STRIPPortClassifier12_DTag, 3256 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3257 CLASSIFIER_DTAG_MAX, 3258 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag, 3259 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag); 3260 regReadIntegerParameter(pAdapter, &STRIPPortClassifier13_DTag, 3261 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3262 CLASSIFIER_DTAG_MAX, 3263 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag, 3264 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag); 3265 regReadIntegerParameter(pAdapter, &STRIPPortClassifier14_DTag, 3266 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3267 CLASSIFIER_DTAG_MAX, 3268 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag, 3269 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag); 3270 regReadIntegerParameter(pAdapter, &STRIPPortClassifier15_DTag, 3271 CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN, 3272 CLASSIFIER_DTAG_MAX, 3273 sizeof p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag, 3274 (TI_UINT8*)&p->txDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag); 3275 3276 break; 3277 3278 } 3279 3280 3281 3282 /* --------------------------- 3283 3284 Traffic Intensity Threshold 3285 3286 ---------------------------*/ 3287 regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresHigh, 3288 CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_DEF, 3289 CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_MIN, 3290 CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_MAX, 3291 sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.uHighThreshold, 3292 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.uHighThreshold); 3293 3294 regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresLow, 3295 CTRL_DATA_TRAFFIC_THRESHOLD_LOW_DEF, 3296 CTRL_DATA_TRAFFIC_THRESHOLD_LOW_MIN, 3297 CTRL_DATA_TRAFFIC_THRESHOLD_LOW_MAX, 3298 sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.uLowThreshold, 3299 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.uLowThreshold); 3300 3301 regReadIntegerParameter(pAdapter, &STRTrafficIntensityTestInterval, 3302 CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_DEF, 3303 CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_MIN, 3304 CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_MAX, 3305 sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.TestInterval, 3306 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.TestInterval); 3307 3308 regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresholdEnabled, 3309 CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_DEF, 3310 CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_MIN, 3311 CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_MAX, 3312 sizeof p->ctrlDataInitParams.ctrlDataTrafficThresholdEnabled, 3313 (TI_UINT8*)&p->ctrlDataInitParams.ctrlDataTrafficThresholdEnabled); 3314 3315 regReadIntegerParameter(pAdapter, &STRTrafficMonitorMinIntervalPercentage, 3316 TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_DEF, 3317 TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_MIN, 3318 TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_MAX, 3319 sizeof p->trafficMonitorMinIntervalPercentage, 3320 (TI_UINT8*)&p->trafficMonitorMinIntervalPercentage); 3321 3322 regReadIntegerParameter(pAdapter, &STRWMEEnable, 3323 WME_ENABLED_DEF, WME_ENABLED_MIN, 3324 WME_ENABLED_MAX, 3325 sizeof p->qosMngrInitParams.wmeEnable, 3326 (TI_UINT8*)&p->qosMngrInitParams.wmeEnable); 3327 3328 regReadIntegerParameter(pAdapter, &STRTrafficAdmCtrlEnable, 3329 QOS_TRAFFIC_ADM_CTRL_ENABLED_DEF, QOS_TRAFFIC_ADM_CTRL_ENABLED_MIN, 3330 QOS_TRAFFIC_ADM_CTRL_ENABLED_MAX, 3331 sizeof p->qosMngrInitParams.trafficAdmCtrlEnable, 3332 (TI_UINT8*)&p->qosMngrInitParams.trafficAdmCtrlEnable); 3333 3334 regReadIntegerParameter(pAdapter, &STRdesiredPsMode, 3335 QOS_DESIRED_PS_MODE_DEF, QOS_DESIRED_PS_MODE_MIN, 3336 QOS_DESIRED_PS_MODE_MAX, 3337 sizeof p->qosMngrInitParams.desiredPsMode, 3338 (TI_UINT8*)&p->qosMngrInitParams.desiredPsMode); 3339 3340 regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeBE, 3341 QOS_MSDU_LIFE_TIME_BE_DEF, QOS_MSDU_LIFE_TIME_BE_MIN, 3342 QOS_MSDU_LIFE_TIME_BE_MAX, 3343 sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE], 3344 (TI_UINT8*)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE]); 3345 3346 regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeBK, 3347 QOS_MSDU_LIFE_TIME_BK_DEF, QOS_MSDU_LIFE_TIME_BK_MIN, 3348 QOS_MSDU_LIFE_TIME_BK_MAX, 3349 sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK], 3350 (TI_UINT8*)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK]); 3351 3352 regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeVI, 3353 QOS_MSDU_LIFE_TIME_VI_DEF, QOS_MSDU_LIFE_TIME_VI_MIN, 3354 QOS_MSDU_LIFE_TIME_VI_MAX, 3355 sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI], 3356 (TI_UINT8*)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI]); 3357 3358 regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeVO, 3359 QOS_MSDU_LIFE_TIME_VO_DEF, QOS_MSDU_LIFE_TIME_VO_MIN, 3360 QOS_MSDU_LIFE_TIME_VO_MAX, 3361 sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO], 3362 (TI_UINT8*)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO]); 3363 3364 3365 regReadIntegerParameter(pAdapter, &STRQOSrxTimeOutPsPoll, 3366 QOS_RX_TIMEOUT_PS_POLL_DEF, QOS_RX_TIMEOUT_PS_POLL_MIN, 3367 QOS_RX_TIMEOUT_PS_POLL_MAX, 3368 sizeof p->twdInitParams.tGeneral.rxTimeOut.psPoll, 3369 (TI_UINT8*)&p->twdInitParams.tGeneral.rxTimeOut.psPoll); 3370 3371 regReadIntegerParameter(pAdapter, &STRQOSrxTimeOutUPSD, 3372 QOS_RX_TIMEOUT_UPSD_DEF, QOS_RX_TIMEOUT_UPSD_MIN, 3373 QOS_RX_TIMEOUT_UPSD_MAX, 3374 sizeof p->twdInitParams.tGeneral.rxTimeOut.UPSD, 3375 (TI_UINT8*)&p->twdInitParams.tGeneral.rxTimeOut.UPSD); 3376 3377 /* Note: The PsPoll wait timeout should be aligned with the UPSD setting */ 3378 /* p->PowerMgrInitParams.HwPsPollResponseTimeout = (TI_UINT8)p->qosMngrInitParams.rxTimeout.UPSD;*/ 3379 3380 regReadIntegerParameter(pAdapter, &STRQOSwmePsModeBE, 3381 QOS_WME_PS_MODE_BE_DEF, QOS_WME_PS_MODE_BE_MIN, 3382 QOS_WME_PS_MODE_BE_MAX, 3383 sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BE], 3384 (TI_UINT8*)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BE]); 3385 3386 regReadIntegerParameter(pAdapter, &STRQOSwmePsModeBK, 3387 QOS_WME_PS_MODE_BK_DEF, QOS_WME_PS_MODE_BK_MIN, 3388 QOS_WME_PS_MODE_BK_MAX, 3389 sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BK], 3390 (TI_UINT8*)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BK]); 3391 3392 regReadIntegerParameter(pAdapter, &STRQOSwmePsModeVI, 3393 QOS_WME_PS_MODE_VI_DEF, QOS_WME_PS_MODE_VI_MIN, 3394 QOS_WME_PS_MODE_VI_MAX, 3395 sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VI], 3396 (TI_UINT8*)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VI]); 3397 3398 regReadIntegerParameter(pAdapter, &STRQOSwmePsModeVO, 3399 QOS_WME_PS_MODE_VO_DEF, QOS_WME_PS_MODE_VO_MIN, 3400 QOS_WME_PS_MODE_VO_MAX, 3401 sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VO], 3402 (TI_UINT8*)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VO]); 3403 3404 3405 /* HW Tx queues buffers allocation low threshold */ 3406 regReadIntegerParameter(pAdapter, &STRQOStxBlksThresholdBE, 3407 QOS_TX_BLKS_THRESHOLD_BE_DEF, QOS_TX_BLKS_THRESHOLD_MIN, 3408 QOS_TX_BLKS_THRESHOLD_MAX, 3409 sizeof p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BE], 3410 (TI_UINT8*)&p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BE]); 3411 3412 regReadIntegerParameter(pAdapter, &STRQOStxBlksThresholdBK, 3413 QOS_TX_BLKS_THRESHOLD_BK_DEF, QOS_TX_BLKS_THRESHOLD_MIN, 3414 QOS_TX_BLKS_THRESHOLD_MAX, 3415 sizeof p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BK], 3416 (TI_UINT8*)&p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BK]); 3417 3418 regReadIntegerParameter(pAdapter, &STRQOStxBlksThresholdVI, 3419 QOS_TX_BLKS_THRESHOLD_VI_DEF, QOS_TX_BLKS_THRESHOLD_MIN, 3420 QOS_TX_BLKS_THRESHOLD_MAX, 3421 sizeof p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VI], 3422 (TI_UINT8*)&p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VI]); 3423 3424 regReadIntegerParameter(pAdapter, &STRQOStxBlksThresholdVO, 3425 QOS_TX_BLKS_THRESHOLD_VO_DEF, QOS_TX_BLKS_THRESHOLD_MIN, 3426 QOS_TX_BLKS_THRESHOLD_MAX, 3427 sizeof p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VO], 3428 (TI_UINT8*)&p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VO]); 3429 3430 /* HW Rx mem-blocks Number */ 3431 regReadIntegerParameter(pAdapter, &STRRxMemBlksNum, 3432 RX_MEM_BLKS_NUM_DEF, RX_MEM_BLKS_NUM_MIN, RX_MEM_BLKS_NUM_MAX, 3433 sizeof p->twdInitParams.tGeneral.uRxMemBlksNum, 3434 (TI_UINT8*)&p->twdInitParams.tGeneral.uRxMemBlksNum); 3435 3436 regReadIntegerParameter(pAdapter, &STRWiFiMode, 3437 WIFI_MODE_DEF, WIFI_MODE_MIN, 3438 WIFI_MODE_MAX, 3439 sizeof uWiFiMode, 3440 (TI_UINT8*)&uWiFiMode); 3441 3442 regReadIntegerParameter(pAdapter, &STRPerformanceBoost, 3443 PERFORMANCE_BOOST_MODE_DEF, PERFORMANCE_BOOST_MODE_MIN, PERFORMANCE_BOOST_MODE_MAX, 3444 sizeof uPerformanceBoostMode, 3445 (TI_UINT8*)&uPerformanceBoostMode); 3446 3447 regReadIntegerParameter(pAdapter, &STRMaxAMPDU, 3448 MAX_MPDU_DEF, MAX_MPDU_MIN_VALUE, MAX_MPDU_MAX_VALUE, 3449 sizeof p->twdInitParams.tGeneral.uMaxAMPDU, 3450 (TI_UINT8*)&p->twdInitParams.tGeneral.uMaxAMPDU); 3451 3452 regReadIntegerParameter(pAdapter, &STRStopNetStackTx, 3453 STOP_NET_STACK_TX_DEF, STOP_NET_STACK_TX_MIN, 3454 STOP_NET_STACK_TX_MAX, 3455 sizeof p->txDataInitParams.bStopNetStackTx, 3456 (TI_UINT8*)&p->txDataInitParams.bStopNetStackTx); 3457 3458 regReadIntegerParameter(pAdapter, &STRSettings, 3459 1,0,255, 3460 sizeof p->twdInitParams.tPlatformGenParams.GeneralSettings, 3461 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.GeneralSettings); 3462 3463 regReadIntegerParameter(pAdapter, &STRTxSendPaceThresh, 3464 TX_SEND_PACE_THRESH_DEF, TX_SEND_PACE_THRESH_MIN, 3465 TX_SEND_PACE_THRESH_MAX, 3466 sizeof p->txDataInitParams.uTxSendPaceThresh, 3467 (TI_UINT8*)&p->txDataInitParams.uTxSendPaceThresh); 3468 3469 3470 /* special numbers for WiFi mode! */ 3471 if (uWiFiMode) 3472 { 3473 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BE] = QOS_TX_BLKS_THRESHOLD_BE_DEF_WIFI_MODE; 3474 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BK] = QOS_TX_BLKS_THRESHOLD_BK_DEF_WIFI_MODE; 3475 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VI] = QOS_TX_BLKS_THRESHOLD_VI_DEF_WIFI_MODE; 3476 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VO] = QOS_TX_BLKS_THRESHOLD_VO_DEF_WIFI_MODE; 3477 3478 p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE] = QOS_MSDU_LIFE_TIME_BE_DEF_WIFI_MODE; 3479 p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK] = QOS_MSDU_LIFE_TIME_BK_DEF_WIFI_MODE; 3480 p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI] = QOS_MSDU_LIFE_TIME_VI_DEF_WIFI_MODE; 3481 p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO] = QOS_MSDU_LIFE_TIME_VO_DEF_WIFI_MODE; 3482 3483 p->twdInitParams.tGeneral.uRxMemBlksNum = RX_MEM_BLKS_NUM_DEF_WIFI_MODE; 3484 p->twdInitParams.tGeneral.RxIntrPacingThreshold = TWD_RX_INTR_THRESHOLD_DEF_WIFI_MODE; 3485 p->txDataInitParams.bStopNetStackTx = STOP_NET_STACK_TX_DEF_WIFI_MODE; 3486 p->txDataInitParams.uTxSendPaceThresh = TX_SEND_PACE_THRESH_DEF_WIFI_MODE; 3487 3488 /* remove the flags of DRPw mode when WiFi active */ 3489 p->twdInitParams.tPlatformGenParams.GeneralSettings &= ~DRPw_MASK_CHECK; 3490 } 3491 3492 /* If NOT in WiFi mode and IN performance-boost mode, optimize some traffic params for speed (on expense of QoS) */ 3493 else if (uPerformanceBoostMode == BOOST_MODE_OPTIMIZE_FOR_SPEED) 3494 { 3495 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BE] = QOS_TX_BLKS_THRESHOLD_BE_DEF_BOOST_MODE; 3496 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_BK] = QOS_TX_BLKS_THRESHOLD_BK_DEF_BOOST_MODE; 3497 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VI] = QOS_TX_BLKS_THRESHOLD_VI_DEF_BOOST_MODE; 3498 p->twdInitParams.tGeneral.TxBlocksThresholdPerAc[QOS_AC_VO] = QOS_TX_BLKS_THRESHOLD_VO_DEF_BOOST_MODE; 3499 3500 p->twdInitParams.tGeneral.uRxMemBlksNum = RX_MEM_BLKS_NUM_DEF_BOOST_MODE; 3501 } 3502 3503 regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitBE, 3504 QOS_SHORT_RETRY_LIMIT_BE_DEF, QOS_SHORT_RETRY_LIMIT_BE_MIN, 3505 QOS_SHORT_RETRY_LIMIT_BE_MAX, 3506 sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BE], 3507 (TI_UINT8*)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BE]); 3508 3509 regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitBK, 3510 QOS_SHORT_RETRY_LIMIT_BK_DEF, QOS_SHORT_RETRY_LIMIT_BK_MIN, 3511 QOS_SHORT_RETRY_LIMIT_BK_MAX, 3512 sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BK], 3513 (TI_UINT8*)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BK]); 3514 3515 regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitVI, 3516 QOS_SHORT_RETRY_LIMIT_VI_DEF, QOS_SHORT_RETRY_LIMIT_VI_MIN, 3517 QOS_SHORT_RETRY_LIMIT_VI_MAX, 3518 sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VI], 3519 (TI_UINT8*)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VI]); 3520 3521 regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitVO, 3522 QOS_SHORT_RETRY_LIMIT_VO_DEF, QOS_SHORT_RETRY_LIMIT_VO_MIN, 3523 QOS_SHORT_RETRY_LIMIT_VO_MAX, 3524 sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VO], 3525 (TI_UINT8*)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VO]); 3526 3527 regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitBE, 3528 QOS_LONG_RETRY_LIMIT_BE_DEF, QOS_LONG_RETRY_LIMIT_BE_MIN, 3529 QOS_LONG_RETRY_LIMIT_BE_MAX, 3530 sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_BE], 3531 (TI_UINT8*)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_BE]); 3532 3533 regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitBK, 3534 QOS_LONG_RETRY_LIMIT_BK_DEF, QOS_LONG_RETRY_LIMIT_BK_MIN, 3535 QOS_LONG_RETRY_LIMIT_BK_MAX, 3536 sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_BK], 3537 (TI_UINT8*)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_BK]); 3538 3539 regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitVI, 3540 QOS_LONG_RETRY_LIMIT_VI_DEF, QOS_LONG_RETRY_LIMIT_VI_MIN, 3541 QOS_LONG_RETRY_LIMIT_VI_MAX, 3542 sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_VI], 3543 (TI_UINT8*)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_VI]); 3544 3545 regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitVO, 3546 QOS_LONG_RETRY_LIMIT_VO_DEF, QOS_LONG_RETRY_LIMIT_VO_MIN, 3547 QOS_LONG_RETRY_LIMIT_VO_MAX, 3548 sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_VO], 3549 (TI_UINT8*)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_VO]); 3550 3551 regReadIntegerParameter(pAdapter, &STRQOSAckPolicyBE, 3552 QOS_ACK_POLICY_BE_DEF, QOS_ACK_POLICY_BE_MIN, 3553 QOS_ACK_POLICY_BE_MAX, 3554 sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_BE], 3555 (TI_UINT8*)&p->qosMngrInitParams.acAckPolicy[QOS_AC_BE]); 3556 3557 regReadIntegerParameter(pAdapter, &STRQOSAckPolicyBK, 3558 QOS_ACK_POLICY_BK_DEF, QOS_ACK_POLICY_BK_MIN, 3559 QOS_ACK_POLICY_BK_MAX, 3560 sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_BK], 3561 (TI_UINT8*)&p->qosMngrInitParams.acAckPolicy[QOS_AC_BK]); 3562 3563 regReadIntegerParameter(pAdapter, &STRQOSAckPolicyVI, 3564 QOS_ACK_POLICY_VI_DEF, QOS_ACK_POLICY_VI_MIN, 3565 QOS_ACK_POLICY_VI_MAX, 3566 sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_VI], 3567 (TI_UINT8*)&p->qosMngrInitParams.acAckPolicy[QOS_AC_VI]); 3568 3569 regReadIntegerParameter(pAdapter, &STRQOSAckPolicyVO, 3570 QOS_ACK_POLICY_VO_DEF, QOS_ACK_POLICY_VO_MIN, 3571 QOS_ACK_POLICY_VO_MAX, 3572 sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_VO], 3573 (TI_UINT8*)&p->qosMngrInitParams.acAckPolicy[QOS_AC_VO]); 3574 3575 3576 regReadIntegerParameter(pAdapter, &STRQoSqueue0OverFlowPolicy, 3577 QOS_QUEUE_0_OVFLOW_POLICY_DEF, QOS_QUEUE_0_OVFLOW_POLICY_MIN, 3578 QOS_QUEUE_0_OVFLOW_POLICY_MAX, 3579 sizeof p->qosMngrInitParams.QueueOvFlowPolicy[0], 3580 (TI_UINT8*)&p->qosMngrInitParams.QueueOvFlowPolicy[0]); 3581 3582 regReadIntegerParameter(pAdapter, &STRQoSqueue1OverFlowPolicy, 3583 QOS_QUEUE_1_OVFLOW_POLICY_DEF, QOS_QUEUE_1_OVFLOW_POLICY_MIN, 3584 QOS_QUEUE_1_OVFLOW_POLICY_MAX, 3585 sizeof p->qosMngrInitParams.QueueOvFlowPolicy[1], 3586 (TI_UINT8*)&p->qosMngrInitParams.QueueOvFlowPolicy[1]); 3587 3588 regReadIntegerParameter(pAdapter, &STRQoSqueue2OverFlowPolicy, 3589 QOS_QUEUE_2_OVFLOW_POLICY_DEF, QOS_QUEUE_2_OVFLOW_POLICY_MIN, 3590 QOS_QUEUE_2_OVFLOW_POLICY_MAX, 3591 sizeof p->qosMngrInitParams.QueueOvFlowPolicy[2], 3592 (TI_UINT8*)&p->qosMngrInitParams.QueueOvFlowPolicy[2]); 3593 3594 regReadIntegerParameter(pAdapter, &STRQoSqueue3OverFlowPolicy, 3595 QOS_QUEUE_3_OVFLOW_POLICY_DEF, QOS_QUEUE_3_OVFLOW_POLICY_MIN, 3596 QOS_QUEUE_3_OVFLOW_POLICY_MAX, 3597 sizeof p->qosMngrInitParams.QueueOvFlowPolicy[3], 3598 (TI_UINT8*)&p->qosMngrInitParams.QueueOvFlowPolicy[3]); 3599 3600 /* Packet Burst parameters */ 3601 3602 regReadIntegerParameter(pAdapter, &STRQOSPacketBurstEnable, 3603 QOS_PACKET_BURST_ENABLE_DEF, QOS_PACKET_BURST_ENABLE_MIN, 3604 QOS_PACKET_BURST_ENABLE_MAX, 3605 sizeof p->qosMngrInitParams.PacketBurstEnable, 3606 (TI_UINT8*)&p->qosMngrInitParams.PacketBurstEnable); 3607 3608 regReadIntegerParameter(pAdapter, &STRQOSPacketBurstTxOpLimit, 3609 QOS_PACKET_BURST_TXOP_LIMIT_DEF, QOS_PACKET_BURST_TXOP_LIMIT_MIN, 3610 QOS_PACKET_BURST_TXOP_LIMIT_MAX, 3611 sizeof p->qosMngrInitParams.PacketBurstTxOpLimit, 3612 (TI_UINT8*)&p->qosMngrInitParams.PacketBurstTxOpLimit); 3613 3614 3615 /*--------------------------- 3616 Measurement parameters 3617 -----------------------------*/ 3618 3619 regReadIntegerParameter(pAdapter, &STRMeasurTrafficThreshold, 3620 MEASUREMENT_TRAFFIC_THRSHLD_DEF, MEASUREMENT_TRAFFIC_THRSHLD_MIN, MEASUREMENT_TRAFFIC_THRSHLD_MAX, 3621 sizeof p->measurementInitParams.trafficIntensityThreshold, 3622 (TI_UINT8*)&p->measurementInitParams.trafficIntensityThreshold); 3623 3624 regReadIntegerParameter(pAdapter, &STRMeasurMaxDurationOnNonServingChannel, 3625 MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_DEF, MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_MIN, MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_MAX, 3626 sizeof p->measurementInitParams.maxDurationOnNonServingChannel, 3627 (TI_UINT8*)&p->measurementInitParams.maxDurationOnNonServingChannel); 3628 3629 3630 /*--------------------------- 3631 XCC Manager parameters 3632 -----------------------------*/ 3633 #ifdef XCC_MODULE_INCLUDED 3634 3635 regReadIntegerParameter(pAdapter, &STRXCCModeEnabled, 3636 XCC_MNGR_ENABLE_DEF, XCC_MNGR_ENABLE_MIN, XCC_MNGR_ENABLE_MAX, 3637 sizeof p->XCCMngrParams.XCCEnabled, 3638 (TI_UINT8*)&p->XCCMngrParams.XCCEnabled); 3639 3640 3641 p->measurementInitParams.XCCEnabled = p->XCCMngrParams.XCCEnabled; 3642 3643 #endif 3644 3645 regReadIntegerParameter(pAdapter, &STRXCCTestIgnoreDeAuth0, 3646 XCC_TEST_IGNORE_DEAUTH_0_DEF, XCC_TEST_IGNORE_DEAUTH_0_MIN, XCC_TEST_IGNORE_DEAUTH_0_MAX, 3647 sizeof p->apConnParams.ignoreDeauthReason0, 3648 (TI_UINT8*)&p->apConnParams.ignoreDeauthReason0); 3649 3650 /*--------------------------- 3651 EEPROM less support 3652 -----------------------------*/ 3653 regReadIntegerParameter(pAdapter, &STREEPROMlessModeSupported, 3654 TWD_EEPROMLESS_ENABLE_DEF, TWD_EEPROMLESS_ENABLE_MIN, 3655 TWD_EEPROMLESS_ENABLE_MAX, 3656 sizeof p->twdInitParams.tGeneral.halCtrlEepromLessEnable, 3657 (TI_UINT8*)&p->twdInitParams.tGeneral.halCtrlEepromLessEnable); 3658 3659 regReadStringParameter(pAdapter, &STRstationMacAddress, 3660 (TI_INT8*)(defStaMacAddress0), 11, 3661 (TI_UINT8*)staMACAddress, ®MACstrLen); 3662 3663 /*reads the arp ip from table*/ 3664 regReadStringParameter(pAdapter ,&STRArp_Ip_Addr, 3665 (TI_INT8*)(defArpIpAddress),REG_ARP_IP_ADDR_STR_LEN, 3666 (TI_UINT8*)staArpIpAddress,®ArpIpStrLen ) ; 3667 3668 regReadIntegerParameter(pAdapter, &STRArp_Ip_Filter_Ena, 3669 DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE, MAX_FILTER_ENABLE_VALUE, 3670 sizeof p->twdInitParams.tArpIpFilter.filterType, 3671 (TI_UINT8*)&p->twdInitParams.tArpIpFilter.filterType); 3672 3673 3674 initValusFromRgstryString( (TI_INT8*)(staArpIpAddress), (TI_INT8*)&p->twdInitParams.tArpIpFilter.addr, 4); 3675 3676 3677 initValusFromRgstryString( (TI_INT8*)(staMACAddress), 3678 (TI_INT8*)&(p->twdInitParams.tGeneral.StaMacAddress[0]), 3679 6); 3680 /*fource FragThreshold to be even value (round it down)MR WLAN00003501*/ 3681 p->twdInitParams.tGeneral.halCtrlFragThreshold &= 0xFFFE; 3682 3683 3684 3685 3686 3687 /*---------------------------------- 3688 Health Monitor registry init 3689 ------------------------------------*/ 3690 3691 /* No scan complete recovery enabled */ 3692 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledNoScanComplete, 3693 1, 0, 1, /* default is enabled */ 3694 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ NO_SCAN_COMPLETE_FAILURE ]), 3695 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ NO_SCAN_COMPLETE_FAILURE ]) ); 3696 3697 /* Mailbox failure recovery enabled */ 3698 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledMboxFailure, 3699 1, 0, 1, /* default is enabled */ 3700 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ MBOX_FAILURE ]), 3701 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ MBOX_FAILURE ]) ); 3702 3703 /* HW awake failure recovery enabled */ 3704 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledHwAwakeFailure, 3705 1, 0, 1, /* default is enabled */ 3706 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_AWAKE_FAILURE ]), 3707 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_AWAKE_FAILURE ]) ); 3708 3709 /* TX stuck recovery enabled */ 3710 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledTxStuck, 3711 1, 0, 1, /* default is enabled */ 3712 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ TX_STUCK ]), 3713 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ TX_STUCK ]) ); 3714 3715 /* disconnect timeout recovery enabled */ 3716 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledDisconnectTimeout, 3717 0, 0, 1, /* default is disabled */ 3718 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ DISCONNECT_TIMEOUT ]), 3719 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ DISCONNECT_TIMEOUT ]) ); 3720 3721 /* Power save failure recovery enabled */ 3722 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledPowerSaveFailure, 3723 1, 0, 1, /* default is enabled */ 3724 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ POWER_SAVE_FAILURE ]), 3725 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ POWER_SAVE_FAILURE ]) ); 3726 3727 /* Measurement failure recovery enabled */ 3728 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledMeasurementFailure, 3729 1, 0, 1, /* default is enabled */ 3730 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ MEASUREMENT_FAILURE ]), 3731 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ MEASUREMENT_FAILURE ]) ); 3732 3733 /* Bus failure recovery enabled */ 3734 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledBusFailure, 3735 1, 0, 1, /* default is enabled */ 3736 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ BUS_FAILURE ]), 3737 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ BUS_FAILURE ]) ); 3738 3739 /* HW Watchdog Expired recovery enabled */ 3740 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledHwWdExpire, 3741 1, 0, 1, /* default is enabled */ 3742 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_WD_EXPIRE ]), 3743 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_WD_EXPIRE ]) ); 3744 3745 /* Rx Xfer Failure recovery enabled */ 3746 regReadIntegerParameter(pAdapter, &STRRecoveryEnabledRxXferFailure, 3747 1, 0, 1, /* default is enabled */ 3748 sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ RX_XFER_FAILURE ]), 3749 (TI_UINT8*)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ RX_XFER_FAILURE ]) ); 3750 3751 /*------------------------------------------- 3752 RSSI/SNR Weights for Average calculations 3753 --------------------------------------------*/ 3754 regReadIntegerParameter(pAdapter, &STRRssiBeaconAverageWeight, 3755 TWD_RSSI_BEACON_WEIGHT_DEF, TWD_RSSI_BEACON_WEIGHT_MIN, 3756 TWD_RSSI_BEACON_WEIGHT_MAX, 3757 sizeof p->twdInitParams.tGeneral.uRssiBeaconAverageWeight, 3758 (TI_UINT8*)&p->twdInitParams.tGeneral.uRssiBeaconAverageWeight); 3759 3760 regReadIntegerParameter(pAdapter, &STRRssiPacketAverageWeight, 3761 TWD_RSSI_PACKET_WEIGHT_DEF, TWD_RSSI_PACKET_WEIGHT_MIN, 3762 TWD_RSSI_PACKET_WEIGHT_MAX, 3763 sizeof p->twdInitParams.tGeneral.uRssiPacketAverageWeight, 3764 (TI_UINT8*)&p->twdInitParams.tGeneral.uRssiPacketAverageWeight); 3765 3766 regReadIntegerParameter(pAdapter, &STRSnrBeaconAverageWeight, 3767 TWD_SNR_BEACON_WEIGHT_DEF, TWD_SNR_BEACON_WEIGHT_MIN, 3768 TWD_SNR_BEACON_WEIGHT_MAX, 3769 sizeof p->twdInitParams.tGeneral.uSnrBeaconAverageWeight, 3770 (TI_UINT8*)&p->twdInitParams.tGeneral.uSnrBeaconAverageWeight); 3771 3772 regReadIntegerParameter(pAdapter, &STRSnrPacketAverageWeight, 3773 TWD_SNR_PACKET_WEIGHT_DEF, TWD_SNR_PACKET_WEIGHT_MIN, 3774 TWD_SNR_PACKET_WEIGHT_MAX, 3775 sizeof p->twdInitParams.tGeneral.uSnrPacketAverageWeight, 3776 (TI_UINT8*)&p->twdInitParams.tGeneral.uSnrPacketAverageWeight); 3777 3778 /*---------------------------------- 3779 Scan Concentrator 3780 ------------------------------------*/ 3781 regReadIntegerParameter (pAdapter, &STRMinimumDurationBetweenOsScans, 3782 SCAN_CNCN_MIN_DURATION_FOR_OS_SCANS_DEF, SCAN_CNCN_MIN_DURATION_FOR_OS_SCANS_MIN, SCAN_CNCN_MIN_DURATION_FOR_OS_SCANS_MAX, 3783 sizeof p->tScanCncnInitParams.uMinimumDurationBetweenOsScans, 3784 (TI_UINT8*)&p->tScanCncnInitParams.uMinimumDurationBetweenOsScans); 3785 3786 regReadIntegerParameter (pAdapter, &STRDfsPassiveDwellTimeMs, 3787 SCAN_CNCN_DFS_PASSIVE_DWELL_TIME_DEF, SCAN_CNCN_DFS_PASSIVE_DWELL_TIME_MIN, SCAN_CNCN_DFS_PASSIVE_DWELL_TIME_MAX, 3788 sizeof p->tScanCncnInitParams.uDfsPassiveDwellTimeMs, 3789 (TI_UINT8*)&p->tScanCncnInitParams.uDfsPassiveDwellTimeMs); 3790 3791 regReadIntegerParameter (pAdapter, &STRScanPushMode, 3792 SCAN_CNCN_APP_PUSH_MODE_DEF, SCAN_CNCN_APP_PUSH_MODE_MIN, SCAN_CNCN_APP_PUSH_MODE_MAX, 3793 sizeof p->tScanCncnInitParams.bPushMode, 3794 (TI_UINT8*)&p->tScanCncnInitParams.bPushMode); 3795 3796 regReadIntegerParameter(pAdapter, &STRScanResultAging, 3797 SCAN_CNCN_APP_SRA_DEF, SCAN_CNCN_APP_SRA_MIN, SCAN_CNCN_APP_SRA_MAX, 3798 sizeof p->tScanCncnInitParams.uSraThreshold, 3799 (TI_UINT8*)&p->tScanCncnInitParams.uSraThreshold); 3800 3801 3802 regReadIntegerParameter(pAdapter, &STRScanCncnRssiThreshold, 3803 SCAN_CNCN_RSSI_DEF, SCAN_CNCN_RSSI_MIN, SCAN_CNCN_RSSI_MAX, 3804 sizeof p->tScanCncnInitParams.nRssiThreshold, 3805 (TI_UINT8*)&p->tScanCncnInitParams.nRssiThreshold); 3806 3807 /*---------------------------------- 3808 WSC 3809 ------------------------------------*/ 3810 regReadIntegerParameter( pAdapter, &STRParseWSCInBeacons, 3811 WSC_PARSE_IN_BEACON_DEF, WSC_PARSE_IN_BEACON_MIN, WSC_PARSE_IN_BEACON_MAX, 3812 sizeof p->tMlmeInitParams.parseWSCInBeacons, 3813 (TI_UINT8*)&p->tMlmeInitParams.parseWSCInBeacons ); 3814 3815 /*---------------------------------- 3816 Current BSS 3817 ------------------------------------*/ 3818 regReadIntegerParameter( pAdapter, &STRNullDataKeepAliveDefaultPeriod, 3819 NULL_KL_PERIOD_DEF, NULL_KL_PERIOD_MIN, NULL_KL_PERIOD_MAX, 3820 sizeof p->tCurrBssInitParams.uNullDataKeepAlivePeriod, 3821 (TI_UINT8*)&p->tCurrBssInitParams.uNullDataKeepAlivePeriod ); 3822 3823 /*---------------------------------- 3824 Context Engine 3825 ------------------------------------*/ 3826 regReadIntegerParameter( pAdapter, &STRContextSwitchRequired, 3827 CONTEXT_SWITCH_REQUIRED_DEF, CONTEXT_SWITCH_REQUIRED_MIN, CONTEXT_SWITCH_REQUIRED_MAX, 3828 sizeof p->tContextInitParams.bContextSwitchRequired, 3829 (TI_UINT8*)&p->tContextInitParams.bContextSwitchRequired ); 3830 3831 /* 3832 * set 802.11n init parameters 3833 */ 3834 regReadIntegerParameter(pAdapter, &STR11nEnable, 3835 HT_11N_ENABLED_DEF, HT_11N_ENABLED_MIN, 3836 HT_11N_ENABLED_MAX, 3837 sizeof p->twdInitParams.tGeneral.b11nEnable, 3838 (TI_UINT8*)&p->twdInitParams.tGeneral.b11nEnable); 3839 3840 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_0, 3841 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3842 HT_BA_POLICY_MAX, 3843 sizeof p->qosMngrInitParams.aBaPolicy[0], 3844 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[0]); 3845 3846 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_1, 3847 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3848 HT_BA_POLICY_MAX, 3849 sizeof p->qosMngrInitParams.aBaPolicy[1], 3850 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[1]); 3851 3852 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_2, 3853 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3854 HT_BA_POLICY_MAX, 3855 sizeof p->qosMngrInitParams.aBaPolicy[2], 3856 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[2]); 3857 3858 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_3, 3859 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3860 HT_BA_POLICY_MAX, 3861 sizeof p->qosMngrInitParams.aBaPolicy[3], 3862 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[3]); 3863 3864 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_4, 3865 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3866 HT_BA_POLICY_MAX, 3867 sizeof p->qosMngrInitParams.aBaPolicy[4], 3868 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[4]); 3869 3870 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_5, 3871 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3872 HT_BA_POLICY_MAX, 3873 sizeof p->qosMngrInitParams.aBaPolicy[5], 3874 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[5]); 3875 3876 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_6, 3877 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3878 HT_BA_POLICY_MAX, 3879 sizeof p->qosMngrInitParams.aBaPolicy[6], 3880 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[6]); 3881 3882 regReadIntegerParameter(pAdapter, &STRBaPolicyTid_7, 3883 HT_BA_POLICY_DEF, HT_BA_POLICY_MIN, 3884 HT_BA_POLICY_MAX, 3885 sizeof p->qosMngrInitParams.aBaPolicy[7], 3886 (TI_UINT8*)&p->qosMngrInitParams.aBaPolicy[7]); 3887 3888 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_0, 3889 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3890 HT_BA_INACTIVITY_TIMEOUT_MAX, 3891 sizeof p->qosMngrInitParams.aBaInactivityTimeout[0], 3892 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[0]); 3893 3894 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_1, 3895 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3896 HT_BA_INACTIVITY_TIMEOUT_MAX, 3897 sizeof p->qosMngrInitParams.aBaInactivityTimeout[1], 3898 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[1]); 3899 3900 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_2, 3901 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3902 HT_BA_INACTIVITY_TIMEOUT_MAX, 3903 sizeof p->qosMngrInitParams.aBaInactivityTimeout[2], 3904 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[2]); 3905 3906 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_3, 3907 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3908 HT_BA_INACTIVITY_TIMEOUT_MAX, 3909 sizeof p->qosMngrInitParams.aBaInactivityTimeout[3], 3910 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[3]); 3911 3912 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_4, 3913 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3914 HT_BA_INACTIVITY_TIMEOUT_MAX, 3915 sizeof p->qosMngrInitParams.aBaInactivityTimeout[4], 3916 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[4]); 3917 3918 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_5, 3919 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3920 HT_BA_INACTIVITY_TIMEOUT_MAX, 3921 sizeof p->qosMngrInitParams.aBaInactivityTimeout[5], 3922 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[5]); 3923 3924 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_6, 3925 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3926 HT_BA_INACTIVITY_TIMEOUT_MAX, 3927 sizeof p->qosMngrInitParams.aBaInactivityTimeout[6], 3928 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[6]); 3929 3930 regReadIntegerParameter(pAdapter, &STRBaInactivityTimeoutTid_7, 3931 HT_BA_INACTIVITY_TIMEOUT_DEF, HT_BA_INACTIVITY_TIMEOUT_MIN, 3932 HT_BA_INACTIVITY_TIMEOUT_MAX, 3933 sizeof p->qosMngrInitParams.aBaInactivityTimeout[7], 3934 (TI_UINT8*)&p->qosMngrInitParams.aBaInactivityTimeout[7]); 3935 3936 /*---------------------------------- 3937 Radio module parameters 3938 ------------------------------------*/ 3939 regReadIntegerParameter(pAdapter, &STRTxBiPReferencePower_2_4G, 3940 128, 0, 255, 3941 sizeof (TI_INT8), 3942 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxBiPReferencePower_2_4G); 3943 3944 regReadIntegerTable (pAdapter, &STRTxBiPReferencePower_5G, RADIO_TX_BIP_REF_POWER_DEF_TABLE_5G, 3945 NUMBER_OF_SUB_BANDS_IN_5G_BAND_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxBiPReferencePower_5G, 3946 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8), TI_TRUE); 3947 3948 regReadIntegerParameter(pAdapter, &STRTxBiPOffsetdB_2_4G, 3949 0,0,255, 3950 sizeof (TI_UINT8), 3951 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxBiPOffsetdB_2_4G); 3952 3953 regReadIntegerTable (pAdapter, &STRTxBiPOffsetdB_5G, RADIO_TX_BIP_OFF_BD_5G, 3954 NUMBER_OF_SUB_BANDS_IN_5G_BAND_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxBiPOffsetdB_5G, 3955 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8), TI_TRUE); 3956 3957 regReadIntegerTable (pAdapter, &STRTxPerRatePowerLimits_2_4G_Normal, RADIO_TX_PER_POWER_LIMITS_2_4_NORMAL_DEF_TABLE, 3958 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerRatePowerLimits_2_4G_Normal, 3959 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3960 3961 regReadIntegerTable (pAdapter, &STRTxPerRatePowerLimits_2_4G_Degraded, RADIO_TX_PER_POWER_LIMITS_2_4_DEGRADED_DEF_TABLE, 3962 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerRatePowerLimits_2_4G_Degraded, 3963 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3964 3965 regReadIntegerTable (pAdapter, &STRTxPerRatePowerLimits_5G_Normal, RADIO_TX_PER_POWER_LIMITS_5_NORMAL_DEF_TABLE, 3966 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerRatePowerLimits_5G_Normal, 3967 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3968 3969 regReadIntegerTable (pAdapter, &STRTxPerRatePowerLimits_5G_Degraded, RADIO_TX_PER_POWER_LIMITS_5_DEGRADED_DEF_TABLE, 3970 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerRatePowerLimits_5G_Degraded, 3971 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3972 3973 regReadIntegerTable (pAdapter, &STRTxPerChannelPowerLimits_2_4G_11b, RADIO_TX_PER_POWER_LIMITS_2_4_11B_DEF_TABLE, 3974 NUMBER_OF_2_4_G_CHANNELS, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerChannelPowerLimits_2_4G_11b, 3975 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3976 3977 regReadIntegerTable (pAdapter, &STRTxPerChannelPowerLimits_2_4G_OFDM, RADIO_TX_PER_POWER_LIMITS_2_4_OFDM_DEF_TABLE, 3978 NUMBER_OF_2_4_G_CHANNELS, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerChannelPowerLimits_2_4G_OFDM, 3979 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3980 3981 regReadIntegerTable (pAdapter, &STRTxPerChannelPowerLimits_5G_OFDM, RADIO_TX_PER_POWER_LIMITS_5_OFDM_DEF_TABLE, 3982 NUMBER_OF_5G_CHANNELS, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPerChannelPowerLimits_5G_OFDM, 3983 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3984 3985 regReadIntegerTable (pAdapter, &STRRxRssiAndProcessCompensation_2_4G, RADIO_RX_RSSI_PROCESS_2_4_DEF_TABLE, 3986 RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE, NULL, (TI_INT8*)p->twdInitParams.tIniFileRadioParams.tStatRadioParams.RxRssiAndProcessCompensation_2_4G, 3987 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3988 3989 regReadIntegerTable (pAdapter, &STRRxRssiAndProcessCompensation_5G, RADIO_RX_RSSI_PROCESS_5_DEF_TABLE, 3990 RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE, NULL, (TI_INT8*)p->twdInitParams.tIniFileRadioParams.tStatRadioParams.RxRssiAndProcessCompensation_5G, 3991 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3992 3993 regReadIntegerTable (pAdapter, &STRTxPDVsRateOffsets_2_4G, RADIO_TX_PD_VS_RATE_OFFSET_2_4_DEF_TABLE, 3994 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPDVsRateOffsets_2_4G, 3995 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 3996 3997 regReadIntegerTable (pAdapter, &STRTxPDVsRateOffsets_5G, RADIO_TX_PD_VS_RATE_OFFSET_5_DEF_TABLE, 3998 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxPDVsRateOffsets_5G, 3999 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 4000 4001 regReadIntegerTable (pAdapter, &STRTxIbiasTable_2_4G, RADIO_TX_BIAS_2_4_DEF_TABLE, 4002 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxIbiasTable_2_4G, 4003 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 4004 4005 regReadIntegerTable (pAdapter, &STRTxIbiasTable_5G, RADIO_TX_BIAS_5_DEF_TABLE, 4006 NUMBER_OF_RATE_GROUPS_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TxIbiasTable_5G, 4007 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 4008 4009 regReadIntegerParameter(pAdapter, &STRTXBiPReferencePDvoltage_2_4G, 4010 RADIO_RX_FEM_INSERT_LOSS_2_4_DEF, RADIO_RX_FEM_INSERT_LOSS_2_4_MIN, 4011 RADIO_RX_FEM_INSERT_LOSS_2_4_MAX, 4012 sizeof (TI_UINT16), 4013 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TXBiPReferencePDvoltage_2_4G); 4014 4015 regReadIntegerTable (pAdapter, &STRTXBiPReferencePDvoltage_5G, RADIO_TX_BIP_REF_VOLTAGE_DEF_TABLE_5G, 4016 NUMBER_OF_SUB_BANDS_IN_5G_BAND_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.TXBiPReferencePDvoltage_5G, 4017 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT16), TI_TRUE); 4018 4019 4020 regReadIntegerParameter(pAdapter, &STRRxFemInsertionLoss_2_4G, 4021 14, 0, 255, 4022 sizeof (TI_UINT8), 4023 (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.RxFemInsertionLoss_2_4G); 4024 4025 regReadIntegerTable (pAdapter, &STRRxFemInsertionLoss_5G, RADIO_RX_FEM_INSERT_LOSS_5_DEF_TABLE, 4026 NUMBER_OF_SUB_BANDS_IN_5G_BAND_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tDynRadioParams.RxFemInsertionLoss_5G, 4027 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8), TI_TRUE); 4028 4029 regReadIntegerParameter(pAdapter, &STRRxTraceInsertionLoss_2_4G, 4030 RADIO_RX_TRACE_INSERT_LOSS_2_4_DEF, RADIO_RX_TRACE_INSERT_LOSS_2_4_MIN, 4031 RADIO_RX_TRACE_INSERT_LOSS_2_4_MAX, 4032 sizeof (TI_UINT8), (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tStatRadioParams.RxTraceInsertionLoss_2_4G); 4033 4034 regReadIntegerParameter(pAdapter, &STRTXTraceLoss_2_4G, 4035 RADIO_RX_TRACE_INSERT_LOSS_2_4_DEF, RADIO_RX_TRACE_INSERT_LOSS_2_4_MIN, 4036 RADIO_RX_TRACE_INSERT_LOSS_2_4_MAX, 4037 sizeof (TI_UINT8), (TI_UINT8*)&p->twdInitParams.tIniFileRadioParams.tStatRadioParams.TXTraceLoss_2_4G); 4038 4039 regReadIntegerTable (pAdapter, &STRRxTraceInsertionLoss_5G, RADIO_RX_TRACE_INSERT_LOSS_5_DEF_TABLE, 4040 NUMBER_OF_SUB_BANDS_IN_5G_BAND_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tStatRadioParams.RxTraceInsertionLoss_5G, 4041 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8), TI_TRUE); 4042 4043 regReadIntegerTable (pAdapter, &STRTXTraceLoss_5G, RADIO_TX_TRACE_LOSS_5_DEF_TABLE, 4044 NUMBER_OF_SUB_BANDS_IN_5G_BAND_E, NULL, (TI_INT8*)&p->twdInitParams.tIniFileRadioParams.tStatRadioParams.TXTraceLoss_5G, 4045 (TI_UINT32*)&uTempEntriesCount, sizeof (TI_UINT8),TI_TRUE); 4046 4047 regReadIntegerParameter(pAdapter, &STRFRefClock, 4048 RADIO_FREF_CLOCK_DEF, RADIO_FREF_CLOCK_MIN, 4049 RADIO_FREF_CLOCK_MAX, 4050 sizeof p->twdInitParams.tPlatformGenParams.RefClk, 4051 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.RefClk); 4052 4053 regReadIntegerParameter(pAdapter, &STRFRefClockSettingTime, 4054 RADIO_FREF_CLOCK_SETTING_TIME_DEF, RADIO_FREF_CLOCK_SETTING_TIME_MIN, 4055 RADIO_FREF_CLOCK_SETTING_TIME_MAX, 4056 sizeof p->twdInitParams.tPlatformGenParams.SettlingTime, 4057 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.SettlingTime); 4058 4059 regReadIntegerParameter(pAdapter, &STRTXBiPFEMAutoDetect, 4060 0,0,1, 4061 sizeof p->twdInitParams.tPlatformGenParams.TXBiPFEMAutoDetect, 4062 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.TXBiPFEMAutoDetect); 4063 4064 regReadIntegerParameter(pAdapter, &STRTXBiPFEMManufacturer, 4065 1,0,1, 4066 sizeof p->twdInitParams.tPlatformGenParams.TXBiPFEMManufacturer, 4067 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.TXBiPFEMManufacturer); 4068 4069 regReadIntegerParameter(pAdapter, &STRClockValidOnWakeup, 4070 0,0,1, 4071 sizeof p->twdInitParams.tPlatformGenParams.ClockValidOnWakeup, 4072 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.ClockValidOnWakeup); 4073 4074 regReadIntegerParameter(pAdapter, &STRDC2DCMode, 4075 0,0,1, 4076 sizeof p->twdInitParams.tPlatformGenParams.DC2DCMode, 4077 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.DC2DCMode); 4078 4079 regReadIntegerParameter(pAdapter, &STRSingle_Dual_Band_Solution, 4080 0,0,1, 4081 sizeof p->twdInitParams.tPlatformGenParams.Single_Dual_Band_Solution, 4082 (TI_UINT8*)&p->twdInitParams.tPlatformGenParams.Single_Dual_Band_Solution); 4083 4084 /*---------------------------------- 4085 Driver-Main parameters 4086 ------------------------------------*/ 4087 regReadIntegerParameter( pAdapter, &STRWlanDrvThreadPriority, 4088 WLAN_DRV_THREAD_PRIORITY_DEF, WLAN_DRV_THREAD_PRIORITY_MIN, WLAN_DRV_THREAD_PRIORITY_MAX, 4089 sizeof p->tDrvMainParams.uWlanDrvThreadPriority, 4090 (TI_UINT8*)&p->tDrvMainParams.uWlanDrvThreadPriority); 4091 4092 regReadIntegerParameter( pAdapter, &STRBusDrvThreadPriority, 4093 BUS_DRV_THREAD_PRIORITY_DEF, BUS_DRV_THREAD_PRIORITY_MIN, BUS_DRV_THREAD_PRIORITY_MAX, 4094 sizeof p->tDrvMainParams.uBusDrvThreadPriority, 4095 (TI_UINT8*)&p->tDrvMainParams.uBusDrvThreadPriority); 4096 4097 regReadIntegerParameter( pAdapter, &STRSdioBlkSizeShift, 4098 SDIO_BLK_SIZE_SHIFT_DEF, SDIO_BLK_SIZE_SHIFT_MIN, SDIO_BLK_SIZE_SHIFT_MAX, 4099 sizeof p->tDrvMainParams.uSdioBlkSizeShift, 4100 (TI_UINT8*)&p->tDrvMainParams.uSdioBlkSizeShift); 4101 4102 4103 4104 /*-----------------------------------*/ 4105 /* Roaming parameters */ 4106 /*-----------------------------------*/ 4107 regReadIntegerParameter(pAdapter, & STRRoamingOperationalMode, 4108 ROAMING_MNGR_OPERATIONAL_MODE_DEF, 4109 ROAMING_MNGR_OPERATIONAL_MODE_MIN, 4110 ROAMING_MNGR_OPERATIONAL_MODE_MAX, 4111 sizeof p->tRoamScanMngrInitParams.RoamingOperationalMode, 4112 (TI_UINT8*)&p->tRoamScanMngrInitParams.RoamingOperationalMode); 4113 4114 4115 regReadIntegerParameter(pAdapter, & STRSendTspecInReassPkt, 4116 ROAMING_MNGR_SEND_TSPEC_IN_REASSO_PKT_DEF, 4117 ROAMING_MNGR_SEND_TSPEC_IN_REASSO_PKT_MIN, 4118 ROAMING_MNGR_SEND_TSPEC_IN_REASSO_PKT_MAX, 4119 sizeof p->tRoamScanMngrInitParams.bSendTspecInReassPkt, 4120 (TI_UINT8*)&p->tRoamScanMngrInitParams.bSendTspecInReassPkt); 4121 4122 /*-----------------------------------*/ 4123 /* currBss parameters */ 4124 /*-----------------------------------*/ 4125 regReadIntegerParameter(pAdapter, & STRRoamingOperationalMode, 4126 ROAMING_MNGR_OPERATIONAL_MODE_DEF, 4127 ROAMING_MNGR_OPERATIONAL_MODE_MIN, 4128 ROAMING_MNGR_OPERATIONAL_MODE_MAX, 4129 sizeof p->tCurrBssInitParams.RoamingOperationalMode, 4130 (TI_UINT8*)&p->tCurrBssInitParams.RoamingOperationalMode); 4131 4132 4133 4134 /*-----------------------------------*/ 4135 /* FM Coexistence parameters */ 4136 /*-----------------------------------*/ 4137 4138 regReadIntegerParameter(pAdapter, &STRFmCoexEnable, 4139 FM_COEX_ENABLE_DEF, FM_COEX_ENABLE_MIN, FM_COEX_ENABLE_MAX, 4140 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uEnable), 4141 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uEnable)); 4142 4143 regReadIntegerParameter(pAdapter, &STRFmCoexSwallowPeriod, 4144 FM_COEX_SWALLOW_PERIOD_DEF, FM_COEX_SWALLOW_PERIOD_MIN, FM_COEX_SWALLOW_PERIOD_MAX, 4145 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uSwallowPeriod), 4146 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uSwallowPeriod)); 4147 4148 regReadIntegerParameter(pAdapter, &STRFmCoexNDividerFrefSet1, 4149 FM_COEX_N_DIVIDER_FREF_SET1_DEF, FM_COEX_N_DIVIDER_FREF_SET1_MIN, FM_COEX_N_DIVIDER_FREF_SET1_MAX, 4150 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uNDividerFrefSet1), 4151 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uNDividerFrefSet1)); 4152 4153 regReadIntegerParameter(pAdapter, &STRFmCoexNDividerFrefSet2, 4154 FM_COEX_N_DIVIDER_FREF_SET2_DEF, FM_COEX_N_DIVIDER_FREF_SET2_MIN, FM_COEX_N_DIVIDER_FREF_SET2_MAX, 4155 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uNDividerFrefSet2), 4156 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uNDividerFrefSet2)); 4157 4158 regReadIntegerParameter(pAdapter, &STRFmCoexMDividerFrefSet1, 4159 FM_COEX_M_DIVIDER_FREF_SET1_DEF, FM_COEX_M_DIVIDER_FREF_SET1_MIN, FM_COEX_M_DIVIDER_FREF_SET1_MAX, 4160 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uMDividerFrefSet1), 4161 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uMDividerFrefSet1)); 4162 4163 regReadIntegerParameter(pAdapter, &STRFmCoexMDividerFrefSet2, 4164 FM_COEX_M_DIVIDER_FREF_SET2_DEF, FM_COEX_M_DIVIDER_FREF_SET2_MIN, FM_COEX_M_DIVIDER_FREF_SET2_MAX, 4165 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uMDividerFrefSet2), 4166 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uMDividerFrefSet2)); 4167 4168 regReadIntegerParameter(pAdapter, &STRFmCoexPllStabilizationTime, 4169 FM_COEX_PLL_STABILIZATION_TIME_DEF, FM_COEX_PLL_STABILIZATION_TIME_MIN, FM_COEX_PLL_STABILIZATION_TIME_MAX, 4170 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uCoexPllStabilizationTime), 4171 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uCoexPllStabilizationTime)); 4172 4173 regReadIntegerParameter(pAdapter, &STRFmCoexLdoStabilizationTime, 4174 FM_COEX_LDO_STABILIZATION_TIME_DEF, FM_COEX_LDO_STABILIZATION_TIME_MIN, FM_COEX_LDO_STABILIZATION_TIME_MAX, 4175 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uLdoStabilizationTime), 4176 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uLdoStabilizationTime)); 4177 4178 regReadIntegerParameter(pAdapter, &STRFmCoexDisturbedBandMargin, 4179 FM_COEX_DISTURBED_BAND_MARGIN_DEF, FM_COEX_DISTURBED_BAND_MARGIN_MIN, FM_COEX_DISTURBED_BAND_MARGIN_MAX, 4180 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uFmDisturbedBandMargin), 4181 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uFmDisturbedBandMargin)); 4182 4183 regReadIntegerParameter(pAdapter, &STRFmCoexSwallowClkDif, 4184 FM_COEX_SWALLOW_CLK_DIF_DEF, FM_COEX_SWALLOW_CLK_DIF_MIN, FM_COEX_SWALLOW_CLK_DIF_MAX, 4185 sizeof (p->twdInitParams.tGeneral.tFmCoexParams.uSwallowClkDif), 4186 (TI_UINT8*)&(p->twdInitParams.tGeneral.tFmCoexParams.uSwallowClkDif)); 4187 4188 4189 /*----------------------------------------------*/ 4190 /* Rate Management parameters */ 4191 /*----------------------------------------------*/ 4192 4193 regReadIntegerParameter(pAdapter, &STRRateMngRateRetryScore, 4194 RATE_MNG_RATE_RETRY_SCORE_DEF, RATE_MNG_RATE_RETRY_SCORE_MIN, RATE_MNG_RATE_RETRY_SCORE_MAX, 4195 sizeof (p->twdInitParams.tRateMngParams.RateRetryScore), 4196 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.RateRetryScore)); 4197 4198 regReadIntegerParameter(pAdapter, &STRRateMngPerAdd, 4199 RATE_MNG_PER_ADD_DEF, RATE_MNG_PER_ADD_MIN, RATE_MNG_PER_ADD_MAX, 4200 sizeof (p->twdInitParams.tRateMngParams.PerAdd), 4201 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerAdd)); 4202 4203 regReadIntegerParameter(pAdapter, &STRRateMngPerTh1, 4204 RATE_MNG_PER_TH1_DEF, RATE_MNG_PER_TH1_MIN, RATE_MNG_PER_TH1_MAX, 4205 sizeof (p->twdInitParams.tRateMngParams.PerTh1), 4206 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerTh1)); 4207 4208 regReadIntegerParameter(pAdapter, &STRRateMngPerTh2, 4209 RATE_MNG_PER_TH2_DEF, RATE_MNG_PER_TH2_MIN, RATE_MNG_PER_TH2_MAX, 4210 sizeof (p->twdInitParams.tRateMngParams.PerTh2), 4211 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerTh2)); 4212 4213 regReadIntegerParameter(pAdapter, &STRRateMngInverseCuriosityFactor, 4214 RATE_MNG_INVERSE_CURISITY_FACTOR_DEF, RATE_MNG_INVERSE_CURISITY_FACTOR_MIN, RATE_MNG_INVERSE_CURISITY_FACTOR_MAX, 4215 sizeof (p->twdInitParams.tRateMngParams.InverseCuriosityFactor), 4216 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.InverseCuriosityFactor)); 4217 4218 regReadIntegerParameter(pAdapter, &STRRateMngTxFailLowTh, 4219 RATE_MNG_TX_FAIL_LOW_TH_DEF, RATE_MNG_TX_FAIL_LOW_TH_MIN, RATE_MNG_TX_FAIL_LOW_TH_MAX, 4220 sizeof (p->twdInitParams.tRateMngParams.TxFailLowTh), 4221 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.TxFailLowTh)); 4222 4223 regReadIntegerParameter(pAdapter, &STRRateMngTxFailHighTh, 4224 RATE_MNG_TX_FAIL_HIGH_TH_DEF, RATE_MNG_TX_FAIL_HIGH_TH_MIN, RATE_MNG_TX_FAIL_HIGH_TH_MAX, 4225 sizeof (p->twdInitParams.tRateMngParams.TxFailHighTh), 4226 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.TxFailHighTh)); 4227 4228 regReadIntegerParameter(pAdapter, &STRRateMngPerAlphaShift, 4229 RATE_MNG_PER_ALPHA_SHIFT_DEF, RATE_MNG_PER_ALPHA_SHIFT_MIN, RATE_MNG_PER_ALPHA_SHIFT_MAX, 4230 sizeof (p->twdInitParams.tRateMngParams.PerAlphaShift), 4231 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerAlphaShift)); 4232 4233 regReadIntegerParameter(pAdapter, &STRRateMngPerAddShift, 4234 RATE_MNG_PER_ADD_SHIFT_DEF, RATE_MNG_PER_ADD_SHIFT_MIM, RATE_MNG_PER_ADD_SHIFT_MAX, 4235 sizeof (p->twdInitParams.tRateMngParams.PerAddShift), 4236 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerAddShift)); 4237 4238 4239 regReadIntegerParameter(pAdapter, &STRRateMngPerBeta1Shift, 4240 RATE_MNG_PER_BETA1_SHIFT_DEF, RATE_MNG_PER_BETA1_SHIFT_MIN, RATE_MNG_PER_BETA1_SHIFT_MAX, 4241 sizeof (p->twdInitParams.tRateMngParams.PerBeta1Shift), 4242 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerBeta1Shift)); 4243 4244 regReadIntegerParameter(pAdapter, &STRRateMngPerBeta2Shift, 4245 RATE_MNG_PER_BETA2_SHIFT_DEF, RATE_MNG_PER_BETA2_SHIFT_MIN, RATE_MNG_PER_BETA2_SHIFT_MAX, 4246 sizeof (p->twdInitParams.tRateMngParams.PerBeta2Shift), 4247 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerBeta2Shift)); 4248 4249 regReadIntegerParameter(pAdapter, &STRRateMngPerBeta2Shift, 4250 RATE_MNG_PER_BETA2_SHIFT_DEF, RATE_MNG_PER_BETA2_SHIFT_MIN, RATE_MNG_PER_BETA2_SHIFT_MAX, 4251 sizeof (p->twdInitParams.tRateMngParams.PerBeta2Shift), 4252 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.PerBeta2Shift)); 4253 4254 regReadIntegerParameter(pAdapter, &STRRateMngMaxPer, 4255 RATE_MNG_MAX_PER_DEF, RATE_MNG_MAX_PER_MIN, RATE_MNG_MAX_PER_MAX, 4256 sizeof (p->twdInitParams.tRateMngParams.MaxPer), 4257 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.MaxPer)); 4258 4259 4260 regReadIntegerParameter(pAdapter, &STRRateMngRateCheckUp, 4261 RATE_MNG_RATE_CHECK_UP_DEF, RATE_MNG_RATE_CHECK_UP_MIN, RATE_MNG_RATE_CHECK_UP_MAX, 4262 sizeof (p->twdInitParams.tRateMngParams.RateCheckUp), 4263 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.RateCheckUp)); 4264 4265 regReadIntegerParameter(pAdapter, &STRRateMngRateCheckDown, 4266 RATE_MNG_RATE_CHECK_DOWN_DEF, RATE_MNG_RATE_CHECK_DOWN_MIN, RATE_MNG_RATE_CHECK_DOWN_MAX, 4267 sizeof (p->twdInitParams.tRateMngParams.RateCheckDown), 4268 (TI_UINT8*)&(p->twdInitParams.tRateMngParams.RateCheckDown)); 4269 4270 regReadIntegerTable (pAdapter, &STRRateMngRateRetryPolicy, RATE_MNG_RATE_RETRY_POLICY_DEF_TABLE, 4271 RATE_MNG_MAX_STR_LEN, (TI_UINT8*)&uTempRatePolicyList[0], NULL, 4272 (TI_UINT32*)&uTempRatePolicyCnt, sizeof (TI_UINT8),TI_FALSE); 4273 4274 /* sanity check */ 4275 if (uTempRatePolicyCnt > RATE_MNG_MAX_RETRY_POLICY_PARAMS_LEN) 4276 { 4277 uTempRatePolicyCnt = RATE_MNG_MAX_RETRY_POLICY_PARAMS_LEN; 4278 } 4279 4280 for (uIndex = 0; uIndex < RATE_MNG_MAX_RETRY_POLICY_PARAMS_LEN; uIndex++) 4281 { 4282 p->twdInitParams.tRateMngParams.RateRetryPolicy[uIndex] = uTempRatePolicyList[uIndex]; 4283 } 4284 4285 #ifdef _WINDOWS 4286 /* set etherMaxPayloadSize parameter for MTU size setting */ 4287 pAdapter->etherMaxPayloadSize = ETHER_MAX_PAYLOAD_SIZE; 4288 4289 #endif /* _WINDOWS */ 4290 4291 } 4292 4293 4294 /*----------------------------------------------------------------------------- 4295 4296 Routine Name: 4297 4298 regReadIntegerParameter 4299 4300 Routine Description: 4301 4302 4303 Arguments: 4304 4305 4306 Return Value: 4307 4308 None 4309 4310 -----------------------------------------------------------------------------*/ 4311 static void regReadIntegerParameter ( 4312 TWlanDrvIfObjPtr pAdapter, 4313 PNDIS_STRING pParameterName, 4314 TI_UINT32 defaultValue, 4315 TI_UINT32 minValue, 4316 TI_UINT32 maxValue, 4317 TI_UINT8 parameterSize, 4318 TI_UINT8* pParameter 4319 ) 4320 { 4321 PNDIS_CONFIGURATION_PARAMETER RetValue; 4322 NDIS_STATUS Status; 4323 TI_UINT32 value; 4324 4325 NdisReadConfiguration(&Status, &RetValue, 4326 pAdapter->ConfigHandle, pParameterName, 4327 NdisParameterInteger); 4328 4329 if(Status != NDIS_STATUS_SUCCESS) { 4330 4331 NdisReadConfiguration(&Status, &RetValue, 4332 pAdapter->ConfigHandle, pParameterName, 4333 NdisParameterString 4334 ); 4335 4336 if(Status == NDIS_STATUS_SUCCESS) { 4337 assignRegValue(&value, RetValue); 4338 RetValue->ParameterData.IntegerData = value; 4339 4340 } 4341 4342 } 4343 4344 if (Status != NDIS_STATUS_SUCCESS || 4345 RetValue->ParameterData.IntegerData < minValue || 4346 RetValue->ParameterData.IntegerData > maxValue) 4347 { 4348 PRINTF(DBG_REGISTRY,( "NdisReadConfiguration fail\n")); 4349 value = defaultValue; 4350 4351 } else 4352 { 4353 value = RetValue->ParameterData.IntegerData; 4354 } 4355 4356 switch (parameterSize) 4357 { 4358 case 1: 4359 *((TI_UINT8*) pParameter) = (TI_UINT8) value; 4360 break; 4361 4362 case 2: 4363 *((PUSHORT) pParameter) = (USHORT) value; 4364 break; 4365 4366 case 4: 4367 *((TI_UINT32*) pParameter) = (TI_UINT32) value; 4368 break; 4369 4370 default: 4371 PRINT(DBG_REGISTRY_ERROR, "TIWL: Illegal Registry parameter size\n"); 4372 break; 4373 4374 } 4375 4376 } 4377 4378 /*----------------------------------------------------------------------------- 4379 4380 Routine Name: 4381 4382 regReadIntegerParameterHex 4383 4384 Routine Description: 4385 4386 4387 Arguments: 4388 4389 4390 Return Value: 4391 4392 None 4393 4394 -----------------------------------------------------------------------------*/ 4395 static void regReadIntegerParameterHex ( 4396 TWlanDrvIfObjPtr pAdapter, 4397 PNDIS_STRING pParameterName, 4398 TI_UINT32 defaultValue, 4399 TI_UINT32 minValue, 4400 TI_UINT32 maxValue, 4401 TI_UINT8 defaultSize, 4402 TI_UINT8 * pParameter) 4403 { 4404 TI_UINT32 parameterSize = 0; 4405 TI_UINT32 value; 4406 TI_BOOL paramFound; 4407 4408 regReadStringParameter (pAdapter, 4409 pParameterName, 4410 "x", 4411 sizeof("x"), 4412 pParameter, 4413 ¶meterSize); 4414 4415 /* Note: the "x" is used as a dummy string to detect if the requested key 4416 wasn't found (in that case the x is returned as sefault) */ 4417 paramFound = os_memoryCompare(pAdapter, pParameter, "x", sizeof("x")) != 0; 4418 4419 if (paramFound) 4420 { 4421 value = tiwlnstrtoi_hex ((TI_UINT8 *)pParameter, parameterSize); 4422 4423 if (value < minValue || value > maxValue) 4424 { 4425 value = defaultValue; 4426 } 4427 } 4428 else 4429 { 4430 value = defaultValue; 4431 } 4432 4433 switch (defaultSize) 4434 { 4435 case 1: 4436 *((TI_UINT8*) pParameter) = (TI_UINT8) value; 4437 break; 4438 4439 case 2: 4440 *((PUSHORT) pParameter) = (USHORT) value; 4441 break; 4442 4443 case 4: 4444 *((TI_UINT32*) pParameter) = (TI_UINT32) value; 4445 break; 4446 4447 default: 4448 PRINT(DBG_REGISTRY_ERROR, "TIWL: Illegal Registry parameter size\n"); 4449 break; 4450 } 4451 } 4452 4453 /*----------------------------------------------------------------------------- 4454 4455 Routine Name: 4456 4457 regReadParameters 4458 4459 Routine Description: 4460 4461 4462 Arguments: 4463 4464 4465 Return Value: 4466 4467 None 4468 4469 -----------------------------------------------------------------------------*/ 4470 static void regReadStringParameter ( 4471 TWlanDrvIfObjPtr pAdapter, 4472 PNDIS_STRING pParameterName, 4473 TI_INT8* pDefaultValue, 4474 USHORT defaultLen, 4475 TI_UINT8* pParameter, 4476 void* pParameterSize 4477 ) 4478 { 4479 PNDIS_CONFIGURATION_PARAMETER RetValue; 4480 NDIS_STATUS Status; 4481 ANSI_STRING ansiString; 4482 TI_UINT8* pSizeChar = 0; 4483 PUSHORT pSizeShort = 0; 4484 4485 if(defaultLen <= 256) 4486 { 4487 pSizeChar = (TI_UINT8*)pParameterSize; 4488 ansiString.MaximumLength = 256; 4489 } 4490 else 4491 { 4492 pSizeShort = (PUSHORT)pParameterSize; 4493 ansiString.MaximumLength = 32576; 4494 } 4495 4496 NdisReadConfiguration(&Status, &RetValue, 4497 pAdapter->ConfigHandle, pParameterName, 4498 NdisParameterString); 4499 4500 if (Status == NDIS_STATUS_SUCCESS) 4501 { 4502 ansiString.Buffer = (TI_INT8*)pParameter; 4503 4504 NdisUnicodeStringToAnsiString(&ansiString, &RetValue->ParameterData.StringData); 4505 if(defaultLen <= 256) 4506 *pSizeChar = (TI_UINT8)ansiString.Length; 4507 else 4508 *pSizeShort = (USHORT)ansiString.Length; 4509 } else 4510 { 4511 if(defaultLen <= 256) 4512 *pSizeChar = (TI_UINT8)defaultLen; 4513 else 4514 *pSizeShort = (USHORT)defaultLen; 4515 4516 memcpy(pParameter, pDefaultValue, defaultLen); 4517 } 4518 4519 PRINTF(DBG_REGISTRY_LOUD, ("Read String Registry: %c%c%c%c%c%c%c%c%c%c%c%c = %s\n", 4520 pParameterName->Buffer[0], 4521 pParameterName->Buffer[1], 4522 pParameterName->Buffer[2], 4523 pParameterName->Buffer[3], 4524 pParameterName->Buffer[4], 4525 pParameterName->Buffer[5], 4526 pParameterName->Buffer[6], 4527 pParameterName->Buffer[7], 4528 pParameterName->Buffer[8], 4529 pParameterName->Buffer[9], 4530 pParameterName->Buffer[10], 4531 pParameterName->Buffer[11], 4532 pParameter)); 4533 4534 } 4535 4536 4537 4538 /*----------------------------------------------------------------------------- 4539 4540 Routine Name: 4541 4542 regReadParameters 4543 4544 Routine Description: 4545 4546 4547 Arguments: 4548 4549 4550 Return Value: 4551 4552 None 4553 4554 -----------------------------------------------------------------------------*/ 4555 static void regReadWepKeyParameter (TWlanDrvIfObjPtr pAdapter, TI_UINT8 *pKeysStructure, TI_UINT8 defaultKeyId) 4556 { 4557 NDIS_STATUS status; 4558 TSecurityKeys *pSecKeys; 4559 int i; 4560 int len; 4561 TI_UINT8 Buf[MAX_KEY_BUFFER_LEN]; 4562 PNDIS_CONFIGURATION_PARAMETER RetValue; 4563 ANSI_STRING ansiString; 4564 NDIS_STRING STRdot11DefaultWEPKey[4] = 4565 { NDIS_STRING_CONST( "dot11WEPDefaultKey1" ), 4566 NDIS_STRING_CONST( "dot11WEPDefaultKey2" ), 4567 NDIS_STRING_CONST( "dot11WEPDefaultKey3" ), 4568 NDIS_STRING_CONST( "dot11WEPDefaultKey4" ) 4569 }; 4570 4571 4572 4573 PRINTF(DBG_REGISTRY_LOUD, ("Reading WEP keys\n")); 4574 4575 pSecKeys = (TSecurityKeys*)pKeysStructure; 4576 4577 /**/ 4578 /* Read WEP from registry*/ 4579 /**/ 4580 for ( i = 0; i < DOT11_MAX_DEFAULT_WEP_KEYS; i++ ) 4581 { 4582 NdisReadConfiguration(&status, &RetValue, 4583 pAdapter->ConfigHandle, &STRdot11DefaultWEPKey[i], 4584 NdisParameterString); 4585 4586 if(status == NDIS_STATUS_SUCCESS) 4587 { 4588 ansiString.Buffer = (TI_INT8*)Buf; 4589 ansiString.MaximumLength = MAX_KEY_BUFFER_LEN; 4590 4591 pSecKeys->keyIndex = i; 4592 pSecKeys->keyType = KEY_WEP; 4593 NdisZeroMemory((void *)pSecKeys->macAddress, 6); 4594 4595 if(((char *)(RetValue->ParameterData.StringData.Buffer))[1] == 0) 4596 { 4597 NdisUnicodeStringToAnsiString(&ansiString, &RetValue->ParameterData.StringData); 4598 4599 len = decryptWEP((TI_INT8*)Buf, (TI_INT8*)pSecKeys->encKey, ansiString.Length); 4600 } else { 4601 len = decryptWEP((TI_INT8*)RetValue->ParameterData.StringData.Buffer, 4602 (TI_INT8*)pSecKeys->encKey, 4603 RetValue->ParameterData.StringData.Length); 4604 } 4605 4606 if(len < ACX_64BITS_WEP_KEY_LENGTH_BYTES) 4607 { 4608 PRINTF(DBG_REGISTRY_ERROR, ("Error: minimum WEP key size is 5 bytes(%d)\n", len)); 4609 pSecKeys->keyType = KEY_NULL; 4610 len = 0; 4611 } 4612 else if(len < ACX_128BITS_WEP_KEY_LENGTH_BYTES) 4613 { 4614 len = ACX_64BITS_WEP_KEY_LENGTH_BYTES; 4615 } 4616 else if(len < ACX_256BITS_WEP_KEY_LENGTH_BYTES) 4617 { 4618 len = ACX_128BITS_WEP_KEY_LENGTH_BYTES; 4619 } 4620 else 4621 len = ACX_256BITS_WEP_KEY_LENGTH_BYTES; 4622 4623 pSecKeys->encLen = (TI_UINT8)len; 4624 4625 } 4626 else 4627 { 4628 pSecKeys->keyType = KEY_NULL; 4629 pSecKeys->encLen = 0; 4630 } 4631 4632 #ifdef _WINDOWS 4633 /*create local keys cache*/ 4634 pAdapter->DefaultWepKeys[i].KeyIndex = i; 4635 if(i==defaultKeyId) 4636 pAdapter->DefaultWepKeys[i].KeyIndex |= 0x80000000; 4637 pAdapter->DefaultWepKeys[i].KeyLength = pSecKeys->encLen; 4638 NdisMoveMemory((void *)pAdapter->DefaultWepKeys[i].KeyMaterial, 4639 (void *)pSecKeys->encKey, pSecKeys->encLen); 4640 pAdapter->DefaultWepKeys[i].Length = sizeof(OS_802_11_WEP); 4641 #endif /* _WINDOWS */ 4642 4643 pSecKeys++; 4644 } 4645 } 4646 4647 #define iswhite(c) ( (c==' ') || (c=='\t') || (c=='\n') ) 4648 4649 /* 4650 * 4651 * Fun: isnumber 4652 * 4653 * Desc: check if the ascii character is a number in the given base 4654 * 4655 * Ret: 1 if number is a digit, 0 if not. 4656 * 4657 * Notes: none 4658 * 4659 * File: btoi.c 4660 * 4661 */ 4662 4663 static TI_BOOL isnumber ( short *pi, char c, short base ) 4664 { 4665 4666 /* return 1 if c is a digit in the give base, else return 0 */ 4667 /* place value of digit at pi */ 4668 if ( base == 16 ) 4669 { 4670 if ( '0' <= c && c <= '9' ) 4671 { 4672 *pi = c - '0'; 4673 return (1); 4674 } 4675 else if ( 'a' <= c && c <= 'f' ) 4676 { 4677 *pi = c - 'a' + 10 ; 4678 return (1); 4679 } 4680 else if ( 'A' <= c && c <= 'F' ) 4681 { 4682 *pi = c - 'A' + 10 ; 4683 return (1); 4684 } 4685 else 4686 { 4687 return (0); 4688 } 4689 } 4690 c -= '0'; 4691 if ( 0 <= (signed char)c && c < base ) 4692 { 4693 *pi = c ; 4694 return (1); 4695 } 4696 else 4697 { 4698 return (0); 4699 } 4700 } /* end of isnumber */ 4701 4702 4703 static short _btoi (char *sptr, short slen, int *pi, short base) 4704 { 4705 char *s, c ; 4706 short d, sign ; 4707 int result ; 4708 char saved ; 4709 4710 s = sptr ; 4711 result = 0 ; 4712 saved = sptr [slen]; 4713 sptr [slen] = '\0'; 4714 4715 /* skip initial white space */ 4716 /* while ( (c = *s++) && iswhite(c) ); */ 4717 do 4718 { 4719 c = *s++; 4720 if (!(c && iswhite(c))) 4721 break; 4722 }while(1); 4723 4724 --s ; 4725 4726 /* recognize optional sign */ 4727 if ( *s == '-' ) 4728 { 4729 sign = - 1 ; 4730 s++ ; 4731 } 4732 else if ( *s == '+' ) 4733 { 4734 sign = 1 ; 4735 s++ ; 4736 } 4737 else 4738 { 4739 sign = 1 ; 4740 } 4741 4742 /* recognize optional hex# prefix */ 4743 if ((base == 16) && ((*s == '0') && ((*(s + 1) == 'x') || (*(s + 1) == 'X')) 4744 )) 4745 s += 2 ; 4746 4747 /* recognize digits */ 4748 4749 /* for (; (c = *s++) && isnumber(&d, c, base) ; ) 4750 { 4751 result = base * result + d ; 4752 } 4753 */ 4754 while(1) 4755 { 4756 c = *s++; 4757 if (!(c && isnumber(&d, c, base))) 4758 break; 4759 result = base * result + d ; 4760 }; 4761 4762 *pi = sign * result ; 4763 sptr [slen] = saved ; /* restore character which we changed to null */ 4764 return (s - sptr - 1); 4765 } /* end of _btoi */ 4766 4767 static int decryptWEP 4768 ( 4769 TI_INT8* pSrc, 4770 TI_INT8* pDst, 4771 TI_UINT32 len 4772 ) 4773 { 4774 /**/ 4775 /* key to use for encryption*/ 4776 /**/ 4777 static LPCSTR lpEncryptKey = "jkljz98c&2>a+t)cl5[d=n3;\"f_um6\\d~v%$HO1"; 4778 int cnEncryptLen = strlen(lpEncryptKey); 4779 4780 char cIn, cCrypt, cHex[3]; 4781 int i, j, nLen; 4782 int nPos; 4783 4784 nLen = len / 2; 4785 nPos = len; 4786 4787 /* start reading from end*/ 4788 nPos = len - 2; 4789 4790 for(i = 0; (i < nLen) && (nPos >= 0); i++, nPos -= 2) 4791 { 4792 /* get hex character*/ 4793 cHex[0] = pSrc[nPos]; 4794 cHex[1] = pSrc[nPos + 1]; 4795 cHex[2] = 0; 4796 4797 _btoi ( cHex, 2, &j, 16); 4798 cIn = (char) j; 4799 4800 cCrypt = lpEncryptKey[i % cnEncryptLen]; 4801 cIn = cIn ^ cCrypt; 4802 4803 pDst[i] = cIn; 4804 } 4805 4806 PRINTF(DBG_REGISTRY_LOUD, ("First 5 bytes of WEP: %x-%x-%x-%x-%x\n", 4807 pDst[0], 4808 pDst[1], 4809 pDst[2], 4810 pDst[3], 4811 pDst[4])); 4812 4813 return nLen; 4814 } 4815 4816 static void initValusFromRgstryString 4817 ( 4818 TI_INT8* pSrc, 4819 TI_INT8* pDst, 4820 TI_UINT32 len 4821 ) 4822 { 4823 int j; 4824 TI_UINT32 count; 4825 for (count = 0 ; count < len ; count++) 4826 { 4827 _btoi((char *) (pSrc+(count*3)), 2, &j, 16 ); 4828 4829 pDst[count] = (TI_UINT8) j; 4830 } 4831 } 4832 4833 #ifdef TI_DBG 4834 4835 void regReadLastDbgState (TWlanDrvIfObjPtr pAdapter) 4836 { 4837 NDIS_STRING OsDbgStr = NDIS_STRING_CONST("OsDbgState"); 4838 PNDIS_CONFIGURATION_PARAMETER Value; 4839 NDIS_STATUS Status; 4840 4841 NdisReadConfiguration(&Status, &Value, 4842 pAdapter->ConfigHandle, &OsDbgStr, 4843 NdisParameterInteger 4844 ); 4845 4846 if (Status != NDIS_STATUS_SUCCESS) 4847 { 4848 4849 TiDebugFlag = ((DBG_NDIS_OIDS | DBG_INIT | DBG_RECV | DBG_SEND | DBG_IOCTL | DBG_INTERRUPT) << 16) | 4850 DBG_SEV_VERY_LOUD | DBG_SEV_INFO | DBG_SEV_LOUD | DBG_SEV_ERROR | DBG_SEV_FATAL_ERROR; 4851 4852 } else 4853 { 4854 4855 PRINTF(DBG_REGISTRY_VERY_LOUD, ("TIWL: New Flag - 0x%X\n", Value->ParameterData.IntegerData)); 4856 4857 TiDebugFlag = Value->ParameterData.IntegerData; 4858 4859 } 4860 } 4861 4862 #endif /* TI_DBG */ 4863 4864 4865 4866 static void readRates(TWlanDrvIfObjPtr pAdapter, TInitTable *pInitTable) 4867 { 4868 /* 4869 ** B band 4870 */ 4871 regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_B, 4872 BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11, 4873 sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_B_MODE], 4874 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_B_MODE]); 4875 4876 regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_B, 4877 SUPPORTED_RATE_SET_1_2_5_5_11_22, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_1_2_5_5_11_22, 4878 sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_B_MODE], 4879 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_B_MODE]); 4880 /* 4881 ** G band (B&G rates) 4882 */ 4883 regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_G, 4884 BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11, 4885 sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_G_MODE], 4886 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_G_MODE]); 4887 4888 regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_G, 4889 SUPPORTED_RATE_SET_ALL, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_ALL, 4890 sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_G_MODE], 4891 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_G_MODE]); 4892 4893 /* 4894 ** A band 4895 */ 4896 regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_A, 4897 BASIC_RATE_SET_6_12_24, BASIC_RATE_SET_6_12_24, BASIC_RATE_SET_6_12_24, 4898 sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_A_MODE], 4899 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_A_MODE]); 4900 4901 regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_A, 4902 SUPPORTED_RATE_SET_UP_TO_54, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_UP_TO_54, 4903 sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_A_MODE], 4904 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_A_MODE]); 4905 4906 /* 4907 ** Dual band (A&G) 4908 */ 4909 regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_AG, 4910 BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2, 4911 sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_DUAL_MODE], 4912 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_DUAL_MODE]); 4913 4914 regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_AG, 4915 SUPPORTED_RATE_SET_ALL_OFDM, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_ALL_OFDM, 4916 sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_DUAL_MODE], 4917 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_DUAL_MODE]); 4918 4919 /* 4920 ** N supported 4921 */ 4922 regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_N, 4923 BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11, 4924 sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_N_MODE], 4925 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_N_MODE]); 4926 4927 regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_N, 4928 SUPPORTED_RATE_SET_ALL_MCS_RATES, SUPPORTED_RATE_SET_ALL_MCS_RATES, SUPPORTED_RATE_SET_ALL_MCS_RATES, 4929 sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_N_MODE], 4930 (TI_UINT8*)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_N_MODE]); 4931 } 4932 4933 4934 static void decryptScanControlTable(TI_UINT8* src, TI_UINT8* dst, USHORT len) 4935 { 4936 4937 USHORT i; 4938 int parityFlag = 0; 4939 char tmp = 0; 4940 char finalChar = 0; 4941 4942 for(i=0; i < len; i++) 4943 { 4944 switch(src[i]) 4945 { 4946 case 'A': 4947 case 'a': 4948 tmp = 10; 4949 break; 4950 case 'B': 4951 case 'b': 4952 tmp = 11; 4953 break; 4954 case 'C': 4955 case 'c': 4956 tmp = 12; 4957 break; 4958 case 'D': 4959 case 'd': 4960 tmp = 13; 4961 break; 4962 case 'E': 4963 case 'e': 4964 tmp = 14; 4965 break; 4966 case 'F': 4967 case 'f': 4968 tmp = 15; 4969 break; 4970 default: 4971 if( (src[i] >='0') && (src[i] <= '9') ) 4972 tmp = (src[i] - '0'); 4973 else 4974 return; /* ERROR input char */ 4975 } 4976 if(parityFlag == 0) 4977 finalChar = tmp << 4; 4978 else 4979 { 4980 finalChar |= (tmp & 0x0f); 4981 dst[i/2] = finalChar; 4982 } 4983 parityFlag = 1-parityFlag; 4984 } 4985 } 4986 4987 4988 /*----------------------------------------------------------------------------- 4989 4990 Routine Name: 4991 4992 regReadIntegerTable 4993 4994 Routine Description: 4995 reads any table format and insert it to another string. 4996 the delimiters of the tables can be: 4997 - space (" ") 4998 - comma (",") 4999 the table reads only integers thus its reads the following chars: 5000 - "0" till "9" 5001 - minus sign ("-") 5002 5003 Arguments: 5004 5005 5006 Return Value: 5007 5008 zero on success else - error number. 5009 5010 -----------------------------------------------------------------------------*/ 5011 TI_UINT32 5012 regReadIntegerTable( 5013 TWlanDrvIfObjPtr pAdapter, 5014 PNDIS_STRING pParameterName, 5015 TI_INT8* pDefaultValue, 5016 USHORT defaultLen, 5017 TI_UINT8* pUnsignedParameter, 5018 TI_INT8* pSignedParameter, 5019 TI_UINT32* pEntriesNumber, /* returns the number of read entries */ 5020 TI_UINT8 uParameterSize, 5021 TI_BOOL bHex) 5022 { 5023 static CHAR Buffer[MAX_KEY_BUFFER_LEN]; 5024 TI_UINT32 parameterIndex = 0; 5025 int myNumber; 5026 5027 TI_UINT32 index; 5028 TI_UINT32 bufferSize = 0; 5029 5030 char tempBuffer[16]; 5031 char *pTempBuffer = tempBuffer; 5032 TI_UINT32 tempBufferIndex = 0; 5033 5034 TI_BOOL isDigit; 5035 TI_BOOL numberReady; 5036 TI_BOOL isSign; 5037 TI_BOOL endOfLine; 5038 5039 TI_UINT32 debugInfo = 0; 5040 TI_INT8* pBuffer = (TI_INT8*)&Buffer; 5041 5042 regReadStringParameter(pAdapter, 5043 pParameterName, 5044 pDefaultValue, 5045 defaultLen, 5046 (TI_UINT8*)pBuffer, 5047 &bufferSize); 5048 5049 index = 0; 5050 do { /* Parsing one line */ 5051 5052 isSign = TI_FALSE; 5053 isDigit = TI_FALSE; 5054 numberReady = TI_FALSE; 5055 tempBufferIndex = 0; 5056 endOfLine = TI_FALSE; 5057 5058 while ((numberReady==TI_FALSE) && (index<bufferSize)) 5059 { 5060 /* Parsing one number */ 5061 switch (pBuffer[index]) 5062 { 5063 case '0': 5064 case '1': 5065 case '2': 5066 case '3': 5067 case '4': 5068 case '5': 5069 case '6': 5070 case '7': 5071 case '8': 5072 case '9': 5073 pTempBuffer[tempBufferIndex] = pBuffer[index]; 5074 ++tempBufferIndex; 5075 isDigit = TI_TRUE; 5076 break; 5077 case 'a': 5078 case 'b': 5079 case 'c': 5080 case 'd': 5081 case 'e': 5082 case 'f': 5083 case 'A': 5084 case 'B': 5085 case 'C': 5086 case 'D': 5087 case 'E': 5088 case 'F': 5089 if (bHex) 5090 { 5091 pTempBuffer[tempBufferIndex] = pBuffer[index]; 5092 ++tempBufferIndex; 5093 isDigit = TI_TRUE; 5094 } 5095 break; 5096 case '-': 5097 pTempBuffer[tempBufferIndex] = pBuffer[index]; 5098 ++tempBufferIndex; 5099 if (isDigit==TI_TRUE) 5100 { 5101 PRINTF(DBG_REGISTRY_INFO, ("Error in read parameter %c in line index %d\n\ 5102 The sign '-' isn't in place!\n",pBuffer[index],index)); 5103 debugInfo = 1; 5104 } 5105 isSign = TI_TRUE; 5106 break; 5107 5108 case ' ': 5109 case '\t': /* tab char */ 5110 /* for space discard*/ 5111 if ((isDigit==TI_FALSE) && (isSign==TI_FALSE)) 5112 { 5113 break; 5114 } 5115 /* 5116 else we continue to the code of the case ',' 5117 */ 5118 case '\0': 5119 case '\n': 5120 case '\r': 5121 endOfLine = TI_TRUE; 5122 5123 case ',': 5124 /* end of number reading */ 5125 pTempBuffer[tempBufferIndex] = '\0'; 5126 if (isDigit == TI_FALSE) 5127 { 5128 PRINTF(DBG_REGISTRY_INFO, ("Error in end of number delimiter. number isn't ready.\ 5129 check index %d",index)); 5130 debugInfo = 2; 5131 } 5132 numberReady = TI_TRUE; 5133 break; 5134 5135 default: 5136 PRINTF(DBG_REGISTRY_INFO, ("%s(%d) Error - unexpected parameter %c.\n", 5137 __FILE__,__LINE__,pBuffer[index])); 5138 debugInfo = 3; 5139 break; 5140 }/* switch( pBuffer[index] ) */ 5141 5142 if (debugInfo != 0) 5143 { 5144 return debugInfo; 5145 } 5146 ++index; 5147 5148 }/* while (numberReady==TI_FALSE)*/ 5149 5150 if (pTempBuffer[0] == '-') 5151 { 5152 ++pTempBuffer; 5153 if (!bHex) 5154 { 5155 myNumber = tiwlnstrtoi(pTempBuffer,tempBufferIndex-1); 5156 } 5157 else 5158 { 5159 myNumber = tiwlnstrtoi_hex((TI_UINT8 *)pTempBuffer,tempBufferIndex-1); 5160 } 5161 myNumber = -(myNumber); 5162 } 5163 else 5164 { 5165 if (!bHex) 5166 { 5167 myNumber = tiwlnstrtoi(pTempBuffer,tempBufferIndex); 5168 } 5169 else 5170 { 5171 myNumber = tiwlnstrtoi_hex((TI_UINT8 *)pTempBuffer,tempBufferIndex); 5172 } 5173 } 5174 5175 switch (uParameterSize) 5176 { 5177 case 1: 5178 if (pUnsignedParameter) 5179 { 5180 ((TI_UINT8*) pUnsignedParameter)[parameterIndex] = (TI_UINT8) myNumber; 5181 } 5182 else 5183 { 5184 ((TI_INT8*) pSignedParameter)[parameterIndex] = (TI_INT8) myNumber; 5185 } 5186 break; 5187 5188 case 2: 5189 if (pUnsignedParameter) 5190 { 5191 ((PUSHORT) pUnsignedParameter)[parameterIndex] = (USHORT) myNumber; 5192 } 5193 else 5194 { 5195 ((TI_INT16*) pSignedParameter)[parameterIndex] = (TI_INT16) myNumber; 5196 } 5197 break; 5198 5199 case 4: 5200 if (pUnsignedParameter) 5201 { 5202 ((TI_UINT32*) pUnsignedParameter)[parameterIndex] = (TI_UINT32) myNumber; 5203 } 5204 else 5205 { 5206 ((TI_INT32*) pSignedParameter)[parameterIndex] = (TI_INT32) myNumber; 5207 } 5208 break; 5209 5210 default: 5211 PRINTF(DBG_REGISTRY_INFO, ("%s(%d) Error - Illegal Registry parameter size.\n", 5212 __FILE__,__LINE__)); 5213 break; 5214 } 5215 5216 ++parameterIndex; 5217 5218 }while ((index<bufferSize)&&(endOfLine==TI_FALSE)); 5219 5220 *pEntriesNumber = parameterIndex; /* return number of entries read */ 5221 return debugInfo; 5222 } 5223 5224 5225 void assignRegValue(TI_UINT32* lValue, PNDIS_CONFIGURATION_PARAMETER ndisParameter) 5226 { 5227 char b[8]; 5228 ANSI_STRING a = {0, 0, 0}; 5229 5230 a.MaximumLength = sizeof(b); 5231 a.Buffer=(TI_INT8*)b; 5232 5233 if(ndisParameter->ParameterData.StringData.Length <= sizeof (b) * 2) 5234 { 5235 if ( ((char *)(ndisParameter->ParameterData.StringData.Buffer))[1] == 0 ) 5236 { 5237 NdisUnicodeStringToAnsiString ( &a, &(ndisParameter)->ParameterData.StringData ); 5238 *lValue = tiwlnstrtoi ( (char *)a.Buffer, a.Length ); 5239 } else { 5240 *lValue = tiwlnstrtoi ( (char *)(ndisParameter->ParameterData.StringData.Buffer), ndisParameter->ParameterData.StringData.Length); 5241 } 5242 } else { 5243 *lValue = 0; 5244 } 5245 } 5246 5247 5248 /*----------------------------------------------------------------------------- 5249 Routine Name: parseTwoDigitsSequenceHex 5250 5251 Routine Description: Parse a sequence of two digit hex numbers from the input string to the output array. 5252 5253 Arguments: sInString - The input string - a sequence of two digit hex numbers with seperators between them (comma or space) 5254 uOutArray - The output array containing the translated values (each index contains one two digit value) 5255 uSize - The number of two digit items. 5256 5257 Return Value: None 5258 -----------------------------------------------------------------------------*/ 5259 static void parseTwoDigitsSequenceHex (TI_UINT8 *sInString, TI_UINT8 *uOutArray, TI_UINT8 uSize) 5260 { 5261 int i; 5262 5263 /* Convert the MAC Address string into the MAC Address array */ 5264 for (i = 0; i < uSize; i++) 5265 { 5266 /* translate two digit string to value */ 5267 uOutArray[i] = tiwlnstrtoi_hex (sInString, 2); 5268 5269 /* progress to next two digits (plus space) */ 5270 sInString += 3; 5271 } 5272 } 5273 5274 5275 /*----------------------------------------------------------------------------- 5276 5277 Routine Name: 5278 5279 regConvertStringtoCoexActivityTable 5280 5281 Routine Description: Converts the CoexActivity string into CoexActivity config table 5282 5283 5284 Arguments: 5285 5286 5287 Return Value: 5288 5289 None 5290 5291 -----------------------------------------------------------------------------*/ 5292 static void regConvertStringtoCoexActivityTable(TI_UINT8 *strCoexActivityTable, TI_UINT32 numOfElements, TCoexActivity *CoexActivityArray, TI_UINT8 size) 5293 { 5294 char *ptr; 5295 TI_UINT16 tmpArray[NUM_OF_COEX_ACTIVITY_PARAMS_IN_SG]; 5296 TI_UINT16 value = 0, value_l, value_h, add_value; 5297 TI_UINT32 i; 5298 int entry = 0; 5299 5300 /* Note: Currently it is not in use, but it has potential buffer overrun 5301 problem if buffer is not ended with blank (Dm) */ 5302 5303 /* Take the pointer to the string MAC Address to convert it to the Array MAC Address */ 5304 ptr = (char *)strCoexActivityTable; 5305 5306 for(i=0;(i < numOfElements*NUM_OF_COEX_ACTIVITY_PARAMS_IN_SG);ptr++) 5307 { 5308 /* The value can be or "0-9" or from "a-f" */ 5309 value_l = (*ptr - '0'); 5310 value_h = (*ptr - 'a'); 5311 5312 /*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/ 5313 5314 if( (value_l <= 9) || (value_h <= 15 ) ) 5315 { 5316 /* We are in an expected range */ 5317 /* nCheck if 0-9 */ 5318 if(value_l <= 9 ) 5319 { 5320 add_value = value_l; 5321 } 5322 /* Check if a-f */ 5323 else 5324 { 5325 /* 'a' is in fact 10 decimal in hexa */ 5326 add_value = value_h + 10; 5327 } 5328 value = value * 16 + add_value; 5329 /* PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/ 5330 } 5331 else 5332 { 5333 tmpArray[i%NUM_OF_COEX_ACTIVITY_PARAMS_IN_SG] = value; 5334 value = 0; 5335 i++; 5336 if ((i%NUM_OF_COEX_ACTIVITY_PARAMS_IN_SG) == 0) 5337 { 5338 CoexActivityArray[entry].coexIp = (TI_UINT8)tmpArray[0]; 5339 CoexActivityArray[entry].activityId = (TI_UINT8)tmpArray[1]; 5340 CoexActivityArray[entry].defaultPriority= (TI_UINT8)tmpArray[2]; 5341 CoexActivityArray[entry].raisedPriority = (TI_UINT8)tmpArray[3]; 5342 CoexActivityArray[entry].minService = tmpArray[4]; 5343 CoexActivityArray[entry].maxService = tmpArray[5]; 5344 entry++; 5345 } 5346 } 5347 } 5348 } 5349 5350 static void parse_hex_string(char * pString, TI_UINT8 StrLength, TI_UINT8 * pBuffer, TI_UINT8 * Length) 5351 { 5352 char ch; 5353 int iter = 0; 5354 5355 while ((iter < StrLength) && (ch = pString[iter])) 5356 { 5357 TI_UINT8 val = ((ch >= '0' && ch <= '9') ? (ch - '0') : 5358 (ch >= 'A' && ch <= 'F') ? (0xA + ch - 'A') : 5359 (ch >= 'a' && ch <= 'f') ? (0xA + ch - 'a') : 0); 5360 5361 /* even indexes go to the lower nibble, odd indexes push them to the */ 5362 /* higher nibble and then go themselves to the lower nibble. */ 5363 if (iter % 2) 5364 pBuffer[iter / 2] = ((pBuffer[iter / 2] << (BIT_TO_BYTE_FACTOR / 2)) | val); 5365 else 5366 pBuffer[iter / 2] = val; 5367 5368 ++iter; 5369 } 5370 5371 /* iter = 0 len = 0, iter = 1 len = 1, iter = 2 len = 1, and so on... */ 5372 *Length = (iter + 1) / 2; 5373 } 5374 5375 static void parse_binary_string(char * pString, TI_UINT8 StrLength, TI_UINT8 * pBuffer, TI_UINT8 * Length) 5376 { 5377 char ch; 5378 int iter = 0; 5379 5380 while ((iter < StrLength) && (ch = pString[iter])) 5381 { 5382 TI_UINT8 val = (ch == '1' ? 1 : 0); 5383 5384 if (iter % BIT_TO_BYTE_FACTOR) 5385 pBuffer[iter / BIT_TO_BYTE_FACTOR] |= (val << (iter % BIT_TO_BYTE_FACTOR)); 5386 else 5387 pBuffer[iter / BIT_TO_BYTE_FACTOR] = val; 5388 5389 ++iter; 5390 } 5391 5392 /* iter = 0 len = 0, iter = 1 len = 1, iter = 8 len = 1, and so on... */ 5393 *Length = (iter + BIT_TO_BYTE_FACTOR - 1) / BIT_TO_BYTE_FACTOR; 5394 } 5395 5396 static void parse_filter_request(TRxDataFilterRequest* request, TI_UINT8 offset, char * mask, TI_UINT8 maskLength, char * pattern, TI_UINT8 patternLength) 5397 { 5398 request->offset = offset; 5399 request->maskLength = request->patternLength = 0; 5400 5401 if (maskLength > 0) 5402 { 5403 parse_binary_string(mask, maskLength, request->mask, &request->maskLength); 5404 parse_hex_string(pattern, patternLength, request->pattern, &request->patternLength); 5405 } 5406 } 5407