diff options
Diffstat (limited to 'net/ieee80211/softmac')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_module.c | 17 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_wx.c | 12 |
2 files changed, 19 insertions, 10 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_module.c b/net/ieee80211/softmac/ieee80211softmac_module.c index 6f99f781bff8..60f06a31f0d1 100644 --- a/net/ieee80211/softmac/ieee80211softmac_module.c +++ b/net/ieee80211/softmac/ieee80211softmac_module.c | |||
@@ -183,16 +183,21 @@ void ieee80211softmac_start(struct net_device *dev) | |||
183 | */ | 183 | */ |
184 | if (mac->txrates_change) | 184 | if (mac->txrates_change) |
185 | oldrates = mac->txrates; | 185 | oldrates = mac->txrates; |
186 | if (ieee->modulation & IEEE80211_OFDM_MODULATION) { | 186 | /* FIXME: We don't correctly handle backing down to lower |
187 | mac->txrates.default_rate = IEEE80211_OFDM_RATE_54MB; | 187 | rates, so 801.11g devices start off at 11M for now. People |
188 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT; | 188 | can manually change it if they really need to, but 11M is |
189 | mac->txrates.default_fallback = IEEE80211_OFDM_RATE_24MB; | 189 | more reliable. Note similar logic in |
190 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK; | 190 | ieee80211softmac_wx_set_rate() */ |
191 | } else if (ieee->modulation & IEEE80211_CCK_MODULATION) { | 191 | if (ieee->modulation & IEEE80211_CCK_MODULATION) { |
192 | mac->txrates.default_rate = IEEE80211_CCK_RATE_11MB; | 192 | mac->txrates.default_rate = IEEE80211_CCK_RATE_11MB; |
193 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT; | 193 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT; |
194 | mac->txrates.default_fallback = IEEE80211_CCK_RATE_5MB; | 194 | mac->txrates.default_fallback = IEEE80211_CCK_RATE_5MB; |
195 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK; | 195 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK; |
196 | } else if (ieee->modulation & IEEE80211_OFDM_MODULATION) { | ||
197 | mac->txrates.default_rate = IEEE80211_OFDM_RATE_54MB; | ||
198 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT; | ||
199 | mac->txrates.default_fallback = IEEE80211_OFDM_RATE_24MB; | ||
200 | change |= IEEE80211SOFTMAC_TXRATECHG_DEFAULT_FBACK; | ||
196 | } else | 201 | } else |
197 | assert(0); | 202 | assert(0); |
198 | if (mac->txrates_change) | 203 | if (mac->txrates_change) |
diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c index e1a9bc6d36ff..b559aa9b5507 100644 --- a/net/ieee80211/softmac/ieee80211softmac_wx.c +++ b/net/ieee80211/softmac/ieee80211softmac_wx.c | |||
@@ -135,11 +135,15 @@ ieee80211softmac_wx_set_rate(struct net_device *net_dev, | |||
135 | int err = -EINVAL; | 135 | int err = -EINVAL; |
136 | 136 | ||
137 | if (in_rate == -1) { | 137 | if (in_rate == -1) { |
138 | /* automatic detect */ | 138 | /* FIXME: We don't correctly handle backing down to lower |
139 | if (ieee->modulation & IEEE80211_OFDM_MODULATION) | 139 | rates, so 801.11g devices start off at 11M for now. People |
140 | in_rate = 54000000; | 140 | can manually change it if they really need to, but 11M is |
141 | else | 141 | more reliable. Note similar logic in |
142 | ieee80211softmac_wx_set_rate() */ | ||
143 | if (ieee->modulation & IEEE80211_CCK_MODULATION) | ||
142 | in_rate = 11000000; | 144 | in_rate = 11000000; |
145 | else | ||
146 | in_rate = 54000000; | ||
143 | } | 147 | } |
144 | 148 | ||
145 | switch (in_rate) { | 149 | switch (in_rate) { |