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