On Thu, Oct 14, 2010 at 2:40 PM, Paul Stewart <pstew@xxxxxxxxxx> wrote: > + if (mcs_rate_table_cache[mcs] == 0) { > + modulation = mcs & 7; > + streams = (mcs >> 3) + 1; > + base_rate = (rate_ptr->flags & IEEE80211_TX_RC_40_MHZ_WIDTH) ? > + 13500000 : 6500000; > + gi_div = (rate_ptr->flags & IEEE80211_TX_RC_SHORT_GI) ? 9 : 10; > + rate_val = base_rate * mod_table[modulation] * streams / gi_div; > + mcs_rate_table_cache[mcs] = (rate_val + 5000) / 10000; > + } > + > + return mcs_rate_table_cache[mcs] * 100; > +} Um, that doesn't work right. The cache needs to be 4 times as big to account for account from 40MHZ and SHORT_GI. I'll send a revised version of this tomorrow. -- Paul -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html