diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1251_cmd.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1251_cmd.h | 5 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1251_main.c | 3 |
3 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_cmd.c b/drivers/net/wireless/wl12xx/wl1251_cmd.c index fcbfbd7585f..0320b478bb3 100644 --- a/drivers/net/wireless/wl12xx/wl1251_cmd.c +++ b/drivers/net/wireless/wl12xx/wl1251_cmd.c | |||
@@ -412,6 +412,7 @@ out: | |||
412 | } | 412 | } |
413 | 413 | ||
414 | int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, | 414 | int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, |
415 | struct ieee80211_channel *channels[], | ||
415 | unsigned int n_channels, unsigned int n_probes) | 416 | unsigned int n_channels, unsigned int n_probes) |
416 | { | 417 | { |
417 | struct wl1251_cmd_scan *cmd; | 418 | struct wl1251_cmd_scan *cmd; |
@@ -442,7 +443,7 @@ int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, | |||
442 | memset(&cmd->channels[i].bssid_msb, 0xff, 2); | 443 | memset(&cmd->channels[i].bssid_msb, 0xff, 2); |
443 | cmd->channels[i].early_termination = 0; | 444 | cmd->channels[i].early_termination = 0; |
444 | cmd->channels[i].tx_power_att = 0; | 445 | cmd->channels[i].tx_power_att = 0; |
445 | cmd->channels[i].channel = i + 1; | 446 | cmd->channels[i].channel = channels[i]->hw_value; |
446 | } | 447 | } |
447 | 448 | ||
448 | cmd->params.ssid_len = ssid_len; | 449 | cmd->params.ssid_len = ssid_len; |
diff --git a/drivers/net/wireless/wl12xx/wl1251_cmd.h b/drivers/net/wireless/wl12xx/wl1251_cmd.h index 63ae3193f7c..4ad67cae94d 100644 --- a/drivers/net/wireless/wl12xx/wl1251_cmd.h +++ b/drivers/net/wireless/wl12xx/wl1251_cmd.h | |||
@@ -27,6 +27,8 @@ | |||
27 | 27 | ||
28 | #include "wl1251.h" | 28 | #include "wl1251.h" |
29 | 29 | ||
30 | #include <net/cfg80211.h> | ||
31 | |||
30 | struct acx_header; | 32 | struct acx_header; |
31 | 33 | ||
32 | int wl1251_cmd_send(struct wl1251 *wl, u16 type, void *buf, size_t buf_len); | 34 | int wl1251_cmd_send(struct wl1251 *wl, u16 type, void *buf, size_t buf_len); |
@@ -44,6 +46,7 @@ int wl1251_cmd_read_memory(struct wl1251 *wl, u32 addr, void *answer, | |||
44 | int wl1251_cmd_template_set(struct wl1251 *wl, u16 cmd_id, | 46 | int wl1251_cmd_template_set(struct wl1251 *wl, u16 cmd_id, |
45 | void *buf, size_t buf_len); | 47 | void *buf, size_t buf_len); |
46 | int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, | 48 | int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, |
49 | struct ieee80211_channel *channels[], | ||
47 | unsigned int n_channels, unsigned int n_probes); | 50 | unsigned int n_channels, unsigned int n_probes); |
48 | int wl1251_cmd_trigger_scan_to(struct wl1251 *wl, u32 timeout); | 51 | int wl1251_cmd_trigger_scan_to(struct wl1251 *wl, u32 timeout); |
49 | 52 | ||
@@ -169,6 +172,8 @@ struct cmd_read_write_memory { | |||
169 | #define WL1251_SCAN_MIN_DURATION 30000 | 172 | #define WL1251_SCAN_MIN_DURATION 30000 |
170 | #define WL1251_SCAN_MAX_DURATION 60000 | 173 | #define WL1251_SCAN_MAX_DURATION 60000 |
171 | 174 | ||
175 | #define WL1251_SCAN_NUM_PROBES 3 | ||
176 | |||
172 | struct wl1251_scan_parameters { | 177 | struct wl1251_scan_parameters { |
173 | u32 rx_config_options; | 178 | u32 rx_config_options; |
174 | u32 rx_filter_options; | 179 | u32 rx_filter_options; |
diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index 1db97229af4..4728983b438 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c | |||
@@ -878,7 +878,8 @@ static int wl1251_op_hw_scan(struct ieee80211_hw *hw, | |||
878 | 878 | ||
879 | wl->scanning = true; | 879 | wl->scanning = true; |
880 | 880 | ||
881 | ret = wl1251_cmd_scan(wl, ssid, ssid_len, 13, 3); | 881 | ret = wl1251_cmd_scan(wl, ssid, ssid_len, req->channels, |
882 | req->n_channels, WL1251_SCAN_NUM_PROBES); | ||
882 | if (ret < 0) { | 883 | if (ret < 0) { |
883 | wl->scanning = false; | 884 | wl->scanning = false; |
884 | goto out_sleep; | 885 | goto out_sleep; |