staging: rtl819su: update MgntQuery_MgntFrameTxRate()

Signed-off-by: Florian Schilhabel <florian.c.schilhabel@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Florian Schilhabel 2010-07-15 19:03:27 +02:00 committed by Greg Kroah-Hartman
parent c9b4d3ea11
commit e2e8649318
1 changed files with 38 additions and 15 deletions

View File

@ -183,19 +183,53 @@ void init_mgmt_queue(struct ieee80211_device *ieee)
ieee->mgmt_queue_tail = ieee->mgmt_queue_head = 0;
}
u8
MgntQuery_TxRateExcludeCCKRates(struct ieee80211_device *ieee)
{
u16 i;
u8 QueryRate = 0;
u8 BasicRate;
for( i = 0; i < ieee->current_network.rates_len; i++)
{
BasicRate = ieee->current_network.rates[i]&0x7F;
if(!ieee80211_is_cck_rate(BasicRate))
{
if(QueryRate == 0)
{
QueryRate = BasicRate;
}
else
{
if(BasicRate < QueryRate)
{
QueryRate = BasicRate;
}
}
}
}
if(QueryRate == 0)
{
QueryRate = 12;
printk("No BasicRate found!!\n");
}
return QueryRate;
}
u8 MgntQuery_MgntFrameTxRate(struct ieee80211_device *ieee)
{
PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
u8 rate;
// 2008/01/25 MH For broadcom, MGNT frame set as OFDM 6M.
if(pHTInfo->IOTAction & HT_IOT_ACT_MGNT_USE_CCK_6M)
rate = 0x0c;
if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
{
rate = MgntQuery_TxRateExcludeCCKRates(ieee);
}
else
rate = ieee->basic_rate & 0x7f;
if(rate == 0){
// 2005.01.26, by rcnjko.
if(ieee->mode == IEEE_A||
ieee->mode== IEEE_N_5G||
(ieee->mode== IEEE_N_24G&&!pHTInfo->bCurSuppCCK))
@ -203,17 +237,6 @@ u8 MgntQuery_MgntFrameTxRate(struct ieee80211_device *ieee)
else
rate = 0x02;
}
/*
// Data rate of ProbeReq is already decided. Annie, 2005-03-31
if( pMgntInfo->bScanInProgress || (pMgntInfo->bDualModeScanStep!=0) )
{
if(pMgntInfo->dot11CurrentWirelessMode==WIRELESS_MODE_A)
rate = 0x0c;
else
rate = 0x02;
}
*/
return rate;
}