mirror of
https://github.com/lwfinger/rtl8188eu.git
synced 2025-05-06 13:33:06 +00:00
rtl8188eu: Remove configuration variable DM_ODM_SUPPORT_TYPE and associated dead code
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
parent
951757e916
commit
10dd5cd02b
19 changed files with 399 additions and 9669 deletions
|
@ -15,14 +15,9 @@ Major Change History:
|
|||
--*/
|
||||
#include "odm_precomp.h"
|
||||
|
||||
/* if ( DM_ODM_SUPPORT_TYPE == ODM_MP) */
|
||||
/* include "Mp_Precomp.h" */
|
||||
/* endif */
|
||||
|
||||
#if (RATE_ADAPTIVE_SUPPORT == 1)
|
||||
/* Rate adaptive parameters */
|
||||
|
||||
|
||||
static u1Byte RETRY_PENALTY[PERENTRY][RETRYSIZE+1] = {
|
||||
{5,4,3,2,0,3},/* 92 , idx=0 */
|
||||
{6,5,4,3,0,4},/* 86 , idx=1 */
|
||||
|
@ -52,27 +47,6 @@ static u1Byte RETRY_PENALTY_UP[RETRYSIZE+1]={49,44,16,16,0,48}; /* 12% for rat
|
|||
|
||||
static u1Byte PT_PENALTY[RETRYSIZE+1]={34,31,30,24,0,32};
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & ODM_AP)
|
||||
static u1Byte RETRY_PENALTY_IDX[2][RATESIZE] = {
|
||||
{4,4,4,5,4,4,5,7,7,7,8,0x0a, /* SS>TH */
|
||||
4,4,4,4,6,0x0a,0x0b,0x0d,
|
||||
5,5,7,7,8,0x0b,0x0d,0x0f}, /* 0329 R01 */
|
||||
{0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0e,0x10,0x11,0x12,0x12,0x13, /* SS<TH */
|
||||
0x0e,0x0f,0x10,0x10,0x11,0x14,0x14,0x15,
|
||||
9,9,9,9,0x0c,0x0e,0x11,0x13}};
|
||||
|
||||
static u1Byte RETRY_PENALTY_UP_IDX[RATESIZE] = {
|
||||
0x10,0x10,0x10,0x10,0x11,0x11,0x12,0x12,0x12,0x13,0x13,0x14, /* SS>TH */
|
||||
0x13,0x13,0x14,0x14,0x15,0x15,0x15,0x15,
|
||||
0x11,0x11,0x12,0x13,0x13,0x13,0x14,0x15};
|
||||
|
||||
static u1Byte RSSI_THRESHOLD[RATESIZE] = {
|
||||
0,0,0,0,
|
||||
0,0,0,0,0,0x24,0x26,0x2a,
|
||||
0x13,0x15,0x17,0x18,0x1a,0x1c,0x1d,0x1f,
|
||||
0,0,0,0x1f,0x23,0x28,0x2a,0x2c};
|
||||
#else
|
||||
|
||||
/* wilson modify */
|
||||
static u1Byte RETRY_PENALTY_IDX[2][RATESIZE] = {
|
||||
{4,4,4,5,4,4,5,7,7,7,8,0x0a, /* SS>TH */
|
||||
|
@ -95,8 +69,6 @@ static u1Byte RSSI_THRESHOLD[RATESIZE] = {
|
|||
0x18,0x1a,0x1d,0x1f,0x21,0x27,0x29,0x2a,
|
||||
0,0,0,0x1f,0x23,0x28,0x2a,0x2c};
|
||||
|
||||
#endif
|
||||
|
||||
static u2Byte N_THRESHOLD_HIGH[RATESIZE] = {
|
||||
4,4,8,16,
|
||||
24,36,48,72,96,144,192,216,
|
||||
|
@ -599,17 +571,12 @@ odm_RATxRPTTimerSetting(
|
|||
if (pDM_Odm->CurrminRptTime != minRptTime){
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_RATE_ADAPTIVE, ODM_DBG_LOUD,
|
||||
(" CurrminRptTime =0x%04x minRptTime=0x%04x\n", pDM_Odm->CurrminRptTime, minRptTime));
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_AP))
|
||||
ODM_RA_Set_TxRPT_Time(pDM_Odm,minRptTime);
|
||||
#else
|
||||
rtw_rpt_timer_cfg_cmd(pDM_Odm->Adapter,minRptTime);
|
||||
#endif
|
||||
pDM_Odm->CurrminRptTime = minRptTime;
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_RATE_ADAPTIVE, ODM_DBG_TRACE,(" <=====odm_RATxRPTTimerSetting()\n"));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_RASupport_Init(
|
||||
PDM_ODM_T pDM_Odm
|
||||
|
@ -804,9 +771,6 @@ ODM_RA_Set_TxRPT_Time(
|
|||
u2Byte minRptTime
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP))
|
||||
if (minRptTime != 0xffff)
|
||||
#endif
|
||||
ODM_Write2Byte(pDM_Odm, REG_TX_RPT_TIME, minRptTime);
|
||||
}
|
||||
|
||||
|
@ -845,21 +809,12 @@ ODM_RA_TxRPT2Handle_8188E(
|
|||
if (valid)
|
||||
{
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE))
|
||||
pRAInfo->RTY[0] = (u2Byte)GET_TX_REPORT_TYPE1_RERTY_0(pBuffer);
|
||||
pRAInfo->RTY[1] = (u2Byte)GET_TX_REPORT_TYPE1_RERTY_1(pBuffer);
|
||||
pRAInfo->RTY[2] = (u2Byte)GET_TX_REPORT_TYPE1_RERTY_2(pBuffer);
|
||||
pRAInfo->RTY[3] = (u2Byte)GET_TX_REPORT_TYPE1_RERTY_3(pBuffer);
|
||||
pRAInfo->RTY[4] = (u2Byte)GET_TX_REPORT_TYPE1_RERTY_4(pBuffer);
|
||||
pRAInfo->DROP = (u2Byte)GET_TX_REPORT_TYPE1_DROP_0(pBuffer);
|
||||
#else
|
||||
pRAInfo->RTY[0] = (unsigned short)(pBuffer[1] << 8 | pBuffer[0]);
|
||||
pRAInfo->RTY[1] = pBuffer[2];
|
||||
pRAInfo->RTY[2] = pBuffer[3];
|
||||
pRAInfo->RTY[3] = pBuffer[4];
|
||||
pRAInfo->RTY[4] = pBuffer[5];
|
||||
pRAInfo->DROP = pBuffer[6];
|
||||
#endif
|
||||
pRAInfo->TOTAL = pRAInfo->RTY[0] + \
|
||||
pRAInfo->RTY[1] + \
|
||||
pRAInfo->RTY[2] + \
|
||||
|
@ -905,15 +860,6 @@ ODM_RA_TxRPT2Handle_8188E(
|
|||
odm_RateDecision_8188E(pDM_Odm, pRAInfo);
|
||||
#endif
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & ODM_AP)
|
||||
extern void RTL8188E_SetStationTxRateInfo(PDM_ODM_T, PODM_RA_INFO_T, int);
|
||||
RTL8188E_SetStationTxRateInfo(pDM_Odm, pRAInfo, MacId);
|
||||
#ifdef DETECT_STA_EXISTANCE
|
||||
void RTL8188E_DetectSTAExistance(PDM_ODM_T pDM_Odm, PODM_RA_INFO_T pRAInfo, int MacID);
|
||||
RTL8188E_DetectSTAExistance(pDM_Odm, pRAInfo, MacId);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_LOUD,
|
||||
("macid=%d R0=%d R1=%d R2=%d R3=%d R4=%d drop=%d valid0=%x RateID=%d SGI=%d\n",
|
||||
MacId,
|
||||
|
|
1470
hal/HalPhyRf.c
1470
hal/HalPhyRf.c
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -50,7 +50,6 @@ static u1Byte odm_QueryRxPwrPercentage(s1Byte AntPower)
|
|||
return (100+AntPower);
|
||||
}
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE != ODM_MP)
|
||||
/* */
|
||||
/* 2012/01/12 MH MOve some signal strength smooth method to MP HAL layer. */
|
||||
/* IF other SW team do not support the feature, remove this section.?? */
|
||||
|
@ -61,34 +60,6 @@ static s4Byte odm_SignalScaleMapping_92CSeries_patch_RT_CID_819x_Lenovo(
|
|||
)
|
||||
{
|
||||
s4Byte RetSig;
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
/* if (pDM_Odm->SupportInterface == ODM_ITRF_PCIE) */
|
||||
{
|
||||
/* Step 1. Scale mapping. */
|
||||
/* 20100611 Joseph: Re-tunning RSSI presentation for Lenovo. */
|
||||
/* 20100426 Joseph: Modify Signal strength mapping. */
|
||||
/* This modification makes the RSSI indication similar to Intel solution. */
|
||||
/* 20100414 Joseph: Tunning RSSI for Lenovo according to RTL8191SE. */
|
||||
if (CurrSig >= 54 && CurrSig <= 100)
|
||||
RetSig = 100;
|
||||
else if (CurrSig>=42 && CurrSig <= 53)
|
||||
RetSig = 95;
|
||||
else if (CurrSig>=36 && CurrSig <= 41)
|
||||
RetSig = 74 + ((CurrSig - 36) *20)/6;
|
||||
else if (CurrSig>=33 && CurrSig <= 35)
|
||||
RetSig = 65 + ((CurrSig - 33) *8)/2;
|
||||
else if (CurrSig>=18 && CurrSig <= 32)
|
||||
RetSig = 62 + ((CurrSig - 18) *2)/15;
|
||||
else if (CurrSig>=15 && CurrSig <= 17)
|
||||
RetSig = 33 + ((CurrSig - 15) *28)/2;
|
||||
else if (CurrSig>=10 && CurrSig <= 14)
|
||||
RetSig = 39;
|
||||
else if (CurrSig>=8 && CurrSig <= 9)
|
||||
RetSig = 33;
|
||||
else if (CurrSig <= 8)
|
||||
RetSig = 19;
|
||||
}
|
||||
#endif /* ENDIF (DM_ODM_SUPPORT_TYPE == ODM_MP) */
|
||||
return RetSig;
|
||||
}
|
||||
|
||||
|
@ -98,60 +69,9 @@ static s4Byte odm_SignalScaleMapping_92CSeries_patch_RT_CID_819x_Netcore(
|
|||
)
|
||||
{
|
||||
s4Byte RetSig;
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
/* if (pDM_Odm->SupportInterface == ODM_ITRF_USB) */
|
||||
{
|
||||
/* Netcore request this modification because 2009.04.13 SU driver use it. */
|
||||
if (CurrSig >= 31 && CurrSig <= 100)
|
||||
{
|
||||
RetSig = 100;
|
||||
}
|
||||
else if (CurrSig >= 21 && CurrSig <= 30)
|
||||
{
|
||||
RetSig = 90 + ((CurrSig - 20) / 1);
|
||||
}
|
||||
else if (CurrSig >= 11 && CurrSig <= 20)
|
||||
{
|
||||
RetSig = 80 + ((CurrSig - 10) / 1);
|
||||
}
|
||||
else if (CurrSig >= 7 && CurrSig <= 10)
|
||||
{
|
||||
RetSig = 69 + (CurrSig - 7);
|
||||
}
|
||||
else if (CurrSig == 6)
|
||||
{
|
||||
RetSig = 54;
|
||||
}
|
||||
else if (CurrSig == 5)
|
||||
{
|
||||
RetSig = 45;
|
||||
}
|
||||
else if (CurrSig == 4)
|
||||
{
|
||||
RetSig = 36;
|
||||
}
|
||||
else if (CurrSig == 3)
|
||||
{
|
||||
RetSig = 27;
|
||||
}
|
||||
else if (CurrSig == 2)
|
||||
{
|
||||
RetSig = 18;
|
||||
}
|
||||
else if (CurrSig == 1)
|
||||
{
|
||||
RetSig = 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
RetSig = CurrSig;
|
||||
}
|
||||
}
|
||||
#endif /* ENDIF (DM_ODM_SUPPORT_TYPE == ODM_MP) */
|
||||
return RetSig;
|
||||
}
|
||||
|
||||
|
||||
static s4Byte
|
||||
odm_SignalScaleMapping_92CSeries(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
|
@ -268,7 +188,6 @@ odm_SignalScaleMapping(
|
|||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
/* pMgntInfo->CustomerID == RT_CID_819x_Lenovo */
|
||||
static u1Byte odm_SQ_process_patch_RT_CID_819x_Lenovo(
|
||||
|
@ -280,39 +199,6 @@ static u1Byte odm_SQ_process_patch_RT_CID_819x_Lenovo(
|
|||
)
|
||||
{
|
||||
u1Byte SQ;
|
||||
#if (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
/* mapping to 5 bars for vista signal strength */
|
||||
/* signal quality in driver will be displayed to signal strength */
|
||||
if (isCCKrate){
|
||||
/* in vista. */
|
||||
if (PWDB_ALL >= 50)
|
||||
SQ = 100;
|
||||
else if (PWDB_ALL >= 35 && PWDB_ALL < 50)
|
||||
SQ = 80;
|
||||
else if (PWDB_ALL >= 22 && PWDB_ALL < 35)
|
||||
SQ = 60;
|
||||
else if (PWDB_ALL >= 18 && PWDB_ALL < 22)
|
||||
SQ = 40;
|
||||
else
|
||||
SQ = 20;
|
||||
}
|
||||
else{/* OFDM rate */
|
||||
|
||||
/* mapping to 5 bars for vista signal strength */
|
||||
/* signal quality in driver will be displayed to signal strength */
|
||||
/* in vista. */
|
||||
if (RSSI >= 50)
|
||||
SQ = 100;
|
||||
else if (RSSI >= 35 && RSSI < 50)
|
||||
SQ = 80;
|
||||
else if (RSSI >= 22 && RSSI < 35)
|
||||
SQ = 60;
|
||||
else if (RSSI >= 18 && RSSI < 22)
|
||||
SQ = 40;
|
||||
else
|
||||
SQ = 20;
|
||||
}
|
||||
#endif
|
||||
return SQ;
|
||||
}
|
||||
|
||||
|
@ -518,10 +404,8 @@ odm_RxPhyStatus92CSeries_Parsing(
|
|||
}
|
||||
|
||||
pPhyInfo->RxPWDBAll = PWDB_ALL;
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE))
|
||||
pPhyInfo->BTRxRSSIPercentage = PWDB_ALL;
|
||||
pPhyInfo->RecvSignalPower = rx_pwr_all;
|
||||
#endif
|
||||
/* */
|
||||
/* (3) Get Signal Quality (EVM) */
|
||||
/* */
|
||||
|
@ -571,9 +455,7 @@ odm_RxPhyStatus92CSeries_Parsing(
|
|||
|
||||
rx_pwr[i] = ((pPhyStaRpt->path_agc[i].gain& 0x3F)*2) - 110;
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE))
|
||||
pPhyInfo->RxPwr[i] = rx_pwr[i];
|
||||
#endif
|
||||
|
||||
/* Translate DBM to percentage. */
|
||||
RSSI = odm_QueryRxPwrPercentage(rx_pwr[i]);
|
||||
|
@ -594,10 +476,8 @@ odm_RxPhyStatus92CSeries_Parsing(
|
|||
|
||||
pPhyInfo->RxMIMOSignalStrength[i] =(u1Byte) RSSI;
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & (/*ODM_MP|*/ODM_CE|ODM_AP|ODM_ADSL))
|
||||
/* Get Rx snr value in DB */
|
||||
pPhyInfo->RxSNR[i] = pDM_Odm->PhyDbgInfo.RxSNRdB[i] = (s4Byte)(pPhyStaRpt->path_rxsnr[i]/2);
|
||||
#endif
|
||||
|
||||
/* Record Signal Strength for next packet */
|
||||
if (pPktinfo->bPacketMatchBSSID)
|
||||
|
@ -624,11 +504,9 @@ odm_RxPhyStatus92CSeries_Parsing(
|
|||
|
||||
pPhyInfo->RxPWDBAll = PWDB_ALL;
|
||||
/* ODM_RT_TRACE(pDM_Odm,ODM_COMP_RSSI_MONITOR, ODM_DBG_LOUD, ("ODM OFDM RSSI=%d\n",pPhyInfo->RxPWDBAll)); */
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE))
|
||||
pPhyInfo->BTRxRSSIPercentage = PWDB_ALL_BT;
|
||||
pPhyInfo->RxPower = rx_pwr_all;
|
||||
pPhyInfo->RecvSignalPower = rx_pwr_all;
|
||||
#endif
|
||||
|
||||
if ((pDM_Odm->SupportPlatform == ODM_MP) &&(pDM_Odm->PatchID==19)){
|
||||
/* do nothing */
|
||||
|
@ -664,31 +542,19 @@ odm_RxPhyStatus92CSeries_Parsing(
|
|||
}
|
||||
|
||||
}
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE))
|
||||
/* UI BSS List signal strength(in percentage), make it good looking, from 0~100. */
|
||||
/* It is assigned to the BSS List in GetValueFromBeaconOrProbeRsp(). */
|
||||
if (isCCKrate)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
/* 2012/01/12 MH Use customeris signal strength from HalComRxdDesc.c/ */
|
||||
pPhyInfo->SignalStrength = (u1Byte)(SignalScaleMapping(pDM_Odm->Adapter, PWDB_ALL));/* PWDB_ALL; */
|
||||
#else
|
||||
pPhyInfo->SignalStrength = (u1Byte)(odm_SignalScaleMapping(pDM_Odm, PWDB_ALL));/* PWDB_ALL; */
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
if (rf_rx_num != 0)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
/* 2012/01/12 MH Use customeris signal strength from HalComRxdDesc.c/ */
|
||||
pPhyInfo->SignalStrength = (u1Byte)(SignalScaleMapping(pDM_Odm->Adapter, total_rssi/=rf_rx_num));/* PWDB_ALL; */
|
||||
#else
|
||||
pPhyInfo->SignalStrength = (u1Byte)(odm_SignalScaleMapping(pDM_Odm, total_rssi/=rf_rx_num));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* For 92C/92D HW (Hybrid) Antenna Diversity */
|
||||
pDM_SWAT_Table->antsel = pPhyStaRpt->ant_sel;
|
||||
|
@ -993,8 +859,6 @@ ODM_MacStatusQuery(
|
|||
|
||||
}
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE|ODM_AP))
|
||||
|
||||
HAL_STATUS
|
||||
ODM_ConfigRFWithHeaderFile(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
|
@ -1006,19 +870,6 @@ ODM_ConfigRFWithHeaderFile(
|
|||
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_LOUD, ("===>ODM_ConfigRFWithHeaderFile\n"));
|
||||
#if (RTL8723A_SUPPORT == 1)
|
||||
if (pDM_Odm->SupportICType == ODM_RTL8723A)
|
||||
{
|
||||
if (eRFPath == ODM_RF_PATH_A)
|
||||
READ_AND_CONFIG_MP(8723A,_RadioA_1T_);
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_LOUD, (" ===> ODM_ConfigRFWithHeaderFile() Radio_A:Rtl8723RadioA_1TArray\n"));
|
||||
ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_LOUD, (" ===> ODM_ConfigRFWithHeaderFile() Radio_B:Rtl8723RadioB_1TArray\n"));
|
||||
}
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_TRACE, ("ODM_ConfigRFWithHeaderFile: Radio No %x\n", eRFPath));
|
||||
/* rtStatus = RT_STATUS_SUCCESS; */
|
||||
#endif
|
||||
#if (RTL8188E_SUPPORT == 1)
|
||||
if (pDM_Odm->SupportICType == ODM_RTL8188E)
|
||||
{
|
||||
|
@ -1043,22 +894,6 @@ ODM_ConfigBBWithHeaderFile(
|
|||
ODM_BB_Config_Type ConfigType
|
||||
)
|
||||
{
|
||||
#if (RTL8723A_SUPPORT == 1)
|
||||
if (pDM_Odm->SupportICType == ODM_RTL8723A)
|
||||
{
|
||||
|
||||
if (ConfigType == CONFIG_BB_PHY_REG)
|
||||
{
|
||||
READ_AND_CONFIG_MP(8723A,_PHY_REG_1T_);
|
||||
}
|
||||
else if (ConfigType == CONFIG_BB_AGC_TAB)
|
||||
{
|
||||
READ_AND_CONFIG_MP(8723A,_AGC_TAB_1T_);
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, (" ===> phy_ConfigBBWithHeaderFile() phy:Rtl8723AGCTAB_1TArray\n"));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, (" ===> phy_ConfigBBWithHeaderFile() agc:Rtl8723PHY_REG_1TArray\n"));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (RTL8188E_SUPPORT == 1)
|
||||
if (pDM_Odm->SupportICType == ODM_RTL8188E)
|
||||
|
@ -1068,10 +903,6 @@ ODM_ConfigBBWithHeaderFile(
|
|||
{
|
||||
READ_AND_CONFIG(8188E,_PHY_REG_1T_);
|
||||
}
|
||||
/* else if (ConfigType == ODM_BaseBand_Config_PHY_REG_MP) */
|
||||
/* { */
|
||||
/* READ_AND_CONFIG(8188E,_PHY_REG_MP_); */
|
||||
/* } */
|
||||
else if (ConfigType == CONFIG_BB_AGC_TAB)
|
||||
{
|
||||
READ_AND_CONFIG(8188E,_AGC_TAB_1T_);
|
||||
|
@ -1093,12 +924,6 @@ ODM_ConfigMACWithHeaderFile(
|
|||
)
|
||||
{
|
||||
u1Byte result = HAL_STATUS_SUCCESS;
|
||||
#if (RTL8723A_SUPPORT == 1)
|
||||
if (pDM_Odm->SupportICType == ODM_RTL8723A)
|
||||
{
|
||||
READ_AND_CONFIG_MP(8723A,_MAC_REG_);
|
||||
}
|
||||
#endif
|
||||
#if (RTL8188E_SUPPORT == 1)
|
||||
if (pDM_Odm->SupportICType == ODM_RTL8188E)
|
||||
{
|
||||
|
@ -1108,6 +933,3 @@ ODM_ConfigMACWithHeaderFile(
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
#endif /* end of (#if DM_ODM_SUPPORT_TYPE) */
|
||||
|
|
|
@ -305,7 +305,6 @@ odm_UpdateTxAnt_88E(PDM_ODM_T pDM_Odm, u1Byte Ant, u4Byte MacId)
|
|||
pDM_FatTable->antsel_c[MacId] , pDM_FatTable->antsel_b[MacId] , pDM_FatTable->antsel_a[MacId] ));
|
||||
}
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP|ODM_CE))
|
||||
void
|
||||
ODM_SetTxAntByTxInfo_88E(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
|
@ -322,14 +321,6 @@ ODM_SetTxAntByTxInfo_88E(
|
|||
SET_TX_DESC_ANTSEL_C_88E(pDesc, pDM_FatTable->antsel_c[macId]);
|
||||
}
|
||||
}
|
||||
#else/* (DM_ODM_SUPPORT_TYPE == ODM_AP) */
|
||||
void
|
||||
ODM_SetTxAntByTxInfo_88E(
|
||||
PDM_ODM_T pDM_Odm
|
||||
)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
ODM_AntselStatistics_88E(
|
||||
|
@ -440,186 +431,6 @@ odm_HWAntDiv(
|
|||
pDM_DigTable->RSSI_max = MaxRSSI;
|
||||
}
|
||||
|
||||
|
||||
#if (!(DM_ODM_SUPPORT_TYPE == ODM_CE))
|
||||
void
|
||||
odm_SetNextMACAddrTarget(
|
||||
PDM_ODM_T pDM_Odm
|
||||
)
|
||||
{
|
||||
pFAT_T pDM_FatTable = &pDM_Odm->DM_FatTable;
|
||||
PSTA_INFO_T pEntry;
|
||||
/* u1Byte Bssid[6]; */
|
||||
u4Byte value32, i;
|
||||
|
||||
/* */
|
||||
/* 2012.03.26 LukeLee: The MAC address is changed according to MACID in turn */
|
||||
/* */
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("odm_SetNextMACAddrTarget() ==>\n"));
|
||||
if (pDM_Odm->bLinked)
|
||||
{
|
||||
for (i=0; i<ODM_ASSOCIATE_ENTRY_NUM; i++)
|
||||
{
|
||||
if ((pDM_FatTable->TrainIdx+1) == ODM_ASSOCIATE_ENTRY_NUM)
|
||||
pDM_FatTable->TrainIdx = 0;
|
||||
else
|
||||
pDM_FatTable->TrainIdx++;
|
||||
|
||||
pEntry = pDM_Odm->pODM_StaInfo[pDM_FatTable->TrainIdx];
|
||||
if (IS_STA_VALID(pEntry))
|
||||
{
|
||||
/* Match MAC ADDR */
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
value32 = (pEntry->hwaddr[5]<<8)|pEntry->hwaddr[4];
|
||||
#else
|
||||
value32 = (pEntry->MacAddr[5]<<8)|pEntry->MacAddr[4];
|
||||
#endif
|
||||
ODM_SetMACReg(pDM_Odm, 0x7b4, 0xFFFF, value32);
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
value32 = (pEntry->hwaddr[3]<<24)|(pEntry->hwaddr[2]<<16) |(pEntry->hwaddr[1]<<8) |pEntry->hwaddr[0];
|
||||
#else
|
||||
value32 = (pEntry->MacAddr[3]<<24)|(pEntry->MacAddr[2]<<16) |(pEntry->MacAddr[1]<<8) |pEntry->MacAddr[0];
|
||||
#endif
|
||||
ODM_SetMACReg(pDM_Odm, 0x7b0, bMaskDWord, value32);
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("pDM_FatTable->TrainIdx=%d\n",pDM_FatTable->TrainIdx));
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Training MAC Addr = %x:%x:%x:%x:%x:%x\n",
|
||||
pEntry->hwaddr[5],pEntry->hwaddr[4],pEntry->hwaddr[3],pEntry->hwaddr[2],pEntry->hwaddr[1],pEntry->hwaddr[0]));
|
||||
#else
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Training MAC Addr = %x:%x:%x:%x:%x:%x\n",
|
||||
pEntry->MacAddr[5],pEntry->MacAddr[4],pEntry->MacAddr[3],pEntry->MacAddr[2],pEntry->MacAddr[1],pEntry->MacAddr[0]));
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
odm_FastAntTraining(
|
||||
PDM_ODM_T pDM_Odm
|
||||
)
|
||||
{
|
||||
u4Byte i, MaxRSSI=0;
|
||||
u1Byte TargetAnt=2;
|
||||
pFAT_T pDM_FatTable = &pDM_Odm->DM_FatTable;
|
||||
bool bPktFilterMacth = false;
|
||||
PSTA_INFO_T pEntry;
|
||||
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("==>odm_FastAntTraining()\n"));
|
||||
|
||||
/* 1 TRAINING STATE */
|
||||
if (pDM_FatTable->FAT_State == FAT_TRAINING_STATE)
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Enter FAT_TRAINING_STATE\n"));
|
||||
/* 2 Caculate RSSI per Antenna */
|
||||
for (i=0; i<7; i++)
|
||||
{
|
||||
if (pDM_FatTable->antRSSIcnt[i] == 0)
|
||||
pDM_FatTable->antAveRSSI[i] = 0;
|
||||
else
|
||||
{
|
||||
pDM_FatTable->antAveRSSI[i] = pDM_FatTable->antSumRSSI[i] /pDM_FatTable->antRSSIcnt[i];
|
||||
bPktFilterMacth = true;
|
||||
}
|
||||
if (pDM_FatTable->antAveRSSI[i] > MaxRSSI)
|
||||
{
|
||||
MaxRSSI = pDM_FatTable->antAveRSSI[i];
|
||||
TargetAnt = (u1Byte) i;
|
||||
}
|
||||
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("pDM_FatTable->antAveRSSI[%d] = %d, pDM_FatTable->antRSSIcnt[%d] = %d\n",
|
||||
i, pDM_FatTable->antAveRSSI[i], i, pDM_FatTable->antRSSIcnt[i]));
|
||||
}
|
||||
|
||||
/* 2 Select TRX Antenna */
|
||||
if (bPktFilterMacth == false)
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("None Packet is matched\n"));
|
||||
|
||||
ODM_SetBBReg(pDM_Odm, 0xe08 , BIT16, 0); /* RegE08[16]=1'b0 disable fast training */
|
||||
ODM_SetBBReg(pDM_Odm, 0xc50 , BIT7, 0); /* RegC50[7]=1'b0 disable HW AntDiv */
|
||||
}
|
||||
else
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("TargetAnt=%d, MaxRSSI=%d\n",TargetAnt,MaxRSSI));
|
||||
|
||||
ODM_SetBBReg(pDM_Odm, 0xe08 , BIT16, 0); /* RegE08[16]=1'b0 disable fast training */
|
||||
ODM_SetBBReg(pDM_Odm, 0x864 , BIT8|BIT7|BIT6, TargetAnt); /* Default RX is Omni, Optional RX is the best decision by FAT */
|
||||
ODM_SetBBReg(pDM_Odm, 0x80c , BIT21, 1); /* Reg80c[21]=1'b1 from TX Info */
|
||||
|
||||
pDM_FatTable->antsel_a[pDM_FatTable->TrainIdx] = TargetAnt&BIT0;
|
||||
pDM_FatTable->antsel_b[pDM_FatTable->TrainIdx] = (TargetAnt&BIT1)>>1;
|
||||
pDM_FatTable->antsel_c[pDM_FatTable->TrainIdx] = (TargetAnt&BIT2)>>2;
|
||||
|
||||
|
||||
if (TargetAnt == 0)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc50 , BIT7, 0); /* RegC50[7]=1'b0 disable HW AntDiv */
|
||||
|
||||
}
|
||||
|
||||
/* 2 Reset Counter */
|
||||
for (i=0; i<7; i++)
|
||||
{
|
||||
pDM_FatTable->antSumRSSI[i] = 0;
|
||||
pDM_FatTable->antRSSIcnt[i] = 0;
|
||||
}
|
||||
|
||||
pDM_FatTable->FAT_State = FAT_NORMAL_STATE;
|
||||
return;
|
||||
}
|
||||
|
||||
/* 1 NORMAL STATE */
|
||||
if (pDM_FatTable->FAT_State == FAT_NORMAL_STATE)
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Enter FAT_NORMAL_STATE\n"));
|
||||
|
||||
odm_SetNextMACAddrTarget(pDM_Odm);
|
||||
|
||||
/* 2 Prepare Training */
|
||||
pDM_FatTable->FAT_State = FAT_TRAINING_STATE;
|
||||
ODM_SetBBReg(pDM_Odm, 0xe08 , BIT16, 1); /* RegE08[16]=1'b1 enable fast training */
|
||||
ODM_SetBBReg(pDM_Odm, 0xc50 , BIT7, 1); /* RegC50[7]=1'b1 enable HW AntDiv */
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("Start FAT_TRAINING_STATE\n"));
|
||||
ODM_SetTimer(pDM_Odm,&pDM_Odm->FastAntTrainingTimer, 500 ); /* ms */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
odm_FastAntTrainingCallback(
|
||||
PDM_ODM_T pDM_Odm
|
||||
)
|
||||
{
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_CE)
|
||||
PADAPTER padapter = pDM_Odm->Adapter;
|
||||
if (padapter->net_closed == true)
|
||||
return;
|
||||
#endif
|
||||
|
||||
#if USE_WORKITEM
|
||||
ODM_ScheduleWorkItem(&pDM_Odm->FastAntTrainingWorkitem);
|
||||
#else
|
||||
odm_FastAntTraining(pDM_Odm);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
odm_FastAntTrainingWorkItemCallback(
|
||||
PDM_ODM_T pDM_Odm
|
||||
)
|
||||
{
|
||||
odm_FastAntTraining(pDM_Odm);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
ODM_AntennaDiversity_88E(
|
||||
PDM_ODM_T pDM_Odm
|
||||
|
@ -697,10 +508,6 @@ ODM_AntennaDiversity_88E(
|
|||
|
||||
if ((pDM_Odm->AntDivType == CG_TRX_HW_ANTDIV)||(pDM_Odm->AntDivType == CGCS_RX_HW_ANTDIV))
|
||||
odm_HWAntDiv(pDM_Odm);
|
||||
#if (!(DM_ODM_SUPPORT_TYPE == ODM_CE))
|
||||
else if (pDM_Odm->AntDivType == CG_TRX_SMART_ANTDIV)
|
||||
odm_FastAntTraining(pDM_Odm);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 3============================================================ */
|
||||
|
@ -738,10 +545,6 @@ odm_DynamicPrimaryCCA(
|
|||
prtl8192cd_priv priv = pDM_Odm->priv; /* for AP */
|
||||
|
||||
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_MP))
|
||||
PMGNT_INFO pMgntInfo = &(Adapter->MgntInfo);
|
||||
PRT_WLAN_STA pEntry;
|
||||
#endif
|
||||
|
||||
Pfalse_ALARM_STATISTICS FalseAlmCnt = &(pDM_Odm->FalseAlmCnt);
|
||||
pPri_CCA_T PrimaryCCA = &(pDM_Odm->DM_PriCCA);
|
||||
|
@ -759,9 +562,7 @@ odm_DynamicPrimaryCCA(
|
|||
u1Byte SecCHOffset;
|
||||
u1Byte i;
|
||||
|
||||
#if ((DM_ODM_SUPPORT_TYPE==ODM_ADSL) ||( DM_ODM_SUPPORT_TYPE==ODM_CE))
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (pDM_Odm->SupportICType != ODM_RTL8188E)
|
||||
return;
|
||||
|
@ -770,23 +571,6 @@ odm_DynamicPrimaryCCA(
|
|||
SecCHOffset = *(pDM_Odm->pSecChOffset);
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Second CH Offset = %d\n", SecCHOffset));
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
if (Is40MHz==1)
|
||||
SecCHOffset = SecCHOffset%2+1; /* NIC's definition is reverse to AP 1:secondary below, 2: secondary above */
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Second CH Offset = %d\n", SecCHOffset));
|
||||
/* 3 Check Current WLAN Traffic */
|
||||
curTxOkCnt = Adapter->TxStats.NumTxBytesUnicast - lastTxOkCnt;
|
||||
curRxOkCnt = Adapter->RxStats.NumRxBytesUnicast - lastRxOkCnt;
|
||||
lastTxOkCnt = Adapter->TxStats.NumTxBytesUnicast;
|
||||
lastRxOkCnt = Adapter->RxStats.NumRxBytesUnicast;
|
||||
#elif (DM_ODM_SUPPORT_TYPE == ODM_AP)
|
||||
/* 3 Check Current WLAN Traffic */
|
||||
curTxOkCnt = *(pDM_Odm->pNumTxBytesUnicast)-lastTxOkCnt;
|
||||
curRxOkCnt = *(pDM_Odm->pNumRxBytesUnicast)-lastRxOkCnt;
|
||||
lastTxOkCnt = *(pDM_Odm->pNumTxBytesUnicast);
|
||||
lastRxOkCnt = *(pDM_Odm->pNumRxBytesUnicast);
|
||||
#endif
|
||||
|
||||
/* Debug Message==================== */
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("TP = %llu\n", curTxOkCnt+curRxOkCnt));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Is40MHz = %d\n", Is40MHz));
|
||||
|
@ -798,302 +582,251 @@ odm_DynamicPrimaryCCA(
|
|||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("CCK FA = %d\n", FalseAlmCnt->Cnt_Cck_fail));
|
||||
/* */
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
if (ACTING_AS_AP(Adapter)) /* primary cca process only do at AP mode */
|
||||
#endif
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("bConnected=%d\n", bConnected));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Is Client 40MHz=%d\n", Client_40MHz));
|
||||
/* 1 Monitor whether the interference exists or not */
|
||||
if (PrimaryCCA->Monitor_flag == 1)
|
||||
{
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_MP)
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("ACTING as AP mode=%d\n", ACTING_AS_AP(Adapter)));
|
||||
/* 3 To get entry's connection and BW infomation status. */
|
||||
for (i=0;i<ASSOCIATE_ENTRY_NUM;i++)
|
||||
if (SecCHOffset == 1) /* secondary channel is below the primary channel */
|
||||
{
|
||||
if (IsAPModeExist(Adapter)&&GetFirstExtAdapter(Adapter)!=NULL)
|
||||
pEntry=AsocEntry_EnumStation(GetFirstExtAdapter(Adapter), i);
|
||||
else
|
||||
pEntry=AsocEntry_EnumStation(GetDefaultAdapter(Adapter), i);
|
||||
if (pEntry!=NULL)
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 500)&&(FalseAlmCnt->Cnt_BW_LSC > FalseAlmCnt->Cnt_BW_USC+500))
|
||||
{
|
||||
Client_tmp = pEntry->HTInfo.bBw40MHz; /* client BW */
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Client_BW=%d\n", Client_tmp));
|
||||
if (Client_tmp>Client_40MHz)
|
||||
Client_40MHz = Client_tmp; /* 40M/20M coexist => 40M priority is High */
|
||||
|
||||
if (pEntry->bAssociated)
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
{
|
||||
bConnected=true; /* client is connected or not */
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
#elif (DM_ODM_SUPPORT_TYPE == ODM_AP)
|
||||
/* 3 To get entry's connection and BW infomation status. */
|
||||
|
||||
PSTA_INFO_T pstat;
|
||||
|
||||
for (i=0; i<ODM_ASSOCIATE_ENTRY_NUM; i++)
|
||||
{
|
||||
pstat = pDM_Odm->pODM_StaInfo[i];
|
||||
if (IS_STA_VALID(pstat) )
|
||||
{
|
||||
Client_tmp = pstat->tx_bw;
|
||||
if (Client_tmp>Client_40MHz)
|
||||
Client_40MHz = Client_tmp; /* 40M/20M coexist => 40M priority is High */
|
||||
|
||||
bConnected = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("bConnected=%d\n", bConnected));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Is Client 40MHz=%d\n", Client_40MHz));
|
||||
/* 1 Monitor whether the interference exists or not */
|
||||
if (PrimaryCCA->Monitor_flag == 1)
|
||||
{
|
||||
if (SecCHOffset == 1) /* secondary channel is below the primary channel */
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 500)&&(FalseAlmCnt->Cnt_BW_LSC > FalseAlmCnt->Cnt_BW_USC+500))
|
||||
{
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
{
|
||||
PrimaryCCA->intf_type = 1;
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 2); /* USC MF */
|
||||
if (PrimaryCCA->DupRTS_flag == 1)
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_type = 2;
|
||||
if (PrimaryCCA->DupRTS_flag == 0)
|
||||
PrimaryCCA->DupRTS_flag = 1;
|
||||
}
|
||||
|
||||
}
|
||||
else /* interferecne disappear */
|
||||
{
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2) /* secondary channel is above the primary channel */
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 500)&&(FalseAlmCnt->Cnt_BW_USC > FalseAlmCnt->Cnt_BW_LSC+500))
|
||||
{
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
{
|
||||
PrimaryCCA->intf_type = 1;
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 1); /* LSC MF */
|
||||
if (PrimaryCCA->DupRTS_flag == 1)
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_type = 2;
|
||||
if (PrimaryCCA->DupRTS_flag == 0)
|
||||
PrimaryCCA->DupRTS_flag = 1;
|
||||
}
|
||||
|
||||
}
|
||||
else /* interferecne disappear */
|
||||
{
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
PrimaryCCA->Monitor_flag = 0;
|
||||
}
|
||||
|
||||
/* 1 Dynamic Primary CCA Main Function */
|
||||
if (PrimaryCCA->Monitor_flag == 0)
|
||||
{
|
||||
if (Is40MHz) /* if RFBW==40M mode which require to process primary cca */
|
||||
{
|
||||
/* 2 STA is NOT Connected */
|
||||
if (!bConnected)
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("STA NOT Connected!!!!\n"));
|
||||
|
||||
if (PrimaryCCA->PriCCA_flag == 1) /* reset primary cca when STA is disconnected */
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 0;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 0);
|
||||
}
|
||||
if (PrimaryCCA->DupRTS_flag == 1) /* reset Duplicate RTS when STA is disconnected */
|
||||
PrimaryCCA->intf_type = 1;
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 2); /* USC MF */
|
||||
if (PrimaryCCA->DupRTS_flag == 1)
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
|
||||
if (SecCHOffset == 1) /* secondary channel is below the primary channel */
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_LSC*5 > FalseAlmCnt->Cnt_BW_USC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1; /* secondary channel interference is detected!!! */
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2) /* secondary channel is above the primary channel */
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_USC*5 > FalseAlmCnt->Cnt_BW_LSC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1; /* secondary channel interference is detected!!! */
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("PrimaryCCA=%d\n",PrimaryCCA->PriCCA_flag));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Intf_Type=%d\n", PrimaryCCA->intf_type));
|
||||
}
|
||||
/* 2 STA is Connected */
|
||||
else
|
||||
{
|
||||
if (Client_40MHz == 0) /* 3 client BW = 20MHz */
|
||||
{
|
||||
if (PrimaryCCA->PriCCA_flag == 0)
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
if (SecCHOffset==1)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 2);
|
||||
else if (SecCHOffset==2)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 1);
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("STA Connected 20M!!! PrimaryCCA=%d\n", PrimaryCCA->PriCCA_flag));
|
||||
}
|
||||
else /* 3 client BW = 40MHz */
|
||||
{
|
||||
if (PrimaryCCA->intf_flag == 1) /* interference is detected!! */
|
||||
{
|
||||
if (PrimaryCCA->intf_type == 1)
|
||||
{
|
||||
if (PrimaryCCA->PriCCA_flag!=1)
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
if (SecCHOffset==1)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 2);
|
||||
else if (SecCHOffset==2)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 1);
|
||||
}
|
||||
}
|
||||
else if (PrimaryCCA->intf_type == 2)
|
||||
{
|
||||
if (PrimaryCCA->DupRTS_flag!=1)
|
||||
PrimaryCCA->DupRTS_flag = 1;
|
||||
}
|
||||
}
|
||||
else /* if intf_flag==0 */
|
||||
{
|
||||
if ((curTxOkCnt+curRxOkCnt)<10000) /* idle mode or TP traffic is very low */
|
||||
{
|
||||
if (SecCHOffset == 1)
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_LSC*5 > FalseAlmCnt->Cnt_BW_USC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2)
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_USC*5 > FalseAlmCnt->Cnt_BW_LSC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
PrimaryCCA->intf_type = 2;
|
||||
if (PrimaryCCA->DupRTS_flag == 0)
|
||||
PrimaryCCA->DupRTS_flag = 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else /* TP Traffic is High */
|
||||
{
|
||||
if (SecCHOffset == 1)
|
||||
{
|
||||
if (FalseAlmCnt->Cnt_BW_LSC > (FalseAlmCnt->Cnt_BW_USC+500))
|
||||
{
|
||||
if (Delay == 0) /* add delay to avoid interference occurring abruptly, jump one time */
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
Delay = 1;
|
||||
}
|
||||
else
|
||||
Delay = 0;
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2)
|
||||
{
|
||||
if (FalseAlmCnt->Cnt_BW_USC > (FalseAlmCnt->Cnt_BW_LSC+500))
|
||||
{
|
||||
if (Delay == 0) /* add delay to avoid interference occurring abruptly */
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
Delay = 1;
|
||||
}
|
||||
else
|
||||
Delay = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Primary CCA=%d\n", PrimaryCCA->PriCCA_flag));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Duplicate RTS=%d\n", PrimaryCCA->DupRTS_flag));
|
||||
}
|
||||
|
||||
}/* end of connected */
|
||||
}
|
||||
else /* interferecne disappear */
|
||||
{
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
}
|
||||
/* 1 Dynamic Primary CCA Monitor Counter */
|
||||
if ((PrimaryCCA->PriCCA_flag == 1)||(PrimaryCCA->DupRTS_flag == 1))
|
||||
else if (SecCHOffset == 2) /* secondary channel is above the primary channel */
|
||||
{
|
||||
if (Client_40MHz == 0) /* client=20M no need to monitor primary cca flag */
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 500)&&(FalseAlmCnt->Cnt_BW_USC > FalseAlmCnt->Cnt_BW_LSC+500))
|
||||
{
|
||||
Client_40MHz_pre = Client_40MHz;
|
||||
return;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
{
|
||||
PrimaryCCA->intf_type = 1;
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 1); /* LSC MF */
|
||||
if (PrimaryCCA->DupRTS_flag == 1)
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_type = 2;
|
||||
if (PrimaryCCA->DupRTS_flag == 0)
|
||||
PrimaryCCA->DupRTS_flag = 1;
|
||||
}
|
||||
|
||||
}
|
||||
Counter++;
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Counter=%d\n", Counter));
|
||||
if ((Counter == 30)||((Client_40MHz -Client_40MHz_pre)==1)) /* Every 60 sec to monitor one time */
|
||||
else /* interferecne disappear */
|
||||
{
|
||||
PrimaryCCA->Monitor_flag = 1; /* monitor flag is triggered!!!!! */
|
||||
if (PrimaryCCA->PriCCA_flag == 1)
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
PrimaryCCA->Monitor_flag = 0;
|
||||
}
|
||||
|
||||
/* 1 Dynamic Primary CCA Main Function */
|
||||
if (PrimaryCCA->Monitor_flag == 0)
|
||||
{
|
||||
if (Is40MHz) /* if RFBW==40M mode which require to process primary cca */
|
||||
{
|
||||
/* 2 STA is NOT Connected */
|
||||
if (!bConnected)
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("STA NOT Connected!!!!\n"));
|
||||
|
||||
if (PrimaryCCA->PriCCA_flag == 1) /* reset primary cca when STA is disconnected */
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 0;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 0);
|
||||
}
|
||||
Counter = 0;
|
||||
if (PrimaryCCA->DupRTS_flag == 1) /* reset Duplicate RTS when STA is disconnected */
|
||||
PrimaryCCA->DupRTS_flag = 0;
|
||||
|
||||
if (SecCHOffset == 1) /* secondary channel is below the primary channel */
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_LSC*5 > FalseAlmCnt->Cnt_BW_USC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1; /* secondary channel interference is detected!!! */
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2) /* secondary channel is above the primary channel */
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_USC*5 > FalseAlmCnt->Cnt_BW_LSC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1; /* secondary channel interference is detected!!! */
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryCCA->intf_flag = 0;
|
||||
PrimaryCCA->intf_type = 0;
|
||||
}
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("PrimaryCCA=%d\n",PrimaryCCA->PriCCA_flag));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Intf_Type=%d\n", PrimaryCCA->intf_type));
|
||||
}
|
||||
/* 2 STA is Connected */
|
||||
else
|
||||
{
|
||||
if (Client_40MHz == 0) /* 3 client BW = 20MHz */
|
||||
{
|
||||
if (PrimaryCCA->PriCCA_flag == 0)
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
if (SecCHOffset==1)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 2);
|
||||
else if (SecCHOffset==2)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 1);
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("STA Connected 20M!!! PrimaryCCA=%d\n", PrimaryCCA->PriCCA_flag));
|
||||
}
|
||||
else /* 3 client BW = 40MHz */
|
||||
{
|
||||
if (PrimaryCCA->intf_flag == 1) /* interference is detected!! */
|
||||
{
|
||||
if (PrimaryCCA->intf_type == 1)
|
||||
{
|
||||
if (PrimaryCCA->PriCCA_flag!=1)
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 1;
|
||||
if (SecCHOffset==1)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 2);
|
||||
else if (SecCHOffset==2)
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 1);
|
||||
}
|
||||
}
|
||||
else if (PrimaryCCA->intf_type == 2)
|
||||
{
|
||||
if (PrimaryCCA->DupRTS_flag!=1)
|
||||
PrimaryCCA->DupRTS_flag = 1;
|
||||
}
|
||||
}
|
||||
else /* if intf_flag==0 */
|
||||
{
|
||||
if ((curTxOkCnt+curRxOkCnt)<10000) /* idle mode or TP traffic is very low */
|
||||
{
|
||||
if (SecCHOffset == 1)
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_LSC*5 > FalseAlmCnt->Cnt_BW_USC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2)
|
||||
{
|
||||
if ((FalseAlmCnt->Cnt_OFDM_CCA > 800)&&(FalseAlmCnt->Cnt_BW_USC*5 > FalseAlmCnt->Cnt_BW_LSC*9))
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else /* TP Traffic is High */
|
||||
{
|
||||
if (SecCHOffset == 1)
|
||||
{
|
||||
if (FalseAlmCnt->Cnt_BW_LSC > (FalseAlmCnt->Cnt_BW_USC+500))
|
||||
{
|
||||
if (Delay == 0) /* add delay to avoid interference occurring abruptly, jump one time */
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
Delay = 1;
|
||||
}
|
||||
else
|
||||
Delay = 0;
|
||||
}
|
||||
}
|
||||
else if (SecCHOffset == 2)
|
||||
{
|
||||
if (FalseAlmCnt->Cnt_BW_USC > (FalseAlmCnt->Cnt_BW_LSC+500))
|
||||
{
|
||||
if (Delay == 0) /* add delay to avoid interference occurring abruptly */
|
||||
{
|
||||
PrimaryCCA->intf_flag = 1;
|
||||
if (FalseAlmCnt->Cnt_Ofdm_fail > FalseAlmCnt->Cnt_OFDM_CCA>>1)
|
||||
PrimaryCCA->intf_type = 1; /* interference is shift */
|
||||
else
|
||||
PrimaryCCA->intf_type = 2; /* interference is in-band */
|
||||
Delay = 1;
|
||||
}
|
||||
else
|
||||
Delay = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Primary CCA=%d\n", PrimaryCCA->PriCCA_flag));
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Duplicate RTS=%d\n", PrimaryCCA->DupRTS_flag));
|
||||
}
|
||||
|
||||
}/* end of connected */
|
||||
}
|
||||
}
|
||||
/* 1 Dynamic Primary CCA Monitor Counter */
|
||||
if ((PrimaryCCA->PriCCA_flag == 1)||(PrimaryCCA->DupRTS_flag == 1))
|
||||
{
|
||||
if (Client_40MHz == 0) /* client=20M no need to monitor primary cca flag */
|
||||
{
|
||||
Client_40MHz_pre = Client_40MHz;
|
||||
return;
|
||||
}
|
||||
Counter++;
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_DYNAMIC_PRICCA, ODM_DBG_LOUD, ("Counter=%d\n", Counter));
|
||||
if ((Counter == 30)||((Client_40MHz -Client_40MHz_pre)==1)) /* Every 60 sec to monitor one time */
|
||||
{
|
||||
PrimaryCCA->Monitor_flag = 1; /* monitor flag is triggered!!!!! */
|
||||
if (PrimaryCCA->PriCCA_flag == 1)
|
||||
{
|
||||
PrimaryCCA->PriCCA_flag = 0;
|
||||
ODM_SetBBReg(pDM_Odm, 0xc6c, BIT8|BIT7, 0);
|
||||
}
|
||||
Counter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -149,12 +149,8 @@ odm_ConfigBB_PHY_REG_PG_8188E(
|
|||
}
|
||||
else{
|
||||
ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_LOUD, ("===> @@@@@@@ ODM_ConfigBBWithHeaderFile: [PHY_REG] %08X %08X %08X\n", Addr, Bitmask, Data));
|
||||
|
||||
#if !(DM_ODM_SUPPORT_TYPE&ODM_AP)
|
||||
storePwrIndexDiffRateOffset(pDM_Odm->Adapter, Addr, Bitmask, Data);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -27,227 +27,107 @@
|
|||
/* ODM IO Relative API. */
|
||||
/* */
|
||||
|
||||
u1Byte
|
||||
ODM_Read1Byte(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr
|
||||
)
|
||||
u1Byte ODM_Read1Byte(PDM_ODM_T pDM_Odm, u4Byte RegAddr)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
prtl8192cd_priv priv = pDM_Odm->priv;
|
||||
return RTL_R8(RegAddr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return rtw_read8(Adapter,RegAddr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return PlatformEFIORead1Byte(Adapter, RegAddr);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
u2Byte
|
||||
ODM_Read2Byte(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr
|
||||
)
|
||||
u2Byte ODM_Read2Byte(PDM_ODM_T pDM_Odm, u4Byte RegAddr)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
prtl8192cd_priv priv = pDM_Odm->priv;
|
||||
return RTL_R16(RegAddr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return rtw_read16(Adapter,RegAddr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return PlatformEFIORead2Byte(Adapter, RegAddr);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
u4Byte
|
||||
ODM_Read4Byte(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr
|
||||
)
|
||||
u4Byte ODM_Read4Byte(PDM_ODM_T pDM_Odm, u4Byte RegAddr)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
prtl8192cd_priv priv = pDM_Odm->priv;
|
||||
return RTL_R32(RegAddr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return rtw_read32(Adapter,RegAddr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return PlatformEFIORead4Byte(Adapter, RegAddr);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_Write1Byte(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u1Byte Data
|
||||
)
|
||||
void ODM_Write1Byte(PDM_ODM_T pDM_Odm, u4Byte RegAddr, u1Byte Data)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
prtl8192cd_priv priv = pDM_Odm->priv;
|
||||
RTL_W8(RegAddr, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
rtw_write8(Adapter,RegAddr, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformEFIOWrite1Byte(Adapter, RegAddr, Data);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_Write2Byte(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u2Byte Data
|
||||
)
|
||||
void ODM_Write2Byte(PDM_ODM_T pDM_Odm, u4Byte RegAddr, u2Byte Data)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
prtl8192cd_priv priv = pDM_Odm->priv;
|
||||
RTL_W16(RegAddr, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
rtw_write16(Adapter,RegAddr, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformEFIOWrite2Byte(Adapter, RegAddr, Data);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_Write4Byte(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte Data
|
||||
)
|
||||
void ODM_Write4Byte(PDM_ODM_T pDM_Odm, u4Byte RegAddr, u4Byte Data)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
prtl8192cd_priv priv = pDM_Odm->priv;
|
||||
RTL_W32(RegAddr, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
rtw_write32(Adapter,RegAddr, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformEFIOWrite4Byte(Adapter, RegAddr, Data);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_SetMACReg(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask,
|
||||
u4Byte Data
|
||||
)
|
||||
void ODM_SetMACReg(PDM_ODM_T pDM_Odm, u4Byte RegAddr, u4Byte BitMask, u4Byte Data)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
PHY_SetBBReg(pDM_Odm->priv, RegAddr, BitMask, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
u4Byte
|
||||
ODM_GetMACReg(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
return PHY_QueryBBReg(pDM_Odm->priv, RegAddr, BitMask);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_SetBBReg(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask,
|
||||
u4Byte Data
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask,
|
||||
u4Byte Data
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
PHY_SetBBReg(pDM_Odm->priv, RegAddr, BitMask, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
u4Byte
|
||||
ODM_GetBBReg(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask
|
||||
PDM_ODM_T pDM_Odm,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
return PHY_QueryBBReg(pDM_Odm->priv, RegAddr, BitMask);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_SetRFReg(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
ODM_RF_RADIO_PATH_E eRFPath,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask,
|
||||
u4Byte Data
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask,
|
||||
u4Byte Data
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
PHY_SetRFReg(pDM_Odm->priv, eRFPath, RegAddr, BitMask, Data);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PHY_SetRFReg(Adapter, (enum _RF_RADIO_PATH)eRFPath, RegAddr, BitMask, Data);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
u4Byte
|
||||
ODM_GetRFReg(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
ODM_RF_RADIO_PATH_E eRFPath,
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask
|
||||
u4Byte RegAddr,
|
||||
u4Byte BitMask
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
return PHY_QueryRFReg(pDM_Odm->priv, eRFPath, RegAddr, BitMask, 1);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
return PHY_QueryRFReg(Adapter, (enum _RF_RADIO_PATH)eRFPath, RegAddr, BitMask);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -258,404 +138,152 @@ ODM_GetRFReg(
|
|||
/* */
|
||||
void
|
||||
ODM_AllocateMemory(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
void * *pPtr,
|
||||
u4Byte length
|
||||
u4Byte length
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
*pPtr = kmalloc(length, GFP_ATOMIC);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
|
||||
*pPtr = rtw_zvmalloc(length);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformAllocateMemory(Adapter, pPtr, length);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* length could be ignored, used to detect memory leakage. */
|
||||
void
|
||||
ODM_FreeMemory(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
void * pPtr,
|
||||
u4Byte length
|
||||
u4Byte length
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
kfree(pPtr);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
|
||||
rtw_vmfree(pPtr, length);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
/* PADAPTER Adapter = pDM_Odm->Adapter; */
|
||||
PlatformFreeMemory(pPtr, length);
|
||||
#endif
|
||||
}
|
||||
|
||||
s4Byte ODM_CompareMemory(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
void * pBuf1,
|
||||
void * pBuf2,
|
||||
u4Byte length
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
return memcmp(pBuf1,pBuf2,length);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
|
||||
return _rtw_memcmp(pBuf1,pBuf2,length);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
return PlatformCompareMemory(pBuf1,pBuf2,length);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* */
|
||||
/* ODM MISC relative API. */
|
||||
/* */
|
||||
void
|
||||
ODM_AcquireSpinLock(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
RT_SPINLOCK_TYPE type
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformAcquireSpinLock(Adapter, type);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ODM_ReleaseSpinLock(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PDM_ODM_T pDM_Odm,
|
||||
RT_SPINLOCK_TYPE type
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformReleaseSpinLock(Adapter, type);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* */
|
||||
/* Work item relative API. FOr MP driver only~! */
|
||||
/* */
|
||||
void
|
||||
ODM_InitializeWorkItem(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PRT_WORK_ITEM pRtWorkItem,
|
||||
RT_WORKITEM_CALL_BACK RtWorkItemCallback,
|
||||
void * pContext,
|
||||
const char* szID
|
||||
)
|
||||
void ODM_InitializeWorkItem(PDM_ODM_T pDM_Odm, PRT_WORK_ITEM pRtWorkItem,
|
||||
RT_WORKITEM_CALL_BACK RtWorkItemCallback,
|
||||
void *pContext, const char*szID)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformInitializeWorkItem(Adapter, pRtWorkItem, RtWorkItemCallback, pContext, szID);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_StartWorkItem(
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformStartWorkItem(pRtWorkItem);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_StopWorkItem(
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformStopWorkItem(pRtWorkItem);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_FreeWorkItem(
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
)
|
||||
void ODM_FreeWorkItem(PRT_WORK_ITEM pRtWorkItem)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformFreeWorkItem(pRtWorkItem);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_ScheduleWorkItem(
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
)
|
||||
void ODM_ScheduleWorkItem(PRT_WORK_ITEM pRtWorkItem)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformScheduleWorkItem(pRtWorkItem);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_IsWorkItemScheduled(
|
||||
PRT_WORK_ITEM pRtWorkItem
|
||||
)
|
||||
void ODM_IsWorkItemScheduled(PRT_WORK_ITEM pRtWorkItem)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformIsWorkItemScheduled(pRtWorkItem);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* */
|
||||
/* ODM Timer relative API. */
|
||||
/* */
|
||||
void
|
||||
ODM_StallExecution(
|
||||
u4Byte usDelay
|
||||
)
|
||||
void ODM_StallExecution(u4Byte usDelay)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
rtw_udelay_os(usDelay);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformStallExecution(usDelay);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ODM_delay_ms(u4Byte ms)
|
||||
void ODM_delay_ms(u4Byte ms)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
delay_ms(ms);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
rtw_mdelay_os(ms);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
delay_ms(ms);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ODM_delay_us(u4Byte us)
|
||||
void ODM_delay_us(u4Byte us)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
delay_us(us);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
rtw_udelay_os(us);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PlatformStallExecution(us);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ODM_sleep_ms(u4Byte ms)
|
||||
void ODM_sleep_ms(u4Byte ms)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
rtw_msleep_os(ms);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ODM_sleep_us(u4Byte us)
|
||||
void ODM_sleep_us(u4Byte us)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
rtw_usleep_os(us);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
ODM_SetTimer(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PRT_TIMER pTimer,
|
||||
u4Byte msDelay
|
||||
)
|
||||
void ODM_SetTimer(PDM_ODM_T pDM_Odm, PRT_TIMER pTimer, u4Byte msDelay)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
mod_timer(pTimer, jiffies + (msDelay+9)/10);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
_set_timer(pTimer,msDelay ); /* ms */
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformSetTimer(Adapter, pTimer, msDelay);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
ODM_InitializeTimer(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PRT_TIMER pTimer,
|
||||
RT_TIMER_CALL_BACK CallBackFunc,
|
||||
void * pContext,
|
||||
const char* szID
|
||||
)
|
||||
void ODM_InitializeTimer(PDM_ODM_T pDM_Odm, PRT_TIMER pTimer,
|
||||
RT_TIMER_CALL_BACK CallBackFunc, void *pContext,
|
||||
const char *szID)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
pTimer->function = CallBackFunc;
|
||||
pTimer->data = (unsigned long)pDM_Odm;
|
||||
init_timer(pTimer);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
_init_timer(pTimer,Adapter->pnetdev,CallBackFunc,pDM_Odm);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformInitializeTimer(Adapter, pTimer, CallBackFunc,pContext,szID);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_CancelTimer(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PRT_TIMER pTimer
|
||||
)
|
||||
void ODM_CancelTimer(PDM_ODM_T pDM_Odm, PRT_TIMER pTimer)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
del_timer_sync(pTimer);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
_cancel_timer_ex(pTimer);
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
PlatformCancelTimer(Adapter, pTimer);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ODM_ReleaseTimer(
|
||||
PDM_ODM_T pDM_Odm,
|
||||
PRT_TIMER pTimer
|
||||
)
|
||||
void ODM_ReleaseTimer(PDM_ODM_T pDM_Odm, PRT_TIMER pTimer)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
|
||||
PADAPTER Adapter = pDM_Odm->Adapter;
|
||||
|
||||
/* <20120301, Kordan> If the initilization fails, InitializeAdapterXxx will return regardless of InitHalDm. */
|
||||
/* Hence, uninitialized timers cause BSOD when the driver releases resources since the init fail. */
|
||||
if (pTimer == 0)
|
||||
{
|
||||
ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_SERIOUS, ("=====>ODM_ReleaseTimer(), The timer is NULL! Please check it!\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
PlatformReleaseTimer(Adapter, pTimer);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* */
|
||||
/* ODM FW relative API. */
|
||||
/* */
|
||||
#if (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
void
|
||||
ODM_FillH2CCmd(
|
||||
PADAPTER Adapter,
|
||||
u1Byte ElementID,
|
||||
u4Byte CmdLen,
|
||||
pu1Byte pCmdBuffer
|
||||
)
|
||||
{
|
||||
if (IS_HARDWARE_TYPE_JAGUAR(Adapter))
|
||||
{
|
||||
switch (ElementID)
|
||||
{
|
||||
case ODM_H2C_RSSI_REPORT:
|
||||
FillH2CCmd8812(Adapter, H2C_8812_RSSI_REPORT, CmdLen, pCmdBuffer);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else if (IS_HARDWARE_TYPE_8188E(Adapter))
|
||||
{
|
||||
switch (ElementID)
|
||||
{
|
||||
case ODM_H2C_PSD_RESULT:
|
||||
FillH2CCmd88E(Adapter, H2C_88E_PSD_RESULT, CmdLen, pCmdBuffer);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (ElementID)
|
||||
{
|
||||
case ODM_H2C_RSSI_REPORT:
|
||||
FillH2CCmd92C(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);
|
||||
case ODM_H2C_PSD_RESULT:
|
||||
FillH2CCmd92C(Adapter, H2C_92C_PSD_RESULT, CmdLen, pCmdBuffer);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
u4Byte
|
||||
ODM_FillH2CCmd(
|
||||
pu1Byte pH2CBuffer,
|
||||
u4Byte H2CBufferLen,
|
||||
u4Byte CmdNum,
|
||||
pu4Byte pElementID,
|
||||
pu4Byte pCmdLen,
|
||||
pu1Byte pH2CBuffer,
|
||||
u4Byte H2CBufferLen,
|
||||
u4Byte CmdNum,
|
||||
pu4Byte pElementID,
|
||||
pu4Byte pCmdLen,
|
||||
pu1Byte* pCmbBuffer,
|
||||
pu1Byte CmdStartSeq
|
||||
pu1Byte CmdStartSeq
|
||||
)
|
||||
{
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
|
||||
|
||||
#elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
|
||||
/* FillH2CCmd(pH2CBuffer, H2CBufferLen, CmdNum, pElementID, pCmdLen, pCmbBuffer, CmdStartSeq); */
|
||||
return false;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue