Updated to v4.3.8_12406.20140929

This commit is contained in:
CGarces
2017-05-11 20:35:20 +02:00
parent 1387cf623d
commit 9dde4572b4
229 changed files with 35553 additions and 24316 deletions

View File

@@ -292,7 +292,7 @@ s32 init_mp_priv(PADAPTER padapter)
pmppriv->tx.stop = 1;
pmppriv->bSetTxPower=0; //for manually set tx power
pmppriv->bTxBufCkFail=_FALSE;
pmppriv->pktInterval=1;
pmppriv->pktInterval=0;
mp_init_xmit_attrib(&pmppriv->tx, padapter);
@@ -423,7 +423,7 @@ void mpt_InitHWConfig(PADAPTER Adapter)
#define PHY_IQCalibrate(_Adapter, b) \
IS_HARDWARE_TYPE_8812(_Adapter) ? PHY_IQCalibrate_8812A(_Adapter, b) : \
IS_HARDWARE_TYPE_8821(_Adapter) ? PHY_IQCalibrate_8821A(_Adapter, b) : \
IS_HARDWARE_TYPE_8821(_Adapter) ? PHY_IQCalibrate_8821A(&(GET_HAL_DATA(_Adapter)->odmpriv), b) : \
PHY_IQCalibrate_default(_Adapter, b)
#define PHY_LCCalibrate(_Adapter) \
@@ -449,17 +449,13 @@ static void PHY_IQCalibrate(PADAPTER padapter, u8 bReCovery)
u8 b2ant; //false:1ant, true:2-ant
u8 RF_Path; //0:S1, 1:S0
pHalData = GET_HAL_DATA(padapter);
b2ant = pHalData->EEPROMBluetoothAntNum==Ant_x2?_TRUE:_FALSE;
RF_Path = 0;
#ifdef CONFIG_USB_HCI
RF_Path = 1;
#endif
PHY_IQCalibrate_8723B(padapter, bReCovery, _FALSE, b2ant, RF_Path);
PHY_IQCalibrate_8723B(padapter, bReCovery, _FALSE, b2ant, pHalData->ant_path);
}
#define PHY_LCCalibrate(a) PHY_LCCalibrate_8723B(&(GET_HAL_DATA(a)->odmpriv))
#define PHY_SetRFPathSwitch(a,b) PHY_SetRFPathSwitch_8723B(a,b)
#endif
@@ -568,9 +564,6 @@ MPT_InitializeAdapter(
rtw_write16(pAdapter, 0x870, 0x300);
rtw_write16(pAdapter, 0x860, 0x110);
if (pAdapter->registrypriv.mp_mode == 1)
pmlmepriv->fw_state = WIFI_MP_STATE;
return rtStatus;
}
@@ -694,7 +687,6 @@ void MPT_PwrCtlDM(PADAPTER padapter, u32 bstart)
PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
if (bstart==1){
ODM_ClearTxPowerTrackingState(pDM_Odm);
DBG_871X("in MPT_PwrCtlDM start \n");
Switch_DM_Func(padapter, DYNAMIC_RF_TX_PWR_TRACK, _TRUE);
pdmpriv->InitODMFlag |= ODM_RF_TX_PWR_TRACK ;
@@ -702,6 +694,9 @@ void MPT_PwrCtlDM(PADAPTER padapter, u32 bstart)
pdmpriv->TxPowerTrackControl = _TRUE;
pDM_Odm->RFCalibrateInfo.TxPowerTrackControl = _TRUE;
padapter->mppriv.mp_dm =1;
odm_TXPowerTrackingInit(pDM_Odm);
ODM_ClearTxPowerTrackingState(pDM_Odm);
}else{
DBG_871X("in MPT_PwrCtlDM stop \n");
disable_dm(padapter);
@@ -711,7 +706,7 @@ void MPT_PwrCtlDM(PADAPTER padapter, u32 bstart)
padapter->mppriv.mp_dm = 0;
{
TXPWRTRACK_CFG c;
u1Byte chnl =0 ;
u1Byte chnl =0 ;
ConfigureTxpowerTrack(pDM_Odm, &c);
ODM_ClearTxPowerTrackingState(pDM_Odm);
@@ -735,7 +730,7 @@ u32 mp_join(PADAPTER padapter,u8 mode)
struct mp_priv *pmppriv = &padapter->mppriv;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
struct wlan_network *tgt_network = &pmlmepriv->cur_network;
// 1. initialize a new WLAN_BSSID_EX
_rtw_memset(&bssid, 0, sizeof(WLAN_BSSID_EX));
DBG_8192C("%s ,pmppriv->network_macaddr=%x %x %x %x %x %x \n",__func__,
@@ -766,21 +761,18 @@ u32 mp_join(PADAPTER padapter,u8 mode)
_enter_critical_bh(&pmlmepriv->lock, &irqL);
//if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE)
// goto end_of_mp_start_test;
#if 0
if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE)
goto end_of_mp_start_test;
//init mp_start_test status
if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE) {
rtw_disassoc_cmd(padapter, 0, _TRUE);
rtw_disassoc_cmd(padapter, 500, _TRUE);
rtw_indicate_disconnect(padapter);
rtw_free_assoc_resources(padapter, 1);
}
rtw_msleep_os(500);
pmppriv->prev_fw_state = get_fwstate(pmlmepriv);
if (padapter->registrypriv.mp_mode == 1)
pmlmepriv->fw_state = WIFI_MP_STATE;
pmlmepriv->fw_state = WIFI_MP_STATE;
#if 0
if (pmppriv->mode == _LOOPBOOK_MODE_) {
set_fwstate(pmlmepriv, WIFI_MP_LPBK_STATE); //append txdesc
RT_TRACE(_module_mp_, _drv_notice_, ("+start mp in Lookback mode\n"));
@@ -788,11 +780,8 @@ u32 mp_join(PADAPTER padapter,u8 mode)
RT_TRACE(_module_mp_, _drv_notice_, ("+start mp in normal mode\n"));
}
#endif
set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
set_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE);
#if 1
//3 2. create a new psta for mp driver
//clear psta in the cur_network, if any
psta = rtw_get_stainfo(&padapter->stapriv, tgt_network->network.MacAddress);
@@ -805,7 +794,7 @@ u32 mp_join(PADAPTER padapter,u8 mode)
res = _FAIL;
goto end_of_mp_start_test;
}
#endif
set_fwstate(pmlmepriv,WIFI_ADHOC_MASTER_STATE);
//3 3. join psudo AdHoc
tgt_network->join_res = 1;
tgt_network->aid = psta->aid = 1;
@@ -813,6 +802,7 @@ u32 mp_join(PADAPTER padapter,u8 mode)
rtw_indicate_connect(padapter);
_clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
set_fwstate(pmlmepriv,_FW_LINKED);
end_of_mp_start_test:
@@ -822,19 +812,21 @@ end_of_mp_start_test:
{
// set MSR to WIFI_FW_ADHOC_STATE
if( mode==WIFI_FW_ADHOC_STATE ){
val8 = rtw_read8(padapter, MSR) & 0xFC; // 0x0102
val8 |= WIFI_FW_ADHOC_STATE;
rtw_write8(padapter, MSR, val8); // Link in ad hoc network
}
}
else {
Set_MSR(padapter, WIFI_FW_STATION_STATE);
DBG_8192C("%s , pmppriv->network_macaddr =%x %x %x %x %x %x\n",__func__,
pmppriv->network_macaddr[0],pmppriv->network_macaddr[1],pmppriv->network_macaddr[2],pmppriv->network_macaddr[3],pmppriv->network_macaddr[4],pmppriv->network_macaddr[5]);
rtw_hal_set_hwreg(padapter, HW_VAR_BSSID, pmppriv->network_macaddr);
}
}
pmlmepriv->fw_state = WIFI_MP_STATE;
return res;
}
//This function initializes the DUT to the MP test mode
@@ -1273,7 +1265,7 @@ static thread_return mp_xmit_packet_thread(thread_context context)
goto exit;
}
else {
rtw_usleep_os(100);
rtw_usleep_os(10);
continue;
}
}
@@ -1362,7 +1354,7 @@ void fill_tx_desc_8188e(PADAPTER padapter)
u32 pkt_size = pattrib->last_txcmdsz;
s32 bmcast = IS_MCAST(pattrib->ra);
// offset 0
#if !defined(CONFIG_RTL8188E_SDIO)
#if !defined(CONFIG_RTL8188E_SDIO) && !defined(CONFIG_PCI_HCI)
desc->txdw0 |= cpu_to_le32(OWN | FSG | LSG);
desc->txdw0 |= cpu_to_le32(pkt_size & 0x0000FFFF); // packet size
desc->txdw0 |= cpu_to_le32(((TXDESC_SIZE + OFFSET_SZ) << OFFSET_SHT) & 0x00FF0000); //32 bytes for TX Desc
@@ -1473,8 +1465,15 @@ void fill_tx_desc_8192e(PADAPTER padapter)
offset = TXDESC_SIZE + OFFSET_SZ;
SET_TX_DESC_OFFSET_92E(pDesc, offset);
#if defined(CONFIG_PCI_HCI) //8192EE
SET_TX_DESC_OFFSET_92E(pDesc, offset+8); //work around
SET_TX_DESC_PKT_OFFSET_92E(pDesc, 0); /* 8192EE pkt_offset is 0 */
#else //8192EU 8192ES
SET_TX_DESC_OFFSET_92E(pDesc, offset);
SET_TX_DESC_PKT_OFFSET_92E(pDesc, 1);
#endif
if (bmcast) {
SET_TX_DESC_BMC_92E(pDesc, 1);
@@ -1551,9 +1550,9 @@ static void Rtw_MPSetMacTxEDCA(PADAPTER padapter)
PHY_SetMacReg(padapter, 0x458 ,bMaskDWord , 0x0);
//DBG_8192C("%s()!!!!! 0x460 = 0x%x\n" ,__func__,PHY_QueryBBReg(padapter, 0x460, bMaskDWord));
PHY_SetMacReg(padapter, 0x460 ,bMaskLWord , 0x0);//fast EDCA queue packet interval & time out vaule
PHY_SetMacReg(padapter, ODM_EDCA_VO_PARAM ,bMaskLWord , 0x431C);
PHY_SetMacReg(padapter, ODM_EDCA_BE_PARAM ,bMaskLWord , 0x431C);
PHY_SetMacReg(padapter, ODM_EDCA_BK_PARAM ,bMaskLWord , 0x431C);
//PHY_SetMacReg(padapter, ODM_EDCA_VO_PARAM ,bMaskLWord , 0x431C);
//PHY_SetMacReg(padapter, ODM_EDCA_BE_PARAM ,bMaskLWord , 0x431C);
//PHY_SetMacReg(padapter, ODM_EDCA_BK_PARAM ,bMaskLWord , 0x431C);
DBG_8192C("%s()!!!!! 0x460 = 0x%x\n" ,__func__,PHY_QueryBBReg(padapter, 0x460, bMaskDWord));
}
@@ -1670,16 +1669,18 @@ void SetPacketTx(PADAPTER padapter)
if(pmp_priv->TXradomBuffer == NULL)
{
DBG_871X("mp create random buffer fail!\n");
goto exit;
}
else
{
for(i=0;i<4096;i++)
pmp_priv->TXradomBuffer[i] = rtw_random32() %0xFF;
}
for(i=0;i<4096;i++)
pmp_priv->TXradomBuffer[i] = rtw_random32() %0xFF;
//startPlace = (u32)(rtw_random32() % 3450);
_rtw_memcpy(ptr, pmp_priv->TXradomBuffer,pkt_end - ptr);
//_rtw_memset(ptr, payload, pkt_end - ptr);
rtw_mfree(pmp_priv->TXradomBuffer,4096);
//3 6. start thread
#ifdef PLATFORM_LINUX
pmp_priv->tx.PktTxThread = kthread_run(mp_xmit_packet_thread, pmp_priv, "RTW_MP_THREAD");
@@ -1699,7 +1700,8 @@ void SetPacketTx(PADAPTER padapter)
#endif
Rtw_MPSetMacTxEDCA(padapter);
exit:
return;
}
void SetPacketRx(PADAPTER pAdapter, u8 bStartRx)
@@ -1886,7 +1888,7 @@ u32 mp_query_psd(PADAPTER pAdapter, u8 *data)
}
#if 0
void _rtw_mp_xmit_priv (struct xmit_priv *pxmitpriv)
{
int i,res;
@@ -1953,7 +1955,7 @@ void _rtw_mp_xmit_priv (struct xmit_priv *pxmitpriv)
pxmitbuf->padapter = padapter;
pxmitbuf->buf_tag = XMITBUF_MGNT;
if((res=rtw_os_xmit_resource_alloc(padapter, pxmitbuf,max_xmit_extbuf_size + XMITBUF_ALIGN_SZ, _FALSE)) == _FAIL) {
if((res=rtw_os_xmit_resource_alloc(padapter, pxmitbuf,max_xmit_extbuf_size + XMITBUF_ALIGN_SZ, _TRUE)) == _FAIL) {
res= _FAIL;
goto exit;
}
@@ -1978,7 +1980,7 @@ void _rtw_mp_xmit_priv (struct xmit_priv *pxmitpriv)
exit:
;
}
#endif
ULONG getPowerDiffByRate8188E(
@@ -2200,8 +2202,7 @@ mpt_ProQueryCalTxPower_8188E(
CurrChannel = 1;
}
if( pMptCtx->MptRateIndex >= MPT_RATE_1M &&
pMptCtx->MptRateIndex <= MPT_RATE_11M )
if(pMptCtx->MptRateIndex <= MPT_RATE_11M )
{
TxPower = pHalData->Index24G_CCK_Base[rf_path][index];
}
@@ -2245,8 +2246,7 @@ mpt_ProQueryCalTxPower_8188E(
#endif
// 2012/11/02 Awk: add power limit mechansim
if( pMptCtx->MptRateIndex >= MPT_RATE_1M &&
pMptCtx->MptRateIndex <= MPT_RATE_11M )
if( pMptCtx->MptRateIndex <= MPT_RATE_11M )
{
rate = MGN_1M;
}
@@ -2277,72 +2277,141 @@ mpt_ProQueryCalTxPower_8188E(
return TxPower;
}
u8 MptToMgntRate(u32 MptRateIdx)
u8
MptToMgntRate(
IN ULONG MptRateIdx
)
{
// Mapped to MGN_XXX defined in MgntGen.h
switch (MptRateIdx)
{
/* CCK rate. */
case MPT_RATE_1M: return 2;
case MPT_RATE_2M: return 4;
case MPT_RATE_55M: return 11;
case MPT_RATE_11M: return 22;
/* OFDM rate. */
case MPT_RATE_6M: return 12;
case MPT_RATE_9M: return 18;
case MPT_RATE_12M: return 24;
case MPT_RATE_18M: return 36;
case MPT_RATE_24M: return 48;
case MPT_RATE_36M: return 72;
case MPT_RATE_48M: return 96;
case MPT_RATE_54M: return 108;
/* HT rate. */
case MPT_RATE_MCS0: return 0x80;
case MPT_RATE_MCS1: return 0x81;
case MPT_RATE_MCS2: return 0x82;
case MPT_RATE_MCS3: return 0x83;
case MPT_RATE_MCS4: return 0x84;
case MPT_RATE_MCS5: return 0x85;
case MPT_RATE_MCS6: return 0x86;
case MPT_RATE_MCS7: return 0x87;
case MPT_RATE_MCS8: return 0x88;
case MPT_RATE_MCS9: return 0x89;
case MPT_RATE_MCS10: return 0x8A;
case MPT_RATE_MCS11: return 0x8B;
case MPT_RATE_MCS12: return 0x8C;
case MPT_RATE_MCS13: return 0x8D;
case MPT_RATE_MCS14: return 0x8E;
case MPT_RATE_MCS15: return 0x8F;
/* VHT rate. */
case MPT_RATE_VHT1SS_MCS0: return 0x90;
case MPT_RATE_VHT1SS_MCS1: return 0x91;
case MPT_RATE_VHT1SS_MCS2: return 0x92;
case MPT_RATE_VHT1SS_MCS3: return 0x93;
case MPT_RATE_VHT1SS_MCS4: return 0x94;
case MPT_RATE_VHT1SS_MCS5: return 0x95;
case MPT_RATE_VHT1SS_MCS6: return 0x96;
case MPT_RATE_VHT1SS_MCS7: return 0x97;
case MPT_RATE_VHT1SS_MCS8: return 0x98;
case MPT_RATE_VHT1SS_MCS9: return 0x99;
case MPT_RATE_VHT2SS_MCS0: return 0x9A;
case MPT_RATE_VHT2SS_MCS1: return 0x9B;
case MPT_RATE_VHT2SS_MCS2: return 0x9C;
case MPT_RATE_VHT2SS_MCS3: return 0x9D;
case MPT_RATE_VHT2SS_MCS4: return 0x9E;
case MPT_RATE_VHT2SS_MCS5: return 0x9F;
case MPT_RATE_VHT2SS_MCS6: return 0xA0;
case MPT_RATE_VHT2SS_MCS7: return 0xA1;
case MPT_RATE_VHT2SS_MCS8: return 0xA2;
case MPT_RATE_VHT2SS_MCS9: return 0xA3;
case MPT_RATE_1M: return MGN_1M;
case MPT_RATE_2M: return MGN_2M;
case MPT_RATE_55M: return MGN_5_5M;
case MPT_RATE_11M: return MGN_11M;
/* OFDM rate. */
case MPT_RATE_6M: return MGN_6M;
case MPT_RATE_9M: return MGN_9M;
case MPT_RATE_12M: return MGN_12M;
case MPT_RATE_18M: return MGN_18M;
case MPT_RATE_24M: return MGN_24M;
case MPT_RATE_36M: return MGN_36M;
case MPT_RATE_48M: return MGN_48M;
case MPT_RATE_54M: return MGN_54M;
/* HT rate. */
case MPT_RATE_MCS0: return MGN_MCS0;
case MPT_RATE_MCS1: return MGN_MCS1;
case MPT_RATE_MCS2: return MGN_MCS2;
case MPT_RATE_MCS3: return MGN_MCS3;
case MPT_RATE_MCS4: return MGN_MCS4;
case MPT_RATE_MCS5: return MGN_MCS5;
case MPT_RATE_MCS6: return MGN_MCS6;
case MPT_RATE_MCS7: return MGN_MCS7;
case MPT_RATE_MCS8: return MGN_MCS8;
case MPT_RATE_MCS9: return MGN_MCS9;
case MPT_RATE_MCS10: return MGN_MCS10;
case MPT_RATE_MCS11: return MGN_MCS11;
case MPT_RATE_MCS12: return MGN_MCS12;
case MPT_RATE_MCS13: return MGN_MCS13;
case MPT_RATE_MCS14: return MGN_MCS14;
case MPT_RATE_MCS15: return MGN_MCS15;
case MPT_RATE_MCS16: return MGN_MCS16;
case MPT_RATE_MCS17: return MGN_MCS17;
case MPT_RATE_MCS18: return MGN_MCS18;
case MPT_RATE_MCS19: return MGN_MCS19;
case MPT_RATE_MCS20: return MGN_MCS20;
case MPT_RATE_MCS21: return MGN_MCS21;
case MPT_RATE_MCS22: return MGN_MCS22;
case MPT_RATE_MCS23: return MGN_MCS23;
case MPT_RATE_MCS24: return MGN_MCS24;
case MPT_RATE_MCS25: return MGN_MCS25;
case MPT_RATE_MCS26: return MGN_MCS26;
case MPT_RATE_MCS27: return MGN_MCS27;
case MPT_RATE_MCS28: return MGN_MCS28;
case MPT_RATE_MCS29: return MGN_MCS29;
case MPT_RATE_MCS30: return MGN_MCS30;
case MPT_RATE_MCS31: return MGN_MCS31;
/* VHT rate. */
case MPT_RATE_VHT1SS_MCS0: return MGN_VHT1SS_MCS0;
case MPT_RATE_VHT1SS_MCS1: return MGN_VHT1SS_MCS1;
case MPT_RATE_VHT1SS_MCS2: return MGN_VHT1SS_MCS2;
case MPT_RATE_VHT1SS_MCS3: return MGN_VHT1SS_MCS3;
case MPT_RATE_VHT1SS_MCS4: return MGN_VHT1SS_MCS4;
case MPT_RATE_VHT1SS_MCS5: return MGN_VHT1SS_MCS5;
case MPT_RATE_VHT1SS_MCS6: return MGN_VHT1SS_MCS6;
case MPT_RATE_VHT1SS_MCS7: return MGN_VHT1SS_MCS7;
case MPT_RATE_VHT1SS_MCS8: return MGN_VHT1SS_MCS8;
case MPT_RATE_VHT1SS_MCS9: return MGN_VHT1SS_MCS9;
case MPT_RATE_VHT2SS_MCS0: return MGN_VHT2SS_MCS0;
case MPT_RATE_VHT2SS_MCS1: return MGN_VHT2SS_MCS1;
case MPT_RATE_VHT2SS_MCS2: return MGN_VHT2SS_MCS2;
case MPT_RATE_VHT2SS_MCS3: return MGN_VHT2SS_MCS3;
case MPT_RATE_VHT2SS_MCS4: return MGN_VHT2SS_MCS4;
case MPT_RATE_VHT2SS_MCS5: return MGN_VHT2SS_MCS5;
case MPT_RATE_VHT2SS_MCS6: return MGN_VHT2SS_MCS6;
case MPT_RATE_VHT2SS_MCS7: return MGN_VHT2SS_MCS7;
case MPT_RATE_VHT2SS_MCS8: return MGN_VHT2SS_MCS8;
case MPT_RATE_VHT2SS_MCS9: return MGN_VHT2SS_MCS9;
case MPT_RATE_VHT3SS_MCS0: return MGN_VHT3SS_MCS0;
case MPT_RATE_VHT3SS_MCS1: return MGN_VHT3SS_MCS1;
case MPT_RATE_VHT3SS_MCS2: return MGN_VHT3SS_MCS2;
case MPT_RATE_VHT3SS_MCS3: return MGN_VHT3SS_MCS3;
case MPT_RATE_VHT3SS_MCS4: return MGN_VHT3SS_MCS4;
case MPT_RATE_VHT3SS_MCS5: return MGN_VHT3SS_MCS5;
case MPT_RATE_VHT3SS_MCS6: return MGN_VHT3SS_MCS6;
case MPT_RATE_VHT3SS_MCS7: return MGN_VHT3SS_MCS7;
case MPT_RATE_VHT3SS_MCS8: return MGN_VHT3SS_MCS8;
case MPT_RATE_VHT3SS_MCS9: return MGN_VHT3SS_MCS9;
case MPT_RATE_VHT4SS_MCS0: return MGN_VHT4SS_MCS0;
case MPT_RATE_VHT4SS_MCS1: return MGN_VHT4SS_MCS1;
case MPT_RATE_VHT4SS_MCS2: return MGN_VHT4SS_MCS2;
case MPT_RATE_VHT4SS_MCS3: return MGN_VHT4SS_MCS3;
case MPT_RATE_VHT4SS_MCS4: return MGN_VHT4SS_MCS4;
case MPT_RATE_VHT4SS_MCS5: return MGN_VHT4SS_MCS5;
case MPT_RATE_VHT4SS_MCS6: return MGN_VHT4SS_MCS6;
case MPT_RATE_VHT4SS_MCS7: return MGN_VHT4SS_MCS7;
case MPT_RATE_VHT4SS_MCS8: return MGN_VHT4SS_MCS8;
case MPT_RATE_VHT4SS_MCS9: return MGN_VHT4SS_MCS9;
case MPT_RATE_LAST:// fully automatic
default:
DBG_8192C("<===MptToMgntRate(), Invalid Rate: %d!!\n", MptRateIdx);
return 0x0;
case MPT_RATE_LAST: // fully automatiMGN_VHT2SS_MCS1;
default:
DBG_871X("<===MptToMgntRate(), Invalid Rate: %d!!\n", MptRateIdx);
return 0x0;
}
}
u8 rtw_mpRateParseFunc(PADAPTER pAdapter, u8 *targetStr)
{
u16 i=0;
u8* rateindex_Array[] = { "1M","2M","5.5M","11M","6M","9M","12M","18M","24M","36M","48M","54M",
"HTMCS0","HTMCS1","HTMCS2","HTMCS3","HTMCS4","HTMCS5","HTMCS6","HTMCS7",
"HTMCS8","HTMCS9","HTMCS10","HTMCS11","HTMCS12","HTMCS13","HTMCS14","HTMCS15",
"HTMCS16","HTMCS17","HTMCS18","HTMCS19","HTMCS20","HTMCS21","HTMCS22","HTMCS23",
"HTMCS24","HTMCS25","HTMCS26","HTMCS27","HTMCS28","HTMCS29","HTMCS30","HTMCS31",
"VHT1MCS0","VHT1MCS1","VHT1MCS2","VHT1MCS3","VHT1MCS4","VHT1MCS5","VHT1MCS6","VHT1MCS7","VHT1MCS8","VHT1MCS9",
"VHT2MCS0","VHT2MCS1","VHT2MCS2","VHT2MCS3","VHT2MCS4","VHT2MCS5","VHT2MCS6","VHT2MCS7","VHT2MCS8","VHT2MCS9",
"VHT3MCS0","VHT3MCS1","VHT3MCS2","VHT3MCS3","VHT3MCS4","VHT3MCS5","VHT3MCS6","VHT3MCS7","VHT3MCS8","VHT3MCS9",
"VHT4MCS0","VHT4MCS1","VHT4MCS2","VHT4MCS3","VHT4MCS4","VHT4MCS5","VHT4MCS6","VHT4MCS7","VHT4MCS8","VHT4MCS9"};
for(i=0;i<=83;i++){
if(strcmp(targetStr, rateindex_Array[i]) == 0){
DBG_871X("%s , index = %d \n",__func__ ,i);
return i;
}
}
printk("%s ,please input a Data RATE String as:",__func__);
for(i=0;i<=83;i++){
printk("%s ",rateindex_Array[i]);
if(i%10==0)
printk("\n");
}
return _FAIL;
}
ULONG mpt_ProQueryCalTxPower(
@@ -2447,8 +2516,5 @@ void Hal_ProSetCrystalCap (PADAPTER pAdapter , u32 CrystalCap)
PHY_SetBBReg(pAdapter, REG_MAC_PHY_CTRL, 0xFFF000, (CrystalCap | (CrystalCap << 6)));
}
}
#endif