diff options
| -rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_main.h | 24 | ||||
| -rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_radio.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 2 |
3 files changed, 3 insertions, 30 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.h b/drivers/net/wireless/bcm43xx/bcm43xx_main.h index 30a202b258b5..116493671f88 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.h | |||
| @@ -112,30 +112,6 @@ int bcm43xx_channel_to_freq(struct bcm43xx_private *bcm, | |||
| 112 | return bcm43xx_channel_to_freq_bg(channel); | 112 | return bcm43xx_channel_to_freq_bg(channel); |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | /* Lightweight function to check if a channel number is valid. | ||
| 116 | * Note that this does _NOT_ check for geographical restrictions! | ||
| 117 | */ | ||
| 118 | static inline | ||
| 119 | int bcm43xx_is_valid_channel_a(u8 channel) | ||
| 120 | { | ||
| 121 | return (channel >= IEEE80211_52GHZ_MIN_CHANNEL | ||
| 122 | && channel <= IEEE80211_52GHZ_MAX_CHANNEL); | ||
| 123 | } | ||
| 124 | static inline | ||
| 125 | int bcm43xx_is_valid_channel_bg(u8 channel) | ||
| 126 | { | ||
| 127 | return (channel >= IEEE80211_24GHZ_MIN_CHANNEL | ||
| 128 | && channel <= IEEE80211_24GHZ_MAX_CHANNEL); | ||
| 129 | } | ||
| 130 | static inline | ||
| 131 | int bcm43xx_is_valid_channel(struct bcm43xx_private *bcm, | ||
| 132 | u8 channel) | ||
| 133 | { | ||
| 134 | if (bcm43xx_current_phy(bcm)->type == BCM43xx_PHYTYPE_A) | ||
| 135 | return bcm43xx_is_valid_channel_a(channel); | ||
| 136 | return bcm43xx_is_valid_channel_bg(channel); | ||
| 137 | } | ||
| 138 | |||
| 139 | void bcm43xx_tsf_read(struct bcm43xx_private *bcm, u64 *tsf); | 115 | void bcm43xx_tsf_read(struct bcm43xx_private *bcm, u64 *tsf); |
| 140 | void bcm43xx_tsf_write(struct bcm43xx_private *bcm, u64 tsf); | 116 | void bcm43xx_tsf_write(struct bcm43xx_private *bcm, u64 tsf); |
| 141 | 117 | ||
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_radio.c b/drivers/net/wireless/bcm43xx/bcm43xx_radio.c index af5c0bff1696..bb9c484d7e19 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_radio.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_radio.c | |||
| @@ -1594,11 +1594,11 @@ int bcm43xx_radio_selectchannel(struct bcm43xx_private *bcm, | |||
| 1594 | u16 r8, tmp; | 1594 | u16 r8, tmp; |
| 1595 | u16 freq; | 1595 | u16 freq; |
| 1596 | 1596 | ||
| 1597 | if (!ieee80211_is_valid_channel(bcm->ieee, channel)) | ||
| 1598 | return -EINVAL; | ||
| 1597 | if ((radio->manufact == 0x17F) && | 1599 | if ((radio->manufact == 0x17F) && |
| 1598 | (radio->version == 0x2060) && | 1600 | (radio->version == 0x2060) && |
| 1599 | (radio->revision == 1)) { | 1601 | (radio->revision == 1)) { |
| 1600 | if (channel > 200) | ||
| 1601 | return -EINVAL; | ||
| 1602 | freq = channel2freq_a(channel); | 1602 | freq = channel2freq_a(channel); |
| 1603 | 1603 | ||
| 1604 | r8 = bcm43xx_radio_read16(bcm, 0x0008); | 1604 | r8 = bcm43xx_radio_read16(bcm, 0x0008); |
| @@ -1651,9 +1651,6 @@ int bcm43xx_radio_selectchannel(struct bcm43xx_private *bcm, | |||
| 1651 | TODO(); //TODO: TSSI2dbm workaround | 1651 | TODO(); //TODO: TSSI2dbm workaround |
| 1652 | bcm43xx_phy_xmitpower(bcm);//FIXME correct? | 1652 | bcm43xx_phy_xmitpower(bcm);//FIXME correct? |
| 1653 | } else { | 1653 | } else { |
| 1654 | if ((channel < 1) || (channel > 14)) | ||
| 1655 | return -EINVAL; | ||
| 1656 | |||
| 1657 | if (synthetic_pu_workaround) | 1654 | if (synthetic_pu_workaround) |
| 1658 | bcm43xx_synth_pu_workaround(bcm, channel); | 1655 | bcm43xx_synth_pu_workaround(bcm, channel); |
| 1659 | 1656 | ||
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c index c35cb3a0777e..5c36e29efff7 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c | |||
| @@ -119,7 +119,7 @@ static int bcm43xx_wx_set_channelfreq(struct net_device *net_dev, | |||
| 119 | channel = bcm43xx_freq_to_channel(bcm, data->freq.m); | 119 | channel = bcm43xx_freq_to_channel(bcm, data->freq.m); |
| 120 | freq = data->freq.m; | 120 | freq = data->freq.m; |
| 121 | } | 121 | } |
| 122 | if (!bcm43xx_is_valid_channel(bcm, channel)) | 122 | if (!ieee80211_is_valid_channel(bcm->ieee, channel)) |
| 123 | goto out_unlock; | 123 | goto out_unlock; |
| 124 | if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED) { | 124 | if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED) { |
| 125 | //ieee80211softmac_disassoc(softmac, $REASON); | 125 | //ieee80211softmac_disassoc(softmac, $REASON); |
