Remove more windows-specific code. Still untested, but very easy.
Signed-off-by: Pavel Machek <pavel@suse.cz>
---
commit 05affe25840089b2e8c3ea4033b38efb933ddbc1
tree 147eb636c8f1066d10f3d4719d5035212b14e35d
parent 294c54c23b3317222ab524827b9c40c02e01112f
author Pavel <pavel@amd.ucw.cz> Tue, 08 Apr 2008 12:13:29 +0200
committer Pavel <pavel@amd.ucw.cz> Tue, 08 Apr 2008 12:13:29 +0200
drivers/net/wireless/winbond/winbondport/adapter.h | 14
.../net/wireless/winbond/winbondport/bssdbase.c | 82 -
drivers/net/wireless/winbond/winbondport/mto.h | 116 -
drivers/net/wireless/winbond/winbondport/smetask.c | 6
drivers/net/wireless/winbond/winbondport/wbhal.c | 72 -
drivers/net/wireless/winbond/winbondport/wbndis.c | 590 -----
.../net/wireless/winbond/winbondport/wbndis51.c | 2311 -----------------------
.../net/wireless/winbond/winbondport/wbndis51_f.h | 27
.../net/wireless/winbond/winbondport/wbndis51_s.h | 27
.../net/wireless/winbond/winbondport/wbndis_f.h | 42
.../net/wireless/winbond/winbondport/wbndis_s.h | 158 --
11 files changed, 108 insertions(+), 3337 deletions(-)
diff --git a/drivers/net/wireless/winbond/winbondport/adapter.h b/drivers/net/wireless/winbond/winbondport/adapter.h
index c5caaab..64585c5 100644
--- a/drivers/net/wireless/winbond/winbondport/adapter.h
+++ b/drivers/net/wireless/winbond/winbondport/adapter.h
@@ -5,32 +5,22 @@
#define MAX_ANSI_STRING 40
typedef struct WB32_ADAPTER
{
- u32 AdapterIndex; // 20060703.4 Add for using pAdapterContext global Adapter point
+ u32 AdapterIndex; // 20060703.4 Add for using pAdapterContext global Adapter point
WB_LOCALDESCRIPT sLocalPara; // Myself connected parameters
PWB_BSSDESCRIPTION asBSSDescriptElement;
SME_PARAMETERS sSmePara; // GUI desired/WEP parameters
SCAN_PARAMETERS sScanPara; // Myself scan parameters
- MLME_FRAME sMlmeFrame; // connect to peerSTA parameters
+ MLME_FRAME sMlmeFrame; // connect to peerSTA parameters
ROAM_PARAMETERS sRoamPara; // Roaming Module
MTO_PARAMETERS sMtoPara; // MTO_struct ...
hw_data_t sHwData; //For HAL
MDS Mds;
TESTSTA sTestSta; // For test station
- #ifdef NDIS_MINIPORT_DRIVER
- WBNDIS WbNdis;
- NDIS51_DESIRED_PARAMETER DesiredNdis51Parameter;
- #endif
-
- #ifdef WB_LINUX
WBLINUX WbLinux;
WB_STA_WPA_DESCRIPTION Global_STA_Wpa;//For WB_WPA
struct iw_statistics iw_stats;
- #endif
-
- // 20060704.1 Add for recognize
u8 LinkName[MAX_ANSI_STRING];
-
} WB32_ADAPTER, ADAPTER, *PWB32_ADAPTER, *PADAPTER;
diff --git a/drivers/net/wireless/winbond/winbondport/bssdbase.c b/drivers/net/wireless/winbond/winbondport/bssdbase.c
index 82c5095..5c4d65a 100644
--- a/drivers/net/wireless/winbond/winbondport/bssdbase.c
+++ b/drivers/net/wireless/winbond/winbondport/bssdbase.c
@@ -2102,15 +2102,8 @@ void CreateWpaIE(PWB32_ADAPTER Adapter,
// +2+pRsnWpaSubElement->AuthKeyMngtSuiteCount*(sizeof(SUITE_SELECTOR))
pRsnWpaElement->Length = 10 +2+PairwiseKeySuiteCount*(sizeof(SUITE_SELECTOR))
+2+AuthKeyMngtSuiteCount*(sizeof(SUITE_SELECTOR))
- #ifdef NDIS_MINIPORT_DRIVER
- +2;//include capability;
- #else
;//exclude capability;
- #endif
//to fill capability
- #ifdef NDIS_MINIPORT_DRIVER
- *(u16 *)(RSN_Element+pRsnWpaElement->Length) = 0;
- #endif
memcpy( &msg[*iFildOffset], pRsnWpaElement, pRsnWpaElement->Length+2 );
#ifdef _PE_TX_DUMP_
@@ -2143,21 +2136,15 @@ void CreateWpaIE(PWB32_ADAPTER Adapter,
#ifdef _WPA2_
//==========================================================================================
//added by WS for add IE for WPA2 packet
-void CreateRsnIE(PWB32_ADAPTER Adapter,
- u16* iFildOffset,
- PUCHAR msg,
+void CreateRsnIE(PWB32_ADAPTER Adapter, u16* iFildOffset, PUCHAR msg,
struct Management_Frame* msgHeader,
- struct Association_Request_Frame_Body* msgBody,
- u16 iMSindex)
- {
-
- if ((psSME->bDesiredAuthMode==WPA2_AUTH)||(psSME->bDesiredAuthMode==WPA2PSK_AUTH))
- {
-
- u8 RSN_Element[200];
+ struct Association_Request_Frame_Body* msgBody, u16 iMSindex)
+{
+ if ((psSME->bDesiredAuthMode==WPA2_AUTH)||(psSME->bDesiredAuthMode==WPA2PSK_AUTH)) {
+ u8 RSN_Element[200];
struct WPA2_RSN_Information_Element UNALIGNED *pRsnWpa2Element;
- struct WPA2_RSN_Auth_Sub_Information_Element *pRsnWpa2SubElement;
- struct RSN_Capability_Element *CaPa;
+ struct WPA2_RSN_Auth_Sub_Information_Element *pRsnWpa2SubElement;
+ struct RSN_Capability_Element *CaPa;
struct PMKID_Information_Element * AssoReq_PMKID;
int index=0;
u32 OUItmp;
@@ -2215,44 +2202,27 @@ void CreateRsnIE(PWB32_ADAPTER Adapter,
//Fill capability
CaPa=(struct RSN_Capability_Element *)(RSN_Element+index);
//CaPa->wValue=0x0010;
- #ifdef NDIS_MINIPORT_DRIVER
- CaPa->RSN_Capability.Pre_Auth=1;
- #else
CaPa->RSN_Capability.Pre_Auth=0;
- #endif
- CaPa->RSN_Capability.No_Pairwise=0;
- CaPa->RSN_Capability.PTK_Replay_Counter=00;
- CaPa->RSN_Capability.GTK_Replay_Counter=00;
+ CaPa->RSN_Capability.No_Pairwise=0;
+ CaPa->RSN_Capability.PTK_Replay_Counter=00;
+ CaPa->RSN_Capability.GTK_Replay_Counter=00;
CaPa->RSN_Capability.Reserved1=00;
- CaPa->RSN_Capability.Reserved2=0;
+ CaPa->RSN_Capability.Reserved2=0;
index+=sizeof(struct RSN_Capability_Element);
- AssoReq_PMKID=(struct PMKID_Information_Element *)(RSN_Element+index);
+ AssoReq_PMKID=(struct PMKID_Information_Element *)(RSN_Element+index);
AssoReq_PMKID->PMKID_Count=0;
//to find pmkid for desired bssid the NIC is roaming to
- if(SearchPmkid(Adapter,msgHeader,AssoReq_PMKID))
- {
- //if(AssoReq_PMKID->PMKID_Count >16)
- // break;
- //20061011 anson's endian
- //pRsnWpa2Element->Length = 6 +2+(pRsnWpa2Element->PairwiseKeySuiteCount* sizeof(SUITE_SELECTOR))
- // +2+(pRsnWpa2SubElement->AuthKeyMngtSuiteCount* sizeof(SUITE_SELECTOR))
- pRsnWpa2Element->Length = 6 +2+(PairwiseKeySuiteCount* sizeof(SUITE_SELECTOR))
- +2+(AuthKeyMngtSuiteCount* sizeof(SUITE_SELECTOR))
- #ifdef NDIS_MINIPORT_DRIVER
- +2+2+(AssoReq_PMKID->PMKID_Count*sizeof(NDIS_802_11_PMKID_VALUE));
- #else
+ if(SearchPmkid(Adapter,msgHeader,AssoReq_PMKID)) {
+ pRsnWpa2Element->Length = 6 +2+(PairwiseKeySuiteCount* sizeof(SUITE_SELECTOR))
+ +2+(AuthKeyMngtSuiteCount* sizeof(SUITE_SELECTOR))
//TODO : sizeof(NDIS_802_11_PMKID_VALUE) = ??
- +2+2+(AssoReq_PMKID->PMKID_Count*16);
- #endif
- }
- else
- //20061011 anson's endian
- //pRsnWpa2Element->Length = 6 +2+(pRsnWpa2Element->PairwiseKeySuiteCount* sizeof(SUITE_SELECTOR))
- // +2+(pRsnWpa2SubElement->AuthKeyMngtSuiteCount* sizeof(SUITE_SELECTOR))
- pRsnWpa2Element->Length = 6 +2+(PairwiseKeySuiteCount* sizeof(SUITE_SELECTOR))
- +2+(AuthKeyMngtSuiteCount* sizeof(SUITE_SELECTOR))
- +2;
+ +2+2+(AssoReq_PMKID->PMKID_Count*16);
+ } else
+ //20061011 anson's endian
+ pRsnWpa2Element->Length = 6 +2+(PairwiseKeySuiteCount* sizeof(SUITE_SELECTOR))
+ +2+(AuthKeyMngtSuiteCount* sizeof(SUITE_SELECTOR))
+ +2;
//+2 is for Element ID and version Number
memcpy( &msg[*iFildOffset], pRsnWpa2Element, pRsnWpa2Element->Length+2 );
@@ -2263,14 +2233,11 @@ void CreateRsnIE(PWB32_ADAPTER Adapter,
//added the length of Rsn IE.
*iFildOffset +=(pRsnWpa2Element->Length+2) ;
- if (psSME->boReassoc)
- {
+ if (psSME->boReassoc) {
// fixed field length(listen interval+capability+MAC addr) = 10
psSME->AssocReqVarLen = *iFildOffset - sizeof(struct Management_Frame) - 10;
memcpy( psSME->AssocReqVarIE, msg+sizeof(struct Management_Frame)+10, psSME->AssocReqVarLen );
- }
- else
- {
+ } else {
// "-4" is for capability field and listen interval
psSME->AssocReqVarLen = *iFildOffset - sizeof(struct Management_Frame) - 4;
memcpy( psSME->AssocReqVarIE, msg+sizeof(struct Management_Frame)+4, psSME->AssocReqVarLen );
@@ -2281,8 +2248,7 @@ void CreateRsnIE(PWB32_ADAPTER Adapter,
DataDmp(psSME->AssocReqVarIE, psSME->AssocReqVarLen,0);
#endif
}
-
- }
+ }
u16 SearchPmkid(PWB32_ADAPTER Adapter,struct Management_Frame* msgHeader,struct PMKID_Information_Element * AssoReq_PMKID )
{
diff --git a/drivers/net/wireless/winbond/winbondport/mto.h b/drivers/net/wireless/winbond/winbondport/mto.h
index eb8b2fd..f47936f 100644
--- a/drivers/net/wireless/winbond/winbondport/mto.h
+++ b/drivers/net/wireless/winbond/winbondport/mto.h
@@ -11,10 +11,6 @@
#ifndef __MTO_H__
#define __MTO_H__
-// LA20040210_DTO kevin
-//#include "platform.h"
-
-//#define MTO_DEFAULT_TH_FIXANT 3
#define MTO_DEFAULT_TH_CNT 5
#define MTO_DEFAULT_TH_SQ3 112 //OLD IS 13 reference JohnXu
#define MTO_DEFAULT_TH_IDLE_SLOT 15
@@ -44,6 +40,7 @@ typedef enum {
RATE_CHGSTATE_CALCULATE = 1,
RATE_CHGSTATE_BACKOFF = 2
} TX_RATE_REDUCTION_STATE;
+
//============================================================================
// struct _MTOParameters --
//
@@ -51,14 +48,14 @@ typedef enum {
//============================================================================
typedef struct _MTO_PARAMETERS
{
- u8 Th_Fixant;
- u8 Th_Cnt;
- u8 Th_SQ3;
- u8 Th_IdleSlot;
+ u8 Th_Fixant;
+ u8 Th_Cnt;
+ u8 Th_SQ3;
+ u8 Th_IdleSlot;
u16 Tmr_Aging;
- u8 Th_PrInterf;
- u8 Tmr_Periodic;
+ u8 Th_PrInterf;
+ u8 Tmr_Periodic;
//--------- wkchen added -------------
u32 TxFlowCount; //to judge what kind the tx flow(sparse or busy) is
@@ -81,44 +78,44 @@ typedef struct _MTO_PARAMETERS
u16 reserved_1;
//------------------------------------------------
- u8 PowerChangeEnable;
- u8 AntDiversityEnable;
- u8 Ant_mac;
- u8 Ant_div;
+ u8 PowerChangeEnable;
+ u8 AntDiversityEnable;
+ u8 Ant_mac;
+ u8 Ant_div;
- u8 CCA_Mode;
- u8 CCA_Mode_Setup;
- u8 Preamble_Type;
- u8 PreambleChangeEnable;
+ u8 CCA_Mode;
+ u8 CCA_Mode_Setup;
+ u8 Preamble_Type;
+ u8 PreambleChangeEnable;
- u8 DataRateLevel;
- u8 DataRateChangeEnable;
- u8 FragThresholdLevel;
- u8 FragThresholdChangeEnable;
+ u8 DataRateLevel;
+ u8 DataRateChangeEnable;
+ u8 FragThresholdLevel;
+ u8 FragThresholdChangeEnable;
- u16 RTSThreshold;
- u16 RTSThreshold_Setup;
+ u16 RTSThreshold;
+ u16 RTSThreshold_Setup;
- u32 AvgIdleSlot;
- u32 Pr_Interf;
- u32 AvgGapBtwnInterf;
+ u32 AvgIdleSlot;
+ u32 Pr_Interf;
+ u32 AvgGapBtwnInterf;
- u8 RTSChangeEnable;
- u8 Ant_sel;
- u8 aging_timeout;
+ u8 RTSChangeEnable;
+ u8 Ant_sel;
+ u8 aging_timeout;
u8 reserved_2;
- u32 Cnt_Ant[2];
- u32 SQ_Ant[2];
+ u32 Cnt_Ant[2];
+ u32 SQ_Ant[2];
// 20040510 remove from globe vairable
- u32 TmrCnt;
- u32 BackoffTmr;
- TOGGLE_STATE ToggleState;
- TX_RATE_REDUCTION_STATE TxRateReductionState;
+ u32 TmrCnt;
+ u32 BackoffTmr;
+ TOGGLE_STATE ToggleState;
+ TX_RATE_REDUCTION_STATE TxRateReductionState;
- u8 Last_Rate;
- u8 Co_efficent;
+ u8 Last_Rate;
+ u8 Co_efficent;
u8 FallbackRateLevel;
u8 OfdmRateLevel;
@@ -132,19 +129,11 @@ typedef struct _MTO_PARAMETERS
} MTO_PARAMETERS, *PMTO_PARAMETERS;
-
-// LA20040210_DTO kevin
-//#define MTO_FUNC_INPUT PWB32_ADAPTER Adapter
-//#define MTO_FUNC_INPUT_DATA Adapter
-//#define MTO_DATA() (Adapter->mto_data)
-//#define MTO_HAL() (&Adapter->hw_data)
-//#define MTO_FUNC_INPUT core_data_t *pcore_data
#define MTO_FUNC_INPUT PWB32_ADAPTER Adapter
#define MTO_FUNC_INPUT_DATA Adapter
#define MTO_DATA() (Adapter->sMtoPara)
#define MTO_HAL() (&Adapter->sHwData)
#define MTO_SET_PREAMBLE_TYPE(x) // 20040511 Turbo mark LM_PREAMBLE_TYPE(&pcore_data->lm_data) = (x)
-//#define MTO_ENABLE (Adapter->sLocalPara.MTOExecuting) //[WKCHEN]
#define MTO_ENABLE (Adapter->sLocalPara.TxRateMode == RATE_AUTO)
#define MTO_TXPOWER_FROM_EEPROM (Adapter->sHwData.PowerIndexFromEEPROM)
#define LOCAL_ANTENNA_NO() (Adapter->sLocalPara.bAntennaNo)
@@ -159,7 +148,6 @@ #define MTO_BACKOFF_TMR() MTO_
#define MTO_LAST_RATE() MTO_DATA().Last_Rate
#define MTO_CO_EFFICENT() MTO_DATA().Co_efficent
-//#define MTO_TH_FIXANT() MTO_DATA().Th_Fixant
#define MTO_TH_CNT() MTO_DATA().Th_Cnt
#define MTO_TH_SQ3() MTO_DATA().Th_SQ3
#define MTO_TH_IDLE_SLOT() MTO_DATA().Th_IdleSlot
@@ -169,7 +157,6 @@ #define MTO_TMR_AGING() MTO_
#define MTO_TMR_PERIODIC() MTO_DATA().Tmr_Periodic
#define MTO_POWER_CHANGE_ENABLE() MTO_DATA().PowerChangeEnable
-//#define MTO_ANT_DIVERSITY_ENABLE() MTO_DATA().AntDiversityEnable
#define MTO_ANT_DIVERSITY_ENABLE() Adapter->sLocalPara.boAntennaDiversity
#define MTO_ANT_MAC() MTO_DATA().Ant_mac
#define MTO_ANT_DIVERSITY() MTO_DATA().Ant_div
@@ -203,37 +190,28 @@ #define MTO_TXFLOWCOUNT() MTO_DATA().T
#define MTOPARA_PERIODIC_CHECK_CYCLE() MTO_DATA().DTO_PeriodicCheckCycle
#define MTOPARA_RSSI_TH_FOR_ANTDIV() MTO_DATA().DTO_RssiThForAntDiv
#define MTOPARA_TXCOUNT_TH_FOR_CALC_RATE() MTO_DATA().DTO_TxCountThForCalcNewRate
-#define MTOPARA_TXRATE_INC_TH() MTO_DATA().DTO_TxRateIncTh
-#define MTOPARA_TXRATE_DEC_TH() MTO_DATA().DTO_TxRateDecTh
-#define MTOPARA_TXRATE_EQ_TH() MTO_DATA().DTO_TxRateEqTh
-#define MTOPARA_TXRATE_BACKOFF() MTO_DATA().DTO_TxRateBackOff
+#define MTOPARA_TXRATE_INC_TH() MTO_DATA().DTO_TxRateIncTh
+#define MTOPARA_TXRATE_DEC_TH() MTO_DATA().DTO_TxRateDecTh
+#define MTOPARA_TXRATE_EQ_TH() MTO_DATA().DTO_TxRateEqTh
+#define MTOPARA_TXRATE_BACKOFF() MTO_DATA().DTO_TxRateBackOff
#define MTOPARA_TXRETRYRATE_REDUCE() MTO_DATA().DTO_TxRetryRateReduce
-#define MTOPARA_TXPOWER_INDEX() MTO_DATA().DTO_TxPowerIndex
+#define MTOPARA_TXPOWER_INDEX() MTO_DATA().DTO_TxPowerIndex
//------------------------------------------------
-// LA20040210_DTO kevin
-//void MTO_Init(...);
-//void MTO_PeriodicTimerExpired(...);
-//void MTO_AgingTimerExpired(...);
-//void MTO_TxFailed(...);
-//void MTO_Interf(...);
-//void MTO_Reset(...);
-
extern u8 MTO_Data_Rate_Tbl[];
extern u16 MTO_Frag_Th_Tbl[];
-#define MTO_DATA_RATE() MTO_Data_Rate_Tbl[MTO_RATE_LEVEL()]
-#define MTO_DATA_FALLBACK_RATE() MTO_Data_Rate_Tbl[MTO_FALLBACK_RATE_LEVEL()] //next level
-#define MTO_FRAG_TH() MTO_Frag_Th_Tbl[MTO_FRAG_TH_LEVEL()]
+#define MTO_DATA_RATE() MTO_Data_Rate_Tbl[MTO_RATE_LEVEL()]
+#define MTO_DATA_FALLBACK_RATE() MTO_Data_Rate_Tbl[MTO_FALLBACK_RATE_LEVEL()] //next level
+#define MTO_FRAG_TH() MTO_Frag_Th_Tbl[MTO_FRAG_TH_LEVEL()]
-typedef struct{
+typedef struct {
u8 tx_rate;
u8 tx_retry_rate;
-}TXRETRY_REC;
+} TXRETRY_REC;
-typedef struct _STATISTICS_INFO
-{
+typedef struct _STATISTICS_INFO {
u32 Rate54M;
u32 Rate48M;
u32 Rate36M;
@@ -280,7 +258,7 @@ typedef struct _STATISTICS_INFO
s32 RxBytes;
s32 TxBytes;
s32 Antenna;
-}STATISTICS_INFO, *PSTATISTICS_INFO;
+} STATISTICS_INFO, *PSTATISTICS_INFO;
#endif //__MTO_H__
diff --git a/drivers/net/wireless/winbond/winbondport/smetask.c b/drivers/net/wireless/winbond/winbondport/smetask.c
index bb1caa9..782eca1 100644
--- a/drivers/net/wireless/winbond/winbondport/smetask.c
+++ b/drivers/net/wireless/winbond/winbondport/smetask.c
@@ -52,10 +52,8 @@ void vNetDisconnectInd(PWB32_ADAPTER Ada
void vSmeTimerStart(PWB32_ADAPTER Adapter, u32 timeout_value);
void vSmeTimerStop(PWB32_ADAPTER Adapter);
void vSmeTimerHandler_1a( void* Data);
-void vSmeTimerHandler( void* SystemSpecific1,
- PWB32_ADAPTER Adapter,
- void* SystemSpecific2,
- void* SystemSpecific3);
+void vSmeTimerHandler(void* SystemSpecific1, PWB32_ADAPTER Adapter,
+ void* SystemSpecific2, void* SystemSpecific3);
void TxRateHandler(PWB32_ADAPTER Adapter);
//=================== Action Function of SME Module
diff --git a/drivers/net/wireless/winbond/winbondport/wbhal.c b/drivers/net/wireless/winbond/winbondport/wbhal.c
index 663f615..f1912e0 100644
--- a/drivers/net/wireless/winbond/winbondport/wbhal.c
+++ b/drivers/net/wireless/winbond/winbondport/wbhal.c
@@ -23,19 +23,18 @@ void hal_remove_mapping_key( phw_data_t
if( OS_MEMORY_COMPARE( pmac_addr, pHwData->Key_slot[i], MAC_ADDR_LENGTH ) )
break;
}
- if( i != MAX_KEY_TABLE ) //Find the same index
- {
+ if (i != MAX_KEY_TABLE) { //Find the same index
// Clear the mac address
memset(pHwData->Key_slot[i], 0, MAC_ADDR_LENGTH);
- //Writing into register to clear the valid bit
+ // Writing into register to clear the valid bit
Wb35Reg_Write( pHwData, 0x0820, 0x0 );//Value
i<<=4;
i |= 0x4000000;
Wb35Reg_Write( pHwData, 0x081c, i );
}
}
-//---------------------------------------------------------------------------------------------------
+
void hal_remove_default_key( phw_data_t pHwData, u32 i )
{
u32 ltmp;
@@ -45,21 +44,20 @@ void hal_remove_default_key( phw_data_t
WBDEBUG(("hal_remove_default_key\n"));
#endif
- if( i < 4 ) // For default key index 0 ~ 3
- {
+ if (i < 4) { // For default key index 0 ~ 3
//Writing into register to clear the valid bit
Wb35Reg_Write( pHwData, 0x0820, 0x0 );//Value
ltmp = i<<4;
ltmp |= 0x4000000;
Wb35Reg_Write( pHwData, 0x081c, ltmp );
- OS_MEMORY_CLEAR( pHwData->Key_slot[i], MAC_ADDR_LENGTH ); // 20060214 for recover
+ memset(pHwData->Key_slot[i], 0, MAC_ADDR_LENGTH);
}
}
-//---------------------------------------------------------------------------------------------------
+
unsigned char hal_set_mapping_key( phw_data_t pHwData, PUCHAR pmac_addr, u8 null_key,
- u8 wep_on, PUCHAR ptx_tsc, PUCHAR prx_tsc,
- u8 key_type, u8 key_len, PUCHAR pkey_data )
+ u8 wep_on, PUCHAR ptx_tsc, PUCHAR prx_tsc,
+ u8 key_type, u8 key_len, PUCHAR pkey_data )
{
PWB35REG pWb35Reg = &pHwData->Wb35Reg;
PKEY_TABLE pKey;
@@ -100,11 +98,11 @@ unsigned char hal_set_mapping_key( phw_d
memcpy( &(pKey->DW1_Address2), pmac_addr + 2, sizeof(u32) );
- if( prx_tsc ) {
+ if (prx_tsc) {
pValue = (u8 *)pKey +8 ; //20060926 anson's endian
memcpy( pValue, prx_tsc, 6 ); //20060926 anson's endian
}
- if( ptx_tsc ) {
+ if (ptx_tsc) {
pValue = (u8 *)pKey +16; //20060926 anson's endian
memcpy( pValue, ptx_tsc, 6 ); //20060926 anson's endian
}
@@ -113,7 +111,7 @@ unsigned char hal_set_mapping_key( phw_d
memcpy( ((PUCHAR)pKey+sizeof(KEY_TABLE)), pkey_data, key_len );
j = 0xff;
- for( i=MAPPING_KEY_START_INDEX; i<MAX_KEY_TABLE; i++ ) {
+ for (i=MAPPING_KEY_START_INDEX; i<MAX_KEY_TABLE; i++) {
pValue = (u8 *)pKey + 2; //20060926 anson's endian
if (!memcpy(pValue, pHwData->Key_slot[i], 6)) {
pHwData->mapping_key_replace_index = i + 1;
@@ -123,7 +121,7 @@ unsigned char hal_set_mapping_key( phw_d
}
if (!memcpy(pHwData->Key_slot[i], "\x00\x00\x00\x00\x00\x00", MAC_ADDR_LENGTH ))
- if( j == 0xff )
+ if (j == 0xff)
j = i;//Storing the index which can be used
}
@@ -176,8 +174,8 @@ unsigned char hal_set_mapping_key( phw_d
}
//---------------------------------------------------------------------------------------------------
unsigned char hal_set_default_key( phw_data_t pHwData, u8 index, u8 null_key,
- u8 wep_on, PUCHAR ptx_tsc, PUCHAR prx_tsc,
- u8 key_type, u8 key_len, PUCHAR pkey_data )
+ u8 wep_on, PUCHAR ptx_tsc, PUCHAR prx_tsc,
+ u8 key_type, u8 key_len, PUCHAR pkey_data )
{
PKEY_TABLE pKey;
PULONG pltmp;
@@ -365,15 +363,15 @@ void hal_set_ethernet_address( phw_data_
//Wb35Reg_BurstWrite( pHwData,0x03e8, (PULONG)pHwData->CurrentMacAddress, 2, AUTO_INCREMENT );
Wb35Reg_BurstWrite( pHwData,0x03e8, ltmp, 2, AUTO_INCREMENT ); //20060926 add by anson's endian
}
-//---------------------------------------------------------------------------------------------------
+
void hal_get_permanent_address( phw_data_t pHwData, PUCHAR pethernet_address )
{
if( pHwData->SurpriseRemove ) return;
memcpy( pethernet_address, pHwData->PermanentMacAddress, 6 );
}
-//---------------------------------------------------------------------------------------------------
-u8 hal_init_hardware( phw_data_t pHwData, PWB32_ADAPTER Adapter )
+
+u8 hal_init_hardware(phw_data_t pHwData, PWB32_ADAPTER Adapter)
{
u16 SoftwareSet;
pHwData->Adapter = Adapter;
@@ -448,7 +446,7 @@ hal_set_power_save_mode( phw_data_t pHw
//pHwData->desired_power_save = power_save;
pWb35Reg->M24_MacControl &= ~0x0200c000; //clear ps-poll and pwr active/save bits
- if( power_save ) {
+ if (power_save) {
pWb35Reg->M24_MacControl |= 0x02004000; //enable ps-poll and pwr save
} else {
// Force MAC active
@@ -504,7 +502,8 @@ void hal_set_slot_time( phw_data_t pHwDa
Wb35Reg_Write( pHwData, 0x0878, pWb35Reg->M78_ERPInformation );
}
//---------------------------------------------------------------------------------------------------
-void hal_set_rates( phw_data_t pHwData, PUCHAR pbss_rates, u8 length, unsigned char basic_rate_set )
+void hal_set_rates(phw_data_t pHwData, PUCHAR pbss_rates,
+ u8 length, unsigned char basic_rate_set )
{
PWB35REG pWb35Reg = &pHwData->Wb35Reg;
u32 tmp, tmp1;
@@ -514,28 +513,23 @@ void hal_set_rates( phw_data_t pHwData,
if( pHwData->SurpriseRemove ) return;
- if( basic_rate_set )
- {
+ if (basic_rate_set) {
pWb35Reg->M28_MacControl &= ~0x000fff00;
tmp1 = 0x00000100;
- }
- else
- {
+ } else {
pWb35Reg->M28_MacControl &= ~0xfff00000;
tmp1 = 0x00100000;
}
tmp = 0;
- for( i=0; i<length; i++ )
- {
+ for (i=0; i<length; i++) {
Byte = pbss_rates[i] & 0x7f;
- for( j=0; j<12; j++ )
- {
+ for (j=0; j<12; j++) {
if( Byte == Rate[j] )
break;
}
- if( j < 12 )
+ if (j < 12)
tmp |= (tmp1<<j);
}
@@ -547,16 +541,14 @@ void hal_set_rates( phw_data_t pHwData,
memset( SupportedRate, 0, 16 );
tmp = 0x00100000;
tmp1 = 0x00000100;
- for( i=0; i<12; i++ ) // Get the supproted rate
- {
- if( tmp & pWb35Reg->M28_MacControl )
- {
+ for (i=0; i<12; i++) { // Get the supported rate
+ if (tmp & pWb35Reg->M28_MacControl) {
SupportedRate[j] = Rate[i];
- if( tmp1 & pWb35Reg->M28_MacControl )
+ if (tmp1 & pWb35Reg->M28_MacControl)
SupportedRate[j] |= 0x80;
- if( k )
+ if (k)
Count2++;
else
Count1++;
@@ -564,8 +556,7 @@ void hal_set_rates( phw_data_t pHwData,
j++;
}
- if( i==4 && k==0 )
- {
+ if (i==4 && k==0) {
if( !(pWb35Reg->M28_MacControl & 0x000ff000) ) // if basic rate in 11g domain)
{
k = 1;
@@ -580,7 +571,7 @@ void hal_set_rates( phw_data_t pHwData,
// Fill data into support rate until buffer full
//---20060926 add by anson's endian
for (i=0; i<4; i++)
- *(PULONG)(SupportedRate+(i<<2)) = cpu_to_le32( *(PULONG)(SupportedRate+(i<<2)) );
+ *(PULONG)(SupportedRate+(i<<2)) = cpu_to_le32( *(PULONG)(SupportedRate+(i<<2)) );
//--- end 20060926 add by anson's endian
Wb35Reg_BurstWrite( pHwData,0x087c, (PULONG)SupportedRate, 4, AUTO_INCREMENT );
pWb35Reg->M7C_MacControl = ((PULONG)SupportedRate)[0];
@@ -617,7 +608,6 @@ void hal_start_bss( phw_data_t pHwData,
void hal_join_request( phw_data_t pHwData, u8 bss_type )
{
PWB35REG pWb35Reg = &pHwData->Wb35Reg;
-// PWB32_ADAPTER Adapter=pHwData->Adapter;
if( pHwData->SurpriseRemove ) return;
diff --git a/drivers/net/wireless/winbond/winbondport/wbndis.c b/drivers/net/wireless/winbond/winbondport/wbndis.c
index 36013b7..3bab529 100644
--- a/drivers/net/wireless/winbond/winbondport/wbndis.c
+++ b/drivers/net/wireless/winbond/winbondport/wbndis.c
@@ -1,589 +1 @@
-#include "os_common.h"
-
-#ifdef NDIS51_MINIPORT
-void
-WBNDIS_PnPNotify( PADAPTER Adapter, NDIS_DEVICE_PNP_EVENT PnPEvent, void* InformationBuffer, u32 InformationBufferLength )
-{
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("====> MPPnPEventNotify\n"));
- #endif
-
- switch (PnPEvent)
- {
- case NdisDevicePnPEventQueryRemoved:
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Wb32PnPNotify: NdisDevicePnPEventQueryRemoved\n"));
- #endif
- break;
-
- case NdisDevicePnPEventRemoved:
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Wb32PnPNotify: NdisDevicePnPEventRemoved\n"));
- #endif
- break;
-
- case NdisDevicePnPEventSurpriseRemoved:
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Wb32PnPNotify: NdisDevicePnPEventSurpriseRemoved\n"));
- #endif
- break;
-
- case NdisDevicePnPEventQueryStopped:
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Wb32PnPNotify: NdisDevicePnPEventQueryStopped\n"));
- #endif
- break;
-
- case NdisDevicePnPEventStopped:
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Wb32PnPNotify: NdisDevicePnPEventStopped\n"));
- #endif
- break;
-
- case NdisDevicePnPEventPowerProfileChanged:
-// WBDEBUG(("Wb32PnPNotify: NdisDevicePnPEventPowerProfileChanged\n"));
- #ifdef _PE_STATE_DUMP_
- if( *(PULONG)InformationBuffer == NdisPowerProfileAcOnLine )
- WBDEBUG(("Wb32PnPNotify: NdisPowerProfileAcOnLine\n"));
- if( *(PULONG)InformationBuffer == NdisPowerProfileBattery )
- WBDEBUG(("Wb32PnPNotify: NdisPowerProfileBattery\n"));
- #endif
- break;
-
- default:
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Wb32PnPNotify: unknown PnP event %x \n", PnPEvent));
- #endif
- break;
- }
-}
-#endif
-
-//===========================================================================
-// WBNDIS_SendPackets --
-//
-// Description:
-// The WBNDIS_SendPackets request instructs a driver to transmit packets
-// through the adapter onto the medium.
-//
-// Arguments:
-// MiniportAdapterContext - Context registered with the wrapper, really
-// a pointer to the adapter.
-// PacketArray - A pointer to the packet array that is to be
-// transmitted.
-// NumberOfPackets - The number of pointers to packet descriptors
-// at PacketArray.
-//
-//===========================================================================
-void
-WBNDIS_SendPackets( NDIS_HANDLE MiniportAdapterContext,
- PPNDIS_PACKET PacketArray,
- u32 NumberOfPackets )
-{
- PADAPTER Adapter = (PADAPTER)MiniportAdapterContext;
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- PNDIS_PACKET pNdisPacket;
- PNDIS_BUFFER pNdisPacketBuffer;
- PUCHAR pBufAddress;
- u32 i;
- u32 NdisPacketBufferCount, NdisPacketSize, buf_size;
-
-
- //
- // Fill information into reserved space
- //
- for( i=0; i<NumberOfPackets; i++ )
- {
- pNdisPacket = PacketArray[i];
- NdisQueryPacket( pNdisPacket, NULL, &NdisPacketBufferCount, &pNdisPacketBuffer, &NdisPacketSize);
-
- //931130.5.q
- if( !NdisPacketSize )
- {
- #ifdef _PE_TX_DUMP_
- WBDEBUG(("Ndis packet error [%d] = %d\n", NdisPacketBufferCount, NdisPacketSize ));
- #endif
- NDIS_SET_PACKET_STATUS( pNdisPacket, NDIS_STATUS_FAILURE );
- NdisMSendComplete( Adapter->WbNdis.MiniportAdapterHandle, pNdisPacket, NDIS_STATUS_FAILURE);
- #ifdef _PE_TX_DUMP_
- WBDEBUG(("!NdisPacketSize || (NdisPacketBufferCount>(MAX_DESCRIPTOR_BUFFER_INDEX-2))\n"));
- #endif
- }
- else
- {
- NDIS_SET_PACKET_STATUS( pNdisPacket, NDIS_STATUS_PENDING );
-
- // Modify the follow for the number of buffer is larger than MAX_DESCRIPTOR_BUFFER_INDEX
- // WBNDIS_GetNextPacket will copy the packet buffer into transmitting buffer directly
- RESERVED(pNdisPacket)->pNdisPacketBuffer = NULL;
- if( !(NdisPacketBufferCount>(MAX_DESCRIPTOR_BUFFER_INDEX-2)) )
- RESERVED(pNdisPacket)->pNdisPacketBuffer = pNdisPacketBuffer;
- RESERVED(pNdisPacket)->NdisPacketSize = (u16)NdisPacketSize;
-
- // Frame type acknowledgement
- // //931130.5.r
- #ifdef NDIS51_MINIPORT
- NdisQueryBufferSafe( pNdisPacketBuffer, (void* *) &pBufAddress, &buf_size, HighPagePriority );
- #else
- NdisQueryBuffer( pNdisPacketBuffer, (void* *) &pBufAddress, &buf_size );
- #endif
-/*
- //[WK DUMP]
- WBDEBUG(("New packet =%x\n", pNdisPacket));
- #ifdef _PE_TX_DUMP_
- {
- PNDIS_BUFFER pPacketBuffer;
- PUCHAR pBufAddr;
- u32 PacketSize, buf_size1;
-
- //[WK DUMP]
- pPacketBuffer = pNdisPacketBuffer;
- PacketSize = NdisPacketSize;
- WBDEBUG(("=== DUMP 802.3 TX Buff ===\n"));
- WBDEBUG(("Size =%d\n", PacketSize));
- while( pPacketBuffer )
- {
- // Get the address and length of the first buffer
- #ifdef NDIS51_MINIPORT// PD43 20030430 920428.3
- NdisQueryBufferSafe( pPacketBuffer, (void* *) &pBufAddr, &buf_size1, HighPagePriority );
- #else
- NdisQueryBuffer( pPacketBuffer, (void* *) &pBufAddr, &buf_size1 );
- #endif
- DataDmp( pBufAddr, buf_size1, 0);
- NdisGetNextBuffer( pPacketBuffer, &pPacketBuffer);
- }
- }
- #endif
-*/
- //
- // Can be sent now?
- //
- if( pWbNdis->shutdown || !CURRENT_LINK_ON ||
- (
- #ifdef _WPA2_
- CURRENT_DESIRED_WPA2_ENABLE &&
- #endif //end def _WPA2_
- CURRENT_DESIRED_WPA_ENABLE && CURRENT_CONTROL_PORT_BLOCK && (*(PUSHORT)(pBufAddress+12) != cpu_to_le16(0x8e88)) ) || \
- ((psLOCAL->RadioOffStatus.boHwRadioOff == TRUE) || (psLOCAL->RadioOffStatus.boSwRadioOff == TRUE)) )
- {
- NDIS_SET_PACKET_STATUS( pNdisPacket, NDIS_STATUS_FAILURE );
- NdisMSendComplete( Adapter->WbNdis.MiniportAdapterHandle, pNdisPacket, NDIS_STATUS_FAILURE);
- #ifdef _PE_TX_DUMP_
- WBDEBUG(("CURRENT_LINK_OFF + Block\n"));
- #endif
- }
- else
- {
- //
- // Queuing the ndis packet
- //
- OS_SPIN_LOCK_ACQUIRED( &pWbNdis->SpinLock );
- RESERVED(pNdisPacket)->Next = NULL;
-
- if( pWbNdis->first_packet==NULL)
- pWbNdis->first_packet = pNdisPacket;
- else
- RESERVED(pWbNdis->last_packet)->Next = pNdisPacket;
-
- pWbNdis->last_packet = pNdisPacket;
- Adapter->sLocalPara._NumTxMSDU++;
- OS_SPIN_LOCK_RELEASED( &pWbNdis->SpinLock );
- }
- }
- }
-
- //
- // Start to transmit
- //
- Mds_Tx( Adapter );
-}
-
-
-//931130.5.s
-void
-WBNDIS_GetNextPacket( PADAPTER Adapter, PDESCRIPTOR pDes )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- PNDIS_PACKET pNdisPacket;
- PNDIS_BUFFER pNdisPacketBuffer;
- PUCHAR pBufAddress, pTgtBufAddress;
- u32 NdisPacketBufferCount, NdisPacketSize, buf_size;
- u8 first_in;
-
-
- //Get a Ndis packet to transmit
- OS_SPIN_LOCK_ACQUIRED(&pWbNdis->SpinLock);
- pNdisPacket = pWbNdis->first_packet;
- if( pNdisPacket == pWbNdis->last_packet )
- pWbNdis->last_packet = NULL;
- pWbNdis->first_packet = RESERVED(pWbNdis->first_packet)->Next;
- OS_SPIN_LOCK_RELEASED(&pWbNdis->SpinLock);//Release spinlock
-
- //================================================================================
- // Fill the related information into descriptor //
- //================================================================================
- pWbNdis->TxByteCount += RESERVED(pNdisPacket)->NdisPacketSize; // 940803 Add
-
- pWbNdis->packet_return = pNdisPacket;
- if( RESERVED(pNdisPacket)->pNdisPacketBuffer )
- {
- pNdisPacketBuffer = RESERVED(pNdisPacket)->pNdisPacketBuffer;
-
- //Add buffer
- first_in = 0;
- while( pNdisPacketBuffer )
- {
- // Get the address and length of the first buffer
- #ifdef NDIS51_MINIPORT// PD43 20030430 920428.3
- NdisQueryBufferSafe( pNdisPacketBuffer, (void* *) &pBufAddress, &buf_size, HighPagePriority );
- #else
- NdisQueryBuffer( pNdisPacketBuffer, (void* *) &pBufAddress, &buf_size );
- #endif
-
- #ifdef _PE_TX_DUMP_
- //[WK DUMP]
- //WBDEBUG(("=== DUMP TX PACKET ===\n"));
- //DataDmp( pBufAddress, buf_size, 0);
- #endif
-
- //931130.5.t
- // +------------+
- // | header + 2 | <-- DA + SA + T/L
- // +------------+
- // +-------------------------------+
- // | data |
- // +-------------------------------+
- // :
- // :
- //
- if( first_in == 0 )
- {
- //931130.5.u
- if( buf_size < (DOT_3_TYPE_OFFSET+2) )
- {
- #ifdef _PE_RX_DUMP_
- WBDEBUG(("First buffer of Ndis Packet too small\n"));
- #endif
- NDIS_SET_PACKET_STATUS( pNdisPacket, NDIS_STATUS_FAILURE );
- NdisMSendComplete( Adapter->WbNdis.MiniportAdapterHandle, pNdisPacket, NDIS_STATUS_FAILURE);
- pWbNdis->packet_return = NULL;
- return;
- }
-
- DESCRIPTOR_ADD_BUFFER( pDes, pBufAddress, DOT_3_TYPE_OFFSET+2 );
-
- buf_size -= (DOT_3_TYPE_OFFSET+2);
- pBufAddress += (DOT_3_TYPE_OFFSET+2);
- first_in = 1;
- }
-
- if( buf_size )// Add the left data 931130.5.v
- DESCRIPTOR_ADD_BUFFER( pDes, pBufAddress, (u16)buf_size );
-
- //Get the next ndis packet buffer
- NdisGetNextBuffer( pNdisPacketBuffer, &pNdisPacketBuffer);
- }
- }
- else
- {
- // Copy frame into temp buffer due to too many piece of buffer
- NdisQueryPacket( pNdisPacket, NULL, &NdisPacketBufferCount, &pNdisPacketBuffer, &NdisPacketSize);
- pTgtBufAddress = pWbNdis->NdisBufferTmp;
-
- // Copy buffer
- while( pNdisPacketBuffer )
- {
- // Get the address and length of the first buffer
- #ifdef NDIS51_MINIPORT// PD43 20030430 920428.3
- NdisQueryBufferSafe( pNdisPacketBuffer, (void* *) &pBufAddress, &buf_size, HighPagePriority );
- #else
- NdisQueryBuffer( pNdisPacketBuffer, (void* *) &pBufAddress, &buf_size );
- #endif
-
- memcpy( pTgtBufAddress, pBufAddress, buf_size );
- pTgtBufAddress += buf_size;
-
- //Get the next ndis packet buffer
- NdisGetNextBuffer( pNdisPacketBuffer, &pNdisPacketBuffer);
- }
-
- // Add buffer
- DESCRIPTOR_ADD_BUFFER( pDes, pWbNdis->NdisBufferTmp, DOT_3_TYPE_OFFSET+2 );
- DESCRIPTOR_ADD_BUFFER( pDes, pWbNdis->NdisBufferTmp+DOT_3_TYPE_OFFSET+2, NdisPacketSize - (DOT_3_TYPE_OFFSET+2) );
- }
-}
-
-void WBNDIS_GetNextPacketCompleted( PADAPTER Adapter, PDESCRIPTOR pDes )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- PNDIS_PACKET pNdisPacket;
-
- //
- // Return the send result to NDIS
- //
- pNdisPacket = pWbNdis->packet_return;
- if( !pNdisPacket )
- {
- #ifdef _PE_TX_DUMP_
- WBDEBUG(("WBNDIS Tx null point error\n"));
- #endif
- return;
- }
-
- //In 2m_wlan_wep of HCT test, if the key is removed, the transmitting data should
- //still return "success". Or this test item will be failed.
- //[WK DUMP]
- //WBDEBUG(("Packet tx completely. addr =%x\n", pNdisPacket));
- NdisMSendComplete( Adapter->WbNdis.MiniportAdapterHandle,
- pNdisPacket,
- NDIS_STATUS_SUCCESS );
- MIB_GS_XMIT_OK_INC;
- pWbNdis->packet_return = NULL;
-}
-
-void
-WBNDIS_stop( PADAPTER Adapter )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- PNDIS_PACKET pNdisPacket;
-
-
- if( OS_ATOMIC_INC( Adapter, &pWbNdis->ThreadCount ) == 1 )
- {
- // Shutdown module immediately
- pWbNdis->shutdown = 1;
-
- // Return all the ndis packet handle in sending queue
- OS_SPIN_LOCK_ACQUIRED(&pWbNdis->SpinLock);
- while( pWbNdis->first_packet != NULL )
- {
- // Update queue point before exit spin-lock protect
- pNdisPacket = pWbNdis->first_packet;
- pWbNdis->first_packet = RESERVED(pWbNdis->first_packet)->Next;
- OS_SPIN_LOCK_RELEASED(&pWbNdis->SpinLock);//release spinlock
- NdisMSendComplete( Adapter->WbNdis.MiniportAdapterHandle,
- pNdisPacket,
- NDIS_STATUS_FAILURE );
- OS_SPIN_LOCK_ACQUIRED(&pWbNdis->SpinLock);
- }
- pWbNdis->last_packet = NULL;
- OS_SPIN_LOCK_RELEASED(&pWbNdis->SpinLock);//release spinlock
- }
-
- OS_ATOMIC_DEC( Adapter, &pWbNdis->ThreadCount );
-}
-
-void
-WBNDIS_Destroy( PADAPTER Adapter )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- u32 i;
- unsigned char Cancel;
-
-
- WBNDIS_stop( Adapter );
-// OS_SLEEP(10000);
-
- //======================================================================
- // Release the Rx NDIS resource
- //======================================================================
- if( pWbNdis->NdisBufferPoolOk )// Free NDIS buffer pool handle
- NdisFreeBufferPool( pWbNdis->BufferPoolHandle );
-
- for( i=0; i<pWbNdis->PacketAllocateCount; i++ ) // Free NDIS packet
- NdisFreePacket( pWbNdis->ReceivePacket[i] );
-
- if( pWbNdis->NdisPacketPoolOk )
- NdisFreePacketPool( pWbNdis->PacketPoolHandle );// Free NDIS packet pool handle
-
- OS_SPIN_LOCK_FREE( &pWbNdis->SpinLock );
-
- OS_TIMER_CANCEL( &pWbNdis->TxRateTimer, &Cancel );
-}
-
-
-
-unsigned char
-WBNDIS_Initial( PADAPTER Adapter, NDIS_HANDLE MiniportAdapterHandle )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- NDIS_STATUS status;
- u8 i;
-
- do
- {
- pWbNdis->MiniportAdapterHandle = MiniportAdapterHandle;// Saving the Adapter Handler
- pWbNdis->connect_status = NDIS_STATUS_MEDIA_DISCONNECT; // Media disconnect
-
- OS_SPIN_LOCK_ALLOCATE( &pWbNdis->SpinLock );
-
- // Allocate ndis packet pool handle
- NdisAllocatePacketPool( &status, &pWbNdis->PacketPoolHandle, ETHERNET_RX_DESCRIPTORS, 16 );
- if( status != NDIS_STATUS_SUCCESS )
- break;
- pWbNdis->NdisPacketPoolOk = 1;
-
- // Allocate ndis packet
- for( i=0; i<ETHERNET_RX_DESCRIPTORS; i++ )
- {
- NdisAllocatePacket( &status, &pWbNdis->ReceivePacket[i], pWbNdis->PacketPoolHandle );
- if( status != NDIS_STATUS_SUCCESS)
- break;
- NDIS_SET_PACKET_HEADER_SIZE( pWbNdis->ReceivePacket[i], 14 );
- }
- pWbNdis->PacketAllocateCount = i;
- if( i != ETHERNET_RX_DESCRIPTORS )
- break;
-
- // Allocate ndis bufer pool
- NdisAllocateBufferPool( &status, &pWbNdis->BufferPoolHandle, ETHERNET_RX_DESCRIPTORS );
- if( status != NDIS_STATUS_SUCCESS )
- break;
- pWbNdis->NdisBufferPoolOk = 1;
-
- // Allocate timer for Tx rate show
- pWbNdis->TxRateShowResult = RATE_1M;
- OS_TIMER_INITIAL( &pWbNdis->TxRateTimer, WbNdis_TxRateShow, Adapter );
- OS_TIMER_SET( &pWbNdis->TxRateTimer, 5000 );
-
- return TRUE;
-
- }while(FALSE);
-
- return FALSE;
-}
-
-void
-WBNDIS_ReceivePacket( PADAPTER Adapter, PRXLAYER1 pRxLayer1 )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
- PNDIS_PACKET pNdisPacket;
- PNDIS_BUFFER pBufferHandle;
- NDIS_STATUS BufStatus;
- PUCHAR BufAddr;
- u32 ByteCount = 0;
- u16 BufSize;
- u8 BufIndex;
- u8 i;
-
-/* if( pRxLayer1->BufferNumber == 1 )
- {
- BufIndex = pRxLayer1->BufferQueue[0].BufferIndex;
- BufSize = pRxLayer1->BufferQueue[0].BufferSize;
- BufAddr = pRxLayer1->BufferQueue[0].pBufferAddress;
-
- NdisMEthIndicateReceive( Adapter->WbNdis.MiniportAdapterHandle,
- NULL,
- BufAddr,
- 14,
- BufAddr + 14,
- BufSize - 14,
- BufSize );
- NdisMEthIndicateReceiveComplete( Adapter->WbNdis.MiniportAdapterHandle );
- }
- else
- {*/
- for( i=0; i<pRxLayer1->BufferNumber; i++ )
- {
- BufIndex = pRxLayer1->BufferQueue[i].BufferIndex;
- BufSize = pRxLayer1->BufferQueue[i].BufferSize;
- BufAddr = pRxLayer1->BufferQueue[i].pBufferAddress;
- ByteCount += BufSize;
-
- NdisAllocateBuffer( &BufStatus,
- &Adapter->WbNdis.ReceiveBuffer[BufIndex],
- Adapter->WbNdis.BufferPoolHandle,
- (void*)BufAddr,
- BufSize);
-
- if( BufStatus == NDIS_STATUS_SUCCESS )
- {
- if( i == 0 )
- {
- pNdisPacket = Adapter->WbNdis.ReceivePacket[BufIndex];//Get the ndis packet handle
- }
- NdisChainBufferAtBack( pNdisPacket, Adapter->WbNdis.ReceiveBuffer[BufIndex] );
- }
- }
-
- pWbNdis->RxByteCount += ByteCount; // 940803 Add
-
- // Indicate to NDIS
- NDIS_SET_PACKET_STATUS( pNdisPacket, NDIS_STATUS_RESOURCES );
- NdisMIndicateReceivePacket( Adapter->WbNdis.MiniportAdapterHandle, &pNdisPacket, 1) ;
-
- // DeAllocate the NDIS buffer
- for( i=0; i<pRxLayer1->BufferNumber; i++ )
- {
- NdisUnchainBufferAtBack(Adapter->WbNdis.ReceivePacket[0], &pBufferHandle);
-
- if( pBufferHandle ) NdisFreeBuffer(pBufferHandle);
- }
-// }
-}
-
-
-void WbNdis_TxRateShow( void* S1, PADAPTER Adapter, void* S3, void* S4 )
-{
- PWBNDIS pWbNdis = &Adapter->WbNdis;
-
- if( CURRENT_LINK_ON )
- {
- if( ((pWbNdis->TxByteCount - pWbNdis->TxByteCount_last) == 0 ) &&
- ( Adapter->sLocalPara.TxRateMode == RATE_AUTO ) )
- pWbNdis->TxRateShowResult = psLOCAL->SRateSet[psLOCAL->NumOfSRate - 1]; // Get the maximum of Tx rate; // No traffic
- else
- pWbNdis->TxRateShowResult = psLOCAL->CurrentTxRate;
-
- pWbNdis->TxByteCount_last = pWbNdis->TxByteCount;
- }
- else
- pWbNdis->TxRateShowResult = RATE_1M;
-
- // 20060317 The variable maybe set to 0 due to Radio On/Off. Ignore the condition here
-// if( !pWbNdis->shutdown )
- OS_TIMER_SET( &pWbNdis->TxRateTimer, 5000 ); // 5 sec
-}
-
-void WBNDIS_ConnectStatus( PADAPTER Adapter, u32 flag )
-{
- Adapter->WbNdis.connect_status = NDIS_STATUS_MEDIA_DISCONNECT;
- if( flag == OS_CONNECTED )
- Adapter->WbNdis.connect_status = NDIS_STATUS_MEDIA_CONNECT;
-
- NdisMIndicateStatus( Adapter->WbNdis.MiniportAdapterHandle,
- Adapter->WbNdis.connect_status,
- NULL, 0 );
- NdisMIndicateStatusComplete( Adapter->WbNdis.MiniportAdapterHandle );
-}
-
-#ifdef NDIS50_MINIPORT
-void WbInitializeString( PNDIS_STRING DestinationString, PUCHAR SourceString )
-{
- u16 i, len;
-
- len = (u16)strlen( SourceString );
- if ((OS_MEMORY_ALLOC( (void* *)&DestinationString->Buffer, 100 ) != 1) || // 100 byte maximum
- (len >= 50 ) )
- {
- DestinationString->MaximumLength = 0;
- DestinationString->Length = 0;
- return;
- }
-
- OS_MEMORY_CLEAR( DestinationString->Buffer, 100 );
- DestinationString->MaximumLength = 100/2;
- DestinationString->Length = len*2;
- for( i=0; i<len; i++ )
- DestinationString->Buffer[i] = SourceString[i];
-}
-
-void WbFreeString( NDIS_STRING String)
-{
- kfree(String.Buffer);
- String.Buffer = NULL;
-}
-#endif
-
-
-
+/* No more Window$ c0d3 */
diff --git a/drivers/net/wireless/winbond/winbondport/wbndis51.c b/drivers/net/wireless/winbond/winbondport/wbndis51.c
index 4da4f54..db124b9 100644
--- a/drivers/net/wireless/winbond/winbondport/wbndis51.c
+++ b/drivers/net/wireless/winbond/winbondport/wbndis51.c
@@ -1,2310 +1 @@
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// wbndis51.c
-//
-// history :
-//
-// Description:
-// Implement the incremental OIDs in NIDS5.1
-//
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#include "os_common.h"
-
-/*-------------------- Local function definition ---------------------------*/
-void drv_translate_bss_ex( PWB32_ADAPTER Adapter, NDIS_WLAN_BSSID_EX *pndis_bss, bss_desc_tt *pbss );
-void NetworkTypeConvert(PNDIS_802_11_NETWORK_TYPE pNetworkType, u8 band);
-void ChannelNumToFreq(u8 NetworkType, u8 ChannelNumber, u32 *freq);
-u8* get_name_of_region(WLAN_REGION_CODE region);
-//u32* get_channels_of_region(WLAN_REGION_CODE region);
-u16 ChanNo2String(u8 ChNo, u8 * Str);
-
-// 20040114.3 Add
-void WbNdis51_initial( PWB32_ADAPTER Adapter )
-{
- PNDIS51_DESIRED_PARAMETER pN51 = &Adapter->DesiredNdis51Parameter;
-
- NdisMInitializeTimer( &pN51->scan_sync_timer,
- Adapter->WbNdis.MiniportAdapterHandle,
- WbNdis51_oid_sync,
- Adapter);
-
- NdisMInitializeTimer( &pN51->Connect_timer,
- Adapter->WbNdis.MiniportAdapterHandle,
- WbNdis51_connect,
- Adapter);
-
- // Modify to 2sec due to First disconnect event will be indicated
- NdisMSetTimer( &pN51->scan_sync_timer, 2000 );
-
- if( !psSCAN->BScanEnable )
- NdisMSetTimer( &pN51->Connect_timer, 1000 );
-}
-void WbNdis51_destroy( PWB32_ADAPTER Adapter )
-{
- PNDIS51_DESIRED_PARAMETER pN51 = &Adapter->DesiredNdis51Parameter;
- unsigned char cancel;
-
- NdisMCancelTimer( &pN51->scan_sync_timer, &cancel );
- if( !psSCAN->BScanEnable ) NdisMCancelTimer( &pN51->Connect_timer, &cancel );
-}
-void WbNdis51_connect( void* s1, PWB32_ADAPTER Adapter, void* s3, void* s4 )
-{
- PNDIS51_DESIRED_PARAMETER pN51 = &Adapter->DesiredNdis51Parameter;
-
- if( pN51->ConnectCount )
- {
- if( CURRENT_LINK_ON )
- {
- pN51->ConnectCount = 0;
- pN51->ConnectInterval = 0;
- }
- else
- {
- pN51->ConnectInterval--;
- if( pN51->ConnectInterval <= 0 )
- {
- sme_set_desired_ssid( Adapter, pN51->CurrentSSID, (u8)pN51->CurrentSSIDLength );
- pN51->ConnectCount = 0;
- }
- }
- }
-
- NdisMSetTimer( &pN51->Connect_timer, 1000 );
-}
-
-void WbNdis51_oid_sync( void* s1, PWB32_ADAPTER Adapter, void* s3, void* s4 )
-{
- PNDIS51_DESIRED_PARAMETER pN51 = &Adapter->DesiredNdis51Parameter;
-
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("BG scan sec = %d\n", pN51->sync_count ));
- #endif
-
- //Periodically query the h/w radio status
- CheckHwRadioStatus( Adapter );
-
- if( pN51->sync_scan_require )
- {
- if (((u32)Adapter->WbNdis.connect_status != (u32)NDIS_STATUS_MEDIA_CONNECT) ||
- (Adapter->Mds.TxToggle == FALSE))
- {
- if ((pN51->sync_count >= 60) || (pN51->sync_count <= 66))
- psSCAN->ScanTimeStamp++;//background scan
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("Issue scanning\n"));
- #endif
- sme_set_bssid_list_scan(Adapter,NULL);
- //to update pmkid table in OS
- #ifdef _WPA2_
- if(psSME->wpa_ok && psSME->bDesiredAuthMode==WPA2PSK_AUTH)
- OS_PMKID_STATUS_EVENT( Adapter );
- #endif //end def _WPA2_
- }
-
- pN51->sync_count = 0;
-
- pN51->sync_scan_require = 0;
- }
-
- pN51->sync_count += 2;
-
- //FUNK software won't issue scanning per 60 sec.
- if( !TS_RUNNING_IN_TESTSTA_MODE )
- {
- if( (pN51->sync_count == 66) && psSCAN->BScanEnable )
- pN51->sync_scan_require = 1;//Enfore to issue background scanning
- }
-
- Adapter->Mds.TxToggle = FALSE; //move from roamtask.c to clear.
- //2 seconds later it will be true if there is any tx activity.
- //If it is still false, the scan is permitted. [20050706]
-
- NdisMSetTimer( &pN51->scan_sync_timer, 2000 );
-}
-
-//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
-NDIS_STATUS Ndis51QueryInformation( PWB32_ADAPTER pcore_data,
- NDIS_OID Oid,
- void* InformationBuffer,
- u32 InformationBufferLength,
- PULONG pMoveBytes)
-{
- u8 count,j;
- NDIS_STATUS ret = NDIS_STATUS_SUCCESS;
- u32 bytes_needed;
- PWB32_ADAPTER Adapter = pcore_data;
-
- #ifdef _PE_OID_DUMP_
- DbgPrintfOID51(Oid, TRUE);
- #endif
- switch(Oid)
- {
- /* The follow OID must be supported ++++++++++++++++++++++++++++++++++++*/
-
- case OID_GEN_PHYSICAL_MEDIUM:
-
- bytes_needed = sizeof(NDIS_PHYSICAL_MEDIUM);
-
- if(bytes_needed <= InformationBufferLength)
- {
- PNDIS_PHYSICAL_MEDIUM pPhysMedia = (PNDIS_PHYSICAL_MEDIUM)InformationBuffer;
- *pPhysMedia = NdisPhysicalMediumWirelessLan;
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_BSSID:
-
- bytes_needed = 6;
-
- if(bytes_needed <= InformationBufferLength)
- {
- if (sme_get_bssid(pcore_data, InformationBuffer) < 0)
- {
- ret = NDIS_STATUS_ADAPTER_NOT_READY;
- }
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_SSID:
-
- bytes_needed = sizeof(NDIS_802_11_SSID);
-
- if (bytes_needed <= InformationBufferLength)
- {
- PNDIS_802_11_SSID p;
-
- p = (PNDIS_802_11_SSID) InformationBuffer;
-
- p->SsidLength = 0;
- sme_get_ssid(pcore_data, p->Ssid, (u8 *)&(p->SsidLength));
- #ifdef _PE_OID_DUMP_
- {
- u8 ssid[50];
-
- memcpy(ssid, (u8 *)p->Ssid, (u8)p->SsidLength);
- ssid[p->SsidLength] = '\0';
- WBDEBUG(("GET ssid=%s\n", ssid));
- }
- #endif
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_NETWORK_TYPES_SUPPORTED:
-
- bytes_needed = sizeof(NDIS_802_11_NETWORK_TYPE_LIST);
- switch (psLOCAL->bMacOperationMode)
- {
- case MODE_802_11_A:
- case MODE_802_11_B:
- break;
- case MODE_802_11_ABG:
- bytes_needed += (sizeof(NDIS_802_11_NETWORK_TYPE)*2);
- break;
- default:
- bytes_needed += sizeof(NDIS_802_11_NETWORK_TYPE);
- break;
- }
- if(bytes_needed <= InformationBufferLength)
- {
- PNDIS_802_11_NETWORK_TYPE_LIST p;
- u32 tmpp = 0;
-
- tmpp = sizeof(NDIS_802_11_NETWORK_TYPE);
- p = (PNDIS_802_11_NETWORK_TYPE_LIST) InformationBuffer;
- if (psLOCAL->bMacOperationMode == MODE_802_11_A)
- {
- p->NumberOfItems = 1;
- p->NetworkType[0] = Ndis802_11OFDM5;
- }
- else if (psLOCAL->bMacOperationMode == MODE_802_11_ABG)
- {
- p->NumberOfItems = 3;
- p->NetworkType[0] = Ndis802_11DS;
- p->NetworkType[1] = Ndis802_11OFDM5;
- p->NetworkType[2] = Ndis802_11OFDM24;
- }
- else if (psLOCAL->bMacOperationMode == MODE_802_11_B)
- {
- p->NumberOfItems = 1;
- p->NetworkType[0] = Ndis802_11DS;
- }
- else
- {
- p->NumberOfItems = 2;
- p->NetworkType[0] = Ndis802_11DS;
- p->NetworkType[1] = Ndis802_11OFDM24;
- }
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_NETWORK_TYPE_IN_USE:
-
- bytes_needed = sizeof(NDIS_802_11_NETWORK_TYPE);
-
- if(bytes_needed <= InformationBufferLength)
- {
- PNDIS_802_11_NETWORK_TYPE p;
- u8 BandType;
-
- p = (PNDIS_802_11_NETWORK_TYPE) InformationBuffer;
-
- sme_get_network_type_in_use(pcore_data, &BandType);
- NetworkTypeConvert(p, BandType);
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_RSSI:
-
- bytes_needed = sizeof(NDIS_802_11_RSSI);
-
- if(bytes_needed <= InformationBufferLength)
- {
- NDIS_802_11_RSSI *p;
-
- p = (NDIS_802_11_RSSI *) InformationBuffer;
- sme_get_rssi(pcore_data, p);
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_INFRASTRUCTURE_MODE:
-
- bytes_needed = sizeof(NDIS_802_11_NETWORK_INFRASTRUCTURE);
-
- if(bytes_needed <= InformationBufferLength)
- {
- PNDIS_802_11_NETWORK_INFRASTRUCTURE p;
- u8 bss_type;
-
- p = (PNDIS_802_11_NETWORK_INFRASTRUCTURE) InformationBuffer;
-
- *p = Ndis802_11AutoUnknown;// Default value setting
- if (sme_get_bss_type(pcore_data, &bss_type) != -1)
- {
- if(bss_type == ESS_NET)
- *p = Ndis802_11Infrastructure;
- else if(bss_type == IBSS_NET)
- *p = Ndis802_11IBSS;
- }
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_FRAGMENTATION_THRESHOLD:
-
- bytes_needed = sizeof(NDIS_802_11_FRAGMENTATION_THRESHOLD);
-
- if(bytes_needed <= InformationBufferLength)
- {
- NDIS_802_11_FRAGMENTATION_THRESHOLD *p;
-
- p = (NDIS_802_11_FRAGMENTATION_THRESHOLD *) InformationBuffer;
- sme_get_fragment_threshold(pcore_data, p);
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_RTS_THRESHOLD:
-
- bytes_needed = sizeof(NDIS_802_11_RTS_THRESHOLD);
-
- if(bytes_needed <= InformationBufferLength)
- {
- NDIS_802_11_RTS_THRESHOLD *p;
-
- p = (NDIS_802_11_RTS_THRESHOLD *) InformationBuffer;
- sme_get_rts_threshold(pcore_data, p);
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_SUPPORTED_RATES:
-
- bytes_needed = 8;
-
- if(bytes_needed <= InformationBufferLength)
- {
- PUCHAR p;
-
- //The size of NDIS_802_11_RATES is 8 bytes
- p = (PUCHAR) InformationBuffer;
- p[0] = 0x82; // Basic and operating rate for 1Mbps
- p[1] = 0x84; // Basic and operating rate for 2Mbps
- p[2] = 0x8b; // Basic and operating rate for 5.5Mbps
- p[3] = 0x96; // Basic and operating rate for 11Mbps
- p[4] = 0x00; // End
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_CONFIGURATION:
-
- bytes_needed = sizeof(NDIS_802_11_CONFIGURATION);
-
- if(bytes_needed <= InformationBufferLength)
- {
- PNDIS_802_11_CONFIGURATION p;
- u8 current_channel, current_band;
- NDIS_802_11_NETWORK_TYPE NetworkType;
- u32 channel_freq = 0;
-
- p = (PNDIS_802_11_CONFIGURATION) InformationBuffer;
- p->Length = sizeof(NDIS_802_11_CONFIGURATION);
- // PD43 20030530
- p->BeaconPeriod = 0;
- sme_get_beacon_period(pcore_data, (u16 *)&(p->BeaconPeriod));
- // PD43 20030530
- p->ATIMWindow = 0;
- sme_get_atim_window(pcore_data, (u16 *)&(p->ATIMWindow));
- sme_get_current_channel(pcore_data, ¤t_channel);
- sme_get_current_band(pcore_data, ¤t_band);
- NetworkTypeConvert(&NetworkType, current_band);
- ChannelNumToFreq( (u8)NetworkType, current_channel, &channel_freq);
- p->DSConfig = channel_freq * 1000;
-
- p->FHConfig.Length = sizeof(NDIS_802_11_CONFIGURATION_FH);
- p->FHConfig.HopPattern = 0;
- p->FHConfig.HopSet = 0;
- p->FHConfig.DwellTime = 0;
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_BSSID_LIST:
-
- sme_get_scan_bss_count(pcore_data, &count);
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("[DRV] ** bss_count = %d\n", count));
- #endif
- //
- bytes_needed = sizeof(u32);
-
- {
- u8 boMsRadioOff;
- RadioOff RadioOffData;
-
- // 1: off, 0: on
- sme_get_radio_mode(Adapter, &RadioOffData);
- sme_get_ms_radio_mode(Adapter, &boMsRadioOff);
- if (boMsRadioOff || RadioOffData.boHwRadioOff || RadioOffData.boSwRadioOff)
- {
- count = 0;
- bytes_needed += sizeof(NDIS_WLAN_BSSID_EX);
- }
- }
-
- for (j=0; j < count; j++)
- {
- bss_desc_tt *pbss;
-
- bytes_needed += (sizeof(NDIS_WLAN_BSSID_EX)-4);
- sme_get_scan_bss(pcore_data, j, &pbss);
- Assemble_IE(pcore_data, pbss->wIndex);
-
- // 20061108 Add for WPS
- bytes_needed += pbss->WPS_IE_length;
-
- bytes_needed += ((pbss->ies_len + 3) & ~0x03);
- }
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("InformationBufferLength =%d\n", InformationBufferLength));
- WBDEBUG(("bytes_needed =%d\n", bytes_needed));
- #endif
- //------------------
- if(bytes_needed <= InformationBufferLength)
- {
- NDIS_802_11_BSSID_LIST_EX *p;
- NDIS_WLAN_BSSID_EX *pndis_bss;
-
- u8 i;
- bss_desc_tt *pscan_bss = NULL; // important!!!
-
- NdisZeroMemory(InformationBuffer, bytes_needed);
- p = (NDIS_802_11_BSSID_LIST_EX *)InformationBuffer;
-
-
- // get and translate all the BSSs found during the scan
- pndis_bss = (NDIS_WLAN_BSSID_EX*) &(p->Bssid[0]);
-
- for (i=0; i < count; i++)
- {
- sme_get_scan_bss(pcore_data, i, &pscan_bss);
- drv_translate_bss_ex( Adapter, pndis_bss, pscan_bss );
-
- pndis_bss = (NDIS_WLAN_BSSID_EX*) ((u8*)pndis_bss + pndis_bss->Length);
- }
- p->NumberOfItems = i;
- }
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("***** OID_802_11_BSSID_LIST return value =%x\n", ret));
- #endif
- //------------------------------------------
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_AUTHENTICATION_MODE:
- bytes_needed = sizeof(NDIS_802_11_AUTHENTICATION_MODE);
- if(bytes_needed <= InformationBufferLength)
- {
- PNDIS_802_11_AUTHENTICATION_MODE p;
- u8 auth_mode;
-
- p = (PNDIS_802_11_AUTHENTICATION_MODE) InformationBuffer;
- if(sme_get_auth_mode(pcore_data, &auth_mode) != -1)
- {
- #ifdef _PE_OID_DUMP_
- //_asm{int 3}
- WBDEBUG(("GET Auth mode = %x\n", auth_mode));
- #endif
- switch(auth_mode)
- {
- case OPEN_AUTH:
- *p = Ndis802_11AuthModeOpen;
- break;
- case SHARE_AUTH:
- *p = Ndis802_11AuthModeShared;
- break;
- case ANY_AUTH:
- *p = Ndis802_11AuthModeAutoSwitch;
- break;
- case WPA_AUTH:
- *p = Ndis802_11AuthModeWPA;
- break;
- case WPAPSK_AUTH:
- *p = Ndis802_11AuthModeWPAPSK;
- break;
- case WPANONE_AUTH:
- *p = Ndis802_11AuthModeWPANone;
- break;
- #ifdef _WPA2_
- case WPA2_AUTH: //for WPA2 added by WS 19/4/04
- *p = Ndis802_11AuthModeWPA2;
- break;
- case WPA2PSK_AUTH:
- *p = Ndis802_11AuthModeWPA2PSK;//for WPA2 added by WS 19/4/04
- break;
- #endif //end def _WPA2_
- default:
- break;
- }
- }
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- //case OID_802_11_WEP_STATUS:
- case OID_802_11_ENCRYPTION_STATUS: // same as OID_802_11_WEP_STATUS
-
- bytes_needed = sizeof(NDIS_802_11_WEP_STATUS);
-
- if(bytes_needed <= InformationBufferLength)
- {
- //----------------------------------------------------------
- PNDIS_802_11_ENCRYPTION_STATUS p = (PNDIS_802_11_ENCRYPTION_STATUS) InformationBuffer;
- u8 EncryptStatus;
-
- sme_get_encryption_status(pcore_data, &EncryptStatus);
- #ifdef _PE_OID_DUMP_
- //_asm{int 3}
- WBDEBUG(("GET encrypt status = %x\n", EncryptStatus));
- #endif
- switch (EncryptStatus)
- {
- /*
- case ENCRYPT_NOTSUPPORT:
- *p = Ndis802_11EncryptionNotSupported;
- break;
- */
- case ENCRYPT_DISABLE:
- *p = Ndis802_11EncryptionDisabled;
- break;
- case ENCRYPT_WEP:
- *p = Ndis802_11Encryption1Enabled;
- break;
- case ENCRYPT_WEP_NOKEY:
- *p = Ndis802_11Encryption1KeyAbsent;
- break;
- case ENCRYPT_TKIP:
- *p = Ndis802_11Encryption2Enabled;
- break;
- case ENCRYPT_TKIP_NOKEY:
- *p = Ndis802_11Encryption2KeyAbsent;
- break;
- case ENCRYPT_CCMP:
- *p = Ndis802_11Encryption3Enabled;
- break;
- case ENCRYPT_CCMP_NOKEY:
- *p = Ndis802_11Encryption3KeyAbsent;
- break;
- default:
- *p = Ndis802_11EncryptionNotSupported;
- break;
- }
- //----------------------------------------------------------
- }
- break;
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_ASSOCIATION_INFORMATION:
- //WBDEBUG(("[DRV] OID_802_11_ASSOCIATION_INFORMATION (QUERY)\n"));
-
- bytes_needed = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION) +
- psSME->AssocReqVarLen + psSME->AssocRespVarLen;
-
- //PDEBUG(("[DRV] byte_needed = %d\n", bytes_needed));
- //PDEBUG(("[DRV] InfoBufferLength = %d\n", InfoBufferLength));
- if (bytes_needed <= InformationBufferLength)
- {
- NDIS_802_11_ASSOCIATION_INFORMATION *p;
- u8 *pie;
- u8 conn_status;
-
- p = (NDIS_802_11_ASSOCIATION_INFORMATION *) InformationBuffer;
-
- //WBDEBUG(("addr of conn_status = %x\n", &conn_status));
- sme_get_connect_status(pcore_data, &conn_status);
-
- if (conn_status == MEDIA_STATE_CONNECTED)
- {
- p->Length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
- // Association Request
- p->AvailableRequestFixedIEs =
- NDIS_802_11_AI_REQFI_CAPABILITIES |
- NDIS_802_11_AI_REQFI_LISTENINTERVAL;
- if (psSME->boReassoc)
- p->AvailableRequestFixedIEs |= NDIS_802_11_AI_REQFI_CURRENTAPADDRESS;
-
- //p->RequestFixedIEs.Capabilities = pcore_data->sSmePara.wCapabilityInfo;
- p->RequestFixedIEs.Capabilities =
- pcore_data->asBSSDescriptElement[pcore_data->sLocalPara.wConnectedSTAindex].CapabilityInformation.wValue;
- p->RequestFixedIEs.ListenInterval = pcore_data->sLocalPara.ListenInterval;
- if (psSME->boReassoc)
- memcpy( p->RequestFixedIEs.CurrentAPAddress,
- pcore_data->asBSSDescriptElement[pcore_data->sLocalPara.wConnectedSTAindex].abBssID,
- MAC_ADDR_LENGTH );
-
- p->RequestIELength = psSME->AssocReqVarLen;
- p->OffsetRequestIEs = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
-
- // Association Response
- p->AvailableResponseFixedIEs =
- NDIS_802_11_AI_RESFI_CAPABILITIES |
- NDIS_802_11_AI_RESFI_STATUSCODE |
- NDIS_802_11_AI_RESFI_ASSOCIATIONID;
- //TODO:
- p->ResponseFixedIEs.Capabilities = psSME->AssocRespCapability;
- p->ResponseFixedIEs.StatusCode = psSME->AssocRespStatus;
- p->ResponseFixedIEs.AssociationId = pcore_data->sLocalPara.Association_ID&0x3fff;
- #ifdef _PE_OID_DUMP_
- WBDEBUG(("AID =%x\n", p->ResponseFixedIEs.AssociationId));
- #endif
-
- p->ResponseIELength = psSME->AssocRespVarLen;
- p->OffsetResponseIEs =
- sizeof(NDIS_802_11_ASSOCIATION_INFORMATION)+
- psSME->AssocReqVarLen;
-
-
- pie = ((u8*) p) + sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
- memcpy( pie, psSME->AssocReqVarIE, psSME->AssocReqVarLen );
-
- pie += psSME->AssocReqVarLen;
- memcpy( pie, psSME->AssocRespVarIE, psSME->AssocRespVarLen );
- #ifdef _PE_STATE_DUMP_
- WBDEBUG(("ASSOCIATION INFORMATION\n"));
- DataDmp((u8 *)p, p->Length+psSME->AssocReqVarLen+psSME->AssocRespVarLen, 0);
- #endif
- bytes_needed = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION)+
- psSME->AssocReqVarLen+psSME->AssocRespVarLen;
- //--------------------------------------------------------
- }
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_TX_POWER_LEVEL:
- bytes_needed = sizeof(NDIS_802_11_TX_POWER_LEVEL);
-
- if(bytes_needed <= InformationBufferLength)
- {
- u32 *p;
-
- p = (NDIS_802_11_TX_POWER_LEVEL *) InformationBuffer;
- sme_get_tx_power_level(pcore_data, p);
- }
- break;
-
- /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
- case OID_802_11_NUMBER_OF_ANTENNAS:
- bytes_needed = sizeof(u32);
-
- if(bytes_needed <= InformationBufferLength)
- {
-| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
| Eric Sandeen | Re: [RFC] Heads up on sys_fallocate() |
| Tarkan Erimer | Re: Slow DOWN, please!!! |
git: | |
| Sander | 'struct task_struct' has no member named 'mems_allowed' (was: Re: 2.6.20-rc4-mm1) |
| David Miller | Re: [PATCH 3/3] Convert the UDP hash lock to RCU |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| David Miller | Re: [GIT]: Networking |
