diff options
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index 89e076fa1039..0b2c774f5ee7 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -8562,9 +8562,26 @@ static int ipw_wx_get_freq(struct net_device *dev, | |||
8562 | * configured CHANNEL then return that; otherwise return ANY */ | 8562 | * configured CHANNEL then return that; otherwise return ANY */ |
8563 | mutex_lock(&priv->mutex); | 8563 | mutex_lock(&priv->mutex); |
8564 | if (priv->config & CFG_STATIC_CHANNEL || | 8564 | if (priv->config & CFG_STATIC_CHANNEL || |
8565 | priv->status & (STATUS_ASSOCIATING | STATUS_ASSOCIATED)) | 8565 | priv->status & (STATUS_ASSOCIATING | STATUS_ASSOCIATED)) { |
8566 | wrqu->freq.m = priv->channel; | 8566 | int i; |
8567 | else | 8567 | |
8568 | i = ieee80211_channel_to_index(priv->ieee, priv->channel); | ||
8569 | BUG_ON(i == -1); | ||
8570 | wrqu->freq.e = 1; | ||
8571 | |||
8572 | switch (ieee80211_is_valid_channel(priv->ieee, priv->channel)) { | ||
8573 | case IEEE80211_52GHZ_BAND: | ||
8574 | wrqu->freq.m = priv->ieee->geo.a[i].freq * 100000; | ||
8575 | break; | ||
8576 | |||
8577 | case IEEE80211_24GHZ_BAND: | ||
8578 | wrqu->freq.m = priv->ieee->geo.bg[i].freq * 100000; | ||
8579 | break; | ||
8580 | |||
8581 | default: | ||
8582 | BUG(); | ||
8583 | } | ||
8584 | } else | ||
8568 | wrqu->freq.m = 0; | 8585 | wrqu->freq.m = 0; |
8569 | 8586 | ||
8570 | mutex_unlock(&priv->mutex); | 8587 | mutex_unlock(&priv->mutex); |