diff options
Diffstat (limited to 'drivers/net/wireless/zd1211rw')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_ieee80211.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.c | 17 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.h | 6 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_netdev.c | 13 |
4 files changed, 6 insertions, 33 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_ieee80211.c b/drivers/net/wireless/zd1211rw/zd_ieee80211.c index 66905f7b61ff..1b215a099745 100644 --- a/drivers/net/wireless/zd1211rw/zd_ieee80211.c +++ b/drivers/net/wireless/zd1211rw/zd_ieee80211.c | |||
@@ -133,9 +133,6 @@ int zd_find_channel(u8 *channel, const struct iw_freq *freq) | |||
133 | int i, r; | 133 | int i, r; |
134 | u32 mhz; | 134 | u32 mhz; |
135 | 135 | ||
136 | if (!(freq->flags & IW_FREQ_FIXED)) | ||
137 | return 0; | ||
138 | |||
139 | if (freq->m < 1000) { | 136 | if (freq->m < 1000) { |
140 | if (freq->m > NUM_CHANNELS || freq->m == 0) | 137 | if (freq->m > NUM_CHANNELS || freq->m == 0) |
141 | return -EINVAL; | 138 | return -EINVAL; |
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index e5fedf968c19..7845b6dac832 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c | |||
@@ -317,21 +317,12 @@ int zd_mac_request_channel(struct zd_mac *mac, u8 channel) | |||
317 | return 0; | 317 | return 0; |
318 | } | 318 | } |
319 | 319 | ||
320 | int zd_mac_get_channel(struct zd_mac *mac, u8 *channel, u8 *flags) | 320 | u8 zd_mac_get_channel(struct zd_mac *mac) |
321 | { | 321 | { |
322 | struct ieee80211_device *ieee = zd_mac_to_ieee80211(mac); | 322 | u8 channel = zd_chip_get_channel(&mac->chip); |
323 | 323 | ||
324 | *channel = zd_chip_get_channel(&mac->chip); | 324 | dev_dbg_f(zd_mac_dev(mac), "channel %u\n", channel); |
325 | if (ieee->iw_mode != IW_MODE_INFRA) { | 325 | return channel; |
326 | spin_lock_irq(&mac->lock); | ||
327 | *flags = *channel == mac->requested_channel ? | ||
328 | MAC_FIXED_CHANNEL : 0; | ||
329 | spin_unlock(&mac->lock); | ||
330 | } else { | ||
331 | *flags = 0; | ||
332 | } | ||
333 | dev_dbg_f(zd_mac_dev(mac), "channel %u flags %u\n", *channel, *flags); | ||
334 | return 0; | ||
335 | } | 326 | } |
336 | 327 | ||
337 | /* If wrong rate is given, we are falling back to the slowest rate: 1MBit/s */ | 328 | /* If wrong rate is given, we are falling back to the slowest rate: 1MBit/s */ |
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.h b/drivers/net/wireless/zd1211rw/zd_mac.h index e4dd40a6fec3..3feb292651df 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.h +++ b/drivers/net/wireless/zd1211rw/zd_mac.h | |||
@@ -116,10 +116,6 @@ struct rx_status { | |||
116 | #define ZD_RX_CRC16_ERROR 0x40 | 116 | #define ZD_RX_CRC16_ERROR 0x40 |
117 | #define ZD_RX_ERROR 0x80 | 117 | #define ZD_RX_ERROR 0x80 |
118 | 118 | ||
119 | enum mac_flags { | ||
120 | MAC_FIXED_CHANNEL = 0x01, | ||
121 | }; | ||
122 | |||
123 | struct housekeeping { | 119 | struct housekeeping { |
124 | struct work_struct link_led_work; | 120 | struct work_struct link_led_work; |
125 | }; | 121 | }; |
@@ -180,7 +176,7 @@ int zd_mac_set_regdomain(struct zd_mac *zd_mac, u8 regdomain); | |||
180 | u8 zd_mac_get_regdomain(struct zd_mac *zd_mac); | 176 | u8 zd_mac_get_regdomain(struct zd_mac *zd_mac); |
181 | 177 | ||
182 | int zd_mac_request_channel(struct zd_mac *mac, u8 channel); | 178 | int zd_mac_request_channel(struct zd_mac *mac, u8 channel); |
183 | int zd_mac_get_channel(struct zd_mac *mac, u8 *channel, u8 *flags); | 179 | u8 zd_mac_get_channel(struct zd_mac *mac); |
184 | 180 | ||
185 | int zd_mac_set_mode(struct zd_mac *mac, u32 mode); | 181 | int zd_mac_set_mode(struct zd_mac *mac, u32 mode); |
186 | int zd_mac_get_mode(struct zd_mac *mac, u32 *mode); | 182 | int zd_mac_get_mode(struct zd_mac *mac, u32 *mode); |
diff --git a/drivers/net/wireless/zd1211rw/zd_netdev.c b/drivers/net/wireless/zd1211rw/zd_netdev.c index af3a7b36d078..60f1b0f6d45b 100644 --- a/drivers/net/wireless/zd1211rw/zd_netdev.c +++ b/drivers/net/wireless/zd1211rw/zd_netdev.c | |||
@@ -107,21 +107,10 @@ static int iw_get_freq(struct net_device *netdev, | |||
107 | struct iw_request_info *info, | 107 | struct iw_request_info *info, |
108 | union iwreq_data *req, char *extra) | 108 | union iwreq_data *req, char *extra) |
109 | { | 109 | { |
110 | int r; | ||
111 | struct zd_mac *mac = zd_netdev_mac(netdev); | 110 | struct zd_mac *mac = zd_netdev_mac(netdev); |
112 | struct iw_freq *freq = &req->freq; | 111 | struct iw_freq *freq = &req->freq; |
113 | u8 channel; | ||
114 | u8 flags; | ||
115 | |||
116 | r = zd_mac_get_channel(mac, &channel, &flags); | ||
117 | if (r) | ||
118 | return r; | ||
119 | 112 | ||
120 | freq->flags = (flags & MAC_FIXED_CHANNEL) ? | 113 | return zd_channel_to_freq(freq, zd_mac_get_channel(mac)); |
121 | IW_FREQ_FIXED : IW_FREQ_AUTO; | ||
122 | dev_dbg_f(zd_mac_dev(mac), "channel %s\n", | ||
123 | (flags & MAC_FIXED_CHANNEL) ? "fixed" : "auto"); | ||
124 | return zd_channel_to_freq(freq, channel); | ||
125 | } | 114 | } |
126 | 115 | ||
127 | static int iw_set_mode(struct net_device *netdev, | 116 | static int iw_set_mode(struct net_device *netdev, |