mirror of
https://github.com/Mange/rtl8192eu-linux-driver
synced 2025-12-10 00:04:17 +00:00
Updated to v4.3.8_12406.20140929
This commit is contained in:
284
core/rtw_mp.c
284
core/rtw_mp.c
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user