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