diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00config.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00config.c | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c index 20231e0c53fa..9fba485a40ac 100644 --- a/drivers/net/wireless/rt2x00/rt2x00config.c +++ b/drivers/net/wireless/rt2x00/rt2x00config.c | |||
@@ -152,7 +152,7 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, | |||
152 | struct ieee80211_conf *conf, const int force_config) | 152 | struct ieee80211_conf *conf, const int force_config) |
153 | { | 153 | { |
154 | struct rt2x00lib_conf libconf; | 154 | struct rt2x00lib_conf libconf; |
155 | struct ieee80211_hw_mode *mode; | 155 | struct ieee80211_supported_band *band; |
156 | struct ieee80211_rate *rate; | 156 | struct ieee80211_rate *rate; |
157 | struct antenna_setup *default_ant = &rt2x00dev->default_ant; | 157 | struct antenna_setup *default_ant = &rt2x00dev->default_ant; |
158 | struct antenna_setup *active_ant = &rt2x00dev->link.ant.active; | 158 | struct antenna_setup *active_ant = &rt2x00dev->link.ant.active; |
@@ -172,9 +172,9 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, | |||
172 | * Check which configuration options have been | 172 | * Check which configuration options have been |
173 | * updated and should be send to the device. | 173 | * updated and should be send to the device. |
174 | */ | 174 | */ |
175 | if (rt2x00dev->rx_status.phymode != conf->phymode) | 175 | if (rt2x00dev->rx_status.band != conf->channel->band) |
176 | flags |= CONFIG_UPDATE_PHYMODE; | 176 | flags |= CONFIG_UPDATE_PHYMODE; |
177 | if (rt2x00dev->rx_status.channel != conf->channel) | 177 | if (rt2x00dev->rx_status.freq != conf->channel->center_freq) |
178 | flags |= CONFIG_UPDATE_CHANNEL; | 178 | flags |= CONFIG_UPDATE_CHANNEL; |
179 | if (rt2x00dev->tx_power != conf->power_level) | 179 | if (rt2x00dev->tx_power != conf->power_level) |
180 | flags |= CONFIG_UPDATE_TXPOWER; | 180 | flags |= CONFIG_UPDATE_TXPOWER; |
@@ -229,33 +229,31 @@ config: | |||
229 | memset(&libconf, 0, sizeof(libconf)); | 229 | memset(&libconf, 0, sizeof(libconf)); |
230 | 230 | ||
231 | if (flags & CONFIG_UPDATE_PHYMODE) { | 231 | if (flags & CONFIG_UPDATE_PHYMODE) { |
232 | switch (conf->phymode) { | 232 | switch (conf->channel->band) { |
233 | case MODE_IEEE80211A: | 233 | case IEEE80211_BAND_5GHZ: |
234 | libconf.phymode = HWMODE_A; | 234 | libconf.phymode = HWMODE_A; |
235 | break; | 235 | break; |
236 | case MODE_IEEE80211B: | 236 | case IEEE80211_BAND_2GHZ: |
237 | libconf.phymode = HWMODE_B; | 237 | /* Uh oh. what about B? */ |
238 | break; | ||
239 | case MODE_IEEE80211G: | ||
240 | libconf.phymode = HWMODE_G; | 238 | libconf.phymode = HWMODE_G; |
241 | break; | 239 | break; |
242 | default: | 240 | default: |
243 | ERROR(rt2x00dev, | 241 | ERROR(rt2x00dev, |
244 | "Attempt to configure unsupported mode (%d)" | 242 | "Attempt to configure unsupported mode (%d)" |
245 | "Defaulting to 802.11b", conf->phymode); | 243 | "Defaulting to 802.11b", conf->channel->band); |
246 | libconf.phymode = HWMODE_B; | 244 | libconf.phymode = HWMODE_B; |
247 | } | 245 | } |
248 | 246 | ||
249 | mode = &rt2x00dev->hwmodes[libconf.phymode]; | 247 | band = &rt2x00dev->bands[conf->channel->band]; |
250 | rate = &mode->rates[mode->num_rates - 1]; | 248 | rate = &band->bitrates[band->n_bitrates - 1]; |
251 | 249 | ||
252 | libconf.basic_rates = | 250 | libconf.basic_rates = |
253 | DEVICE_GET_RATE_FIELD(rate->val, RATEMASK) & DEV_BASIC_RATEMASK; | 251 | DEVICE_GET_RATE_FIELD(rate->hw_value, RATEMASK) & DEV_BASIC_RATEMASK; |
254 | } | 252 | } |
255 | 253 | ||
256 | if (flags & CONFIG_UPDATE_CHANNEL) { | 254 | if (flags & CONFIG_UPDATE_CHANNEL) { |
257 | memcpy(&libconf.rf, | 255 | memcpy(&libconf.rf, |
258 | &rt2x00dev->spec.channels[conf->channel_val], | 256 | &rt2x00dev->spec.channels[conf->channel->hw_value], |
259 | sizeof(libconf.rf)); | 257 | sizeof(libconf.rf)); |
260 | } | 258 | } |
261 | 259 | ||
@@ -301,12 +299,11 @@ config: | |||
301 | rt2x00lib_reset_link_tuner(rt2x00dev); | 299 | rt2x00lib_reset_link_tuner(rt2x00dev); |
302 | 300 | ||
303 | if (flags & CONFIG_UPDATE_PHYMODE) { | 301 | if (flags & CONFIG_UPDATE_PHYMODE) { |
304 | rt2x00dev->curr_hwmode = libconf.phymode; | 302 | rt2x00dev->curr_band = conf->channel->band; |
305 | rt2x00dev->rx_status.phymode = conf->phymode; | 303 | rt2x00dev->rx_status.band = conf->channel->band; |
306 | } | 304 | } |
307 | 305 | ||
308 | rt2x00dev->rx_status.freq = conf->freq; | 306 | rt2x00dev->rx_status.freq = conf->channel->center_freq; |
309 | rt2x00dev->rx_status.channel = conf->channel; | ||
310 | rt2x00dev->tx_power = conf->power_level; | 307 | rt2x00dev->tx_power = conf->power_level; |
311 | 308 | ||
312 | if (flags & CONFIG_UPDATE_ANTENNA) { | 309 | if (flags & CONFIG_UPDATE_ANTENNA) { |