Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2e86493 authored by Florian Schilhabel's avatar Florian Schilhabel Committed by Greg Kroah-Hartman
Browse files

staging: rtl819su: update MgntQuery_MgntFrameTxRate()

parent c9b4d3ea
Loading
Loading
Loading
Loading
+38 −15
Original line number Diff line number Diff line
@@ -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;
}