aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2007-02-13 19:58:03 -0500
committerJohn W. Linville <linville@tuxdriver.com>2007-02-14 15:45:05 -0500
commitbb52a653eaef4aee877b2fa36de8699926f788bd (patch)
tree7cbe728f22ea6c45d675f14ca1fbfccd4b568ddc
parenta5d79d1e4fa58e12a37c91963fc071d811d2cffd (diff)
[PATCH] ieee80211softmac: Fix setting of initial transmit rates
There is a bug in ieee80211softmac that always sets the user rate to 11Mbs, no matter the capabilities of the device. This bug was probably beneficial as long as the bcm43xx cards were rate limited; however, most are now capable of relatively high speeds. This patch fixes that bug and eliminates an assert that is no longer needed. Once the cards are capable of full OFDM speeds, the 24 Mbs rate will be changed to 54 Mbs. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/ieee80211/softmac/ieee80211softmac_module.c13
-rw-r--r--net/ieee80211/softmac/ieee80211softmac_wx.c11
2 files changed, 6 insertions, 18 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_module.c b/net/ieee80211/softmac/ieee80211softmac_module.c
index 256207b71dc9..770a068b298b 100644
--- a/net/ieee80211/softmac/ieee80211softmac_module.c
+++ b/net/ieee80211/softmac/ieee80211softmac_module.c
@@ -265,17 +265,10 @@ void ieee80211softmac_init_bss(struct ieee80211softmac_device *mac)
265 /* Change the default txrate to the highest possible value. 265 /* Change the default txrate to the highest possible value.
266 * The txrate machine will lower it, if it is too high. 266 * The txrate machine will lower it, if it is too high.
267 */ 267 */
268 /* FIXME: We don't correctly handle backing down to lower 268 if (ieee->modulation & IEEE80211_OFDM_MODULATION)
269 rates, so 801.11g devices start off at 11M for now. People 269 txrates->user_rate = IEEE80211_OFDM_RATE_24MB;
270 can manually change it if they really need to, but 11M is 270 else
271 more reliable. Note similar logic in
272 ieee80211softmac_wx_set_rate() */
273 if (ieee->modulation & IEEE80211_CCK_MODULATION) {
274 txrates->user_rate = IEEE80211_CCK_RATE_11MB; 271 txrates->user_rate = IEEE80211_CCK_RATE_11MB;
275 } else if (ieee->modulation & IEEE80211_OFDM_MODULATION) {
276 txrates->user_rate = IEEE80211_OFDM_RATE_54MB;
277 } else
278 assert(0);
279 272
280 txrates->default_rate = IEEE80211_CCK_RATE_1MB; 273 txrates->default_rate = IEEE80211_CCK_RATE_1MB;
281 change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT; 274 change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT;
diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c
index fa2f7da606a9..89c83fa9aacb 100644
--- a/net/ieee80211/softmac/ieee80211softmac_wx.c
+++ b/net/ieee80211/softmac/ieee80211softmac_wx.c
@@ -177,15 +177,10 @@ ieee80211softmac_wx_set_rate(struct net_device *net_dev,
177 int err = -EINVAL; 177 int err = -EINVAL;
178 178
179 if (in_rate == -1) { 179 if (in_rate == -1) {
180 /* FIXME: We don't correctly handle backing down to lower 180 if (ieee->modulation & IEEE80211_OFDM_MODULATION)
181 rates, so 801.11g devices start off at 11M for now. People 181 in_rate = 24000000;
182 can manually change it if they really need to, but 11M is
183 more reliable. Note similar logic in
184 ieee80211softmac_wx_set_rate() */
185 if (ieee->modulation & IEEE80211_CCK_MODULATION)
186 in_rate = 11000000;
187 else 182 else
188 in_rate = 54000000; 183 in_rate = 11000000;
189 } 184 }
190 185
191 switch (in_rate) { 186 switch (in_rate) {