diff options
Diffstat (limited to 'drivers')
-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); |