diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/rc.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/rc.c | 56 | 
1 files changed, 27 insertions, 29 deletions
diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c index ba7f36ab0a7..c04a6c3cac7 100644 --- a/drivers/net/wireless/ath/ath9k/rc.c +++ b/drivers/net/wireless/ath/ath9k/rc.c @@ -379,7 +379,30 @@ static const struct ath_rate_table ar5416_11g_ratetable = {  };  static int ath_rc_get_rateindex(const struct ath_rate_table *rate_table, -				struct ieee80211_tx_rate *rate); +				struct ieee80211_tx_rate *rate) +{ +	int rix = 0, i = 0; +	static const int mcs_rix_off[] = { 7, 15, 20, 21, 22, 23 }; + +	if (!(rate->flags & IEEE80211_TX_RC_MCS)) +		return rate->idx; + +	while (i < ARRAY_SIZE(mcs_rix_off) && rate->idx > mcs_rix_off[i]) { +		rix++; i++; +	} + +	rix += rate->idx + rate_table->mcs_start; + +	if ((rate->flags & IEEE80211_TX_RC_40_MHZ_WIDTH) && +	    (rate->flags & IEEE80211_TX_RC_SHORT_GI)) +		rix = rate_table->info[rix].ht_index; +	else if (rate->flags & IEEE80211_TX_RC_SHORT_GI) +		rix = rate_table->info[rix].sgi_index; +	else if (rate->flags & IEEE80211_TX_RC_40_MHZ_WIDTH) +		rix = rate_table->info[rix].cw40index; + +	return rix; +}  static void ath_rc_sort_validrates(const struct ath_rate_table *rate_table,  				   struct ath_rate_priv *ath_rc_priv) @@ -533,7 +556,7 @@ static u8 ath_rc_setvalid_rates(struct ath_rate_priv *ath_rc_priv,  					[valid_rate_count] = j;  				ath_rc_priv->valid_phy_ratecnt[phy] += 1;  				ath_rc_set_valid_rate_idx(ath_rc_priv, j, 1); -				hi = A_MAX(hi, j); +				hi = max(hi, j);  			}  		}  	} @@ -569,7 +592,7 @@ static u8 ath_rc_setvalid_htrates(struct ath_rate_priv *ath_rc_priv,  				[ath_rc_priv->valid_phy_ratecnt[phy]] = j;  			ath_rc_priv->valid_phy_ratecnt[phy] += 1;  			ath_rc_set_valid_rate_idx(ath_rc_priv, j, 1); -			hi = A_MAX(hi, j); +			hi = max(hi, j);  		}  	} @@ -1080,31 +1103,6 @@ static void ath_rc_update_ht(struct ath_softc *sc,  } -static int ath_rc_get_rateindex(const struct ath_rate_table *rate_table, -				struct ieee80211_tx_rate *rate) -{ -	int rix = 0, i = 0; -	static const int mcs_rix_off[] = { 7, 15, 20, 21, 22, 23 }; - -	if (!(rate->flags & IEEE80211_TX_RC_MCS)) -		return rate->idx; - -	while (i < ARRAY_SIZE(mcs_rix_off) && rate->idx > mcs_rix_off[i]) { -		rix++; i++; -	} - -	rix += rate->idx + rate_table->mcs_start; - -	if ((rate->flags & IEEE80211_TX_RC_40_MHZ_WIDTH) && -	    (rate->flags & IEEE80211_TX_RC_SHORT_GI)) -		rix = rate_table->info[rix].ht_index; -	else if (rate->flags & IEEE80211_TX_RC_SHORT_GI) -		rix = rate_table->info[rix].sgi_index; -	else if (rate->flags & IEEE80211_TX_RC_40_MHZ_WIDTH) -		rix = rate_table->info[rix].cw40index; - -	return rix; -}  static void ath_rc_tx_status(struct ath_softc *sc,  			     struct ath_rate_priv *ath_rc_priv, @@ -1228,7 +1226,7 @@ static void ath_rc_init(struct ath_softc *sc,  						       ht_mcs,  						       ath_rc_priv->ht_cap);  		} -		hi = A_MAX(hi, hthi); +		hi = max(hi, hthi);  	}  	ath_rc_priv->rate_table_size = hi + 1;  |