diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ieee80211/ieee80211_wx.c | 4 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_module.c | 17 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_priv.h | 2 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_wx.c | 12 |
4 files changed, 22 insertions, 13 deletions
diff --git a/net/ieee80211/ieee80211_wx.c b/net/ieee80211/ieee80211_wx.c index af7f9bbfd18a..b885fd189403 100644 --- a/net/ieee80211/ieee80211_wx.c +++ b/net/ieee80211/ieee80211_wx.c | |||
@@ -42,7 +42,7 @@ static const char *ieee80211_modes[] = { | |||
42 | }; | 42 | }; |
43 | 43 | ||
44 | #define MAX_CUSTOM_LEN 64 | 44 | #define MAX_CUSTOM_LEN 64 |
45 | static char *ipw2100_translate_scan(struct ieee80211_device *ieee, | 45 | static char *ieee80211_translate_scan(struct ieee80211_device *ieee, |
46 | char *start, char *stop, | 46 | char *start, char *stop, |
47 | struct ieee80211_network *network) | 47 | struct ieee80211_network *network) |
48 | { | 48 | { |
@@ -274,7 +274,7 @@ int ieee80211_wx_get_scan(struct ieee80211_device *ieee, | |||
274 | 274 | ||
275 | if (ieee->scan_age == 0 || | 275 | if (ieee->scan_age == 0 || |
276 | time_after(network->last_scanned + ieee->scan_age, jiffies)) | 276 | time_after(network->last_scanned + ieee->scan_age, jiffies)) |
277 | ev = ipw2100_translate_scan(ieee, ev, stop, network); | 277 | ev = ieee80211_translate_scan(ieee, ev, stop, network); |
278 | else | 278 | else |
279 | IEEE80211_DEBUG_SCAN("Not showing network '%s (" | 279 | IEEE80211_DEBUG_SCAN("Not showing network '%s (" |
280 | MAC_FMT ")' due to age (%dms).\n", | 280 | MAC_FMT ")' due to age (%dms).\n", |
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_priv.h b/net/ieee80211/softmac/ieee80211softmac_priv.h index 9ba7dbd161eb..65d9816c8ecc 100644 --- a/net/ieee80211/softmac/ieee80211softmac_priv.h +++ b/net/ieee80211/softmac/ieee80211softmac_priv.h | |||
@@ -167,7 +167,7 @@ static inline int ieee80211softmac_scan_sanity_check(struct ieee80211softmac_dev | |||
167 | ) || ieee80211softmac_scan_handlers_check_self(sm); | 167 | ) || ieee80211softmac_scan_handlers_check_self(sm); |
168 | } | 168 | } |
169 | 169 | ||
170 | #define IEEE80211SOFTMAC_PROBE_DELAY HZ/2 | 170 | #define IEEE80211SOFTMAC_PROBE_DELAY HZ/50 |
171 | #define IEEE80211SOFTMAC_WORKQUEUE_NAME_LEN (17 + IFNAMSIZ) | 171 | #define IEEE80211SOFTMAC_WORKQUEUE_NAME_LEN (17 + IFNAMSIZ) |
172 | 172 | ||
173 | struct ieee80211softmac_network { | 173 | struct ieee80211softmac_network { |
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) { |