From 6d610340da76433b841f752f4baf85f44cd88dd8 Mon Sep 17 00:00:00 2001 From: Kalle Valo Date: Tue, 5 Jan 2010 20:17:03 +0200 Subject: [PATCH] --- yaml --- r: 183585 b: refs/heads/master c: dc52f0a8e50303eb67ff8856cd8d1b461462ceec h: refs/heads/master i: 183583: 33c973bd28393d9ce1a6537a85a6e143840e5d18 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/wl12xx/wl1251_cmd.c | 3 ++- trunk/drivers/net/wireless/wl12xx/wl1251_cmd.h | 5 +++++ trunk/drivers/net/wireless/wl12xx/wl1251_main.c | 3 ++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index dc8a2eec45b5..6e8e51dacc24 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e477c56e852c4c6db1f7665c642c9f45f76616a9 +refs/heads/master: dc52f0a8e50303eb67ff8856cd8d1b461462ceec diff --git a/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.c b/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.c index fcbfbd7585f8..0320b478bb3f 100644 --- a/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.c +++ b/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.c @@ -412,6 +412,7 @@ int wl1251_cmd_template_set(struct wl1251 *wl, u16 cmd_id, } int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, + struct ieee80211_channel *channels[], unsigned int n_channels, unsigned int n_probes) { struct wl1251_cmd_scan *cmd; @@ -442,7 +443,7 @@ int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, memset(&cmd->channels[i].bssid_msb, 0xff, 2); cmd->channels[i].early_termination = 0; cmd->channels[i].tx_power_att = 0; - cmd->channels[i].channel = i + 1; + cmd->channels[i].channel = channels[i]->hw_value; } cmd->params.ssid_len = ssid_len; diff --git a/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.h b/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.h index 63ae3193f7c6..4ad67cae94d2 100644 --- a/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.h +++ b/trunk/drivers/net/wireless/wl12xx/wl1251_cmd.h @@ -27,6 +27,8 @@ #include "wl1251.h" +#include + struct acx_header; 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, int wl1251_cmd_template_set(struct wl1251 *wl, u16 cmd_id, void *buf, size_t buf_len); int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len, + struct ieee80211_channel *channels[], unsigned int n_channels, unsigned int n_probes); int wl1251_cmd_trigger_scan_to(struct wl1251 *wl, u32 timeout); @@ -169,6 +172,8 @@ struct cmd_read_write_memory { #define WL1251_SCAN_MIN_DURATION 30000 #define WL1251_SCAN_MAX_DURATION 60000 +#define WL1251_SCAN_NUM_PROBES 3 + struct wl1251_scan_parameters { u32 rx_config_options; u32 rx_filter_options; diff --git a/trunk/drivers/net/wireless/wl12xx/wl1251_main.c b/trunk/drivers/net/wireless/wl12xx/wl1251_main.c index 1db97229af47..4728983b4383 100644 --- a/trunk/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/trunk/drivers/net/wireless/wl12xx/wl1251_main.c @@ -878,7 +878,8 @@ static int wl1251_op_hw_scan(struct ieee80211_hw *hw, wl->scanning = true; - ret = wl1251_cmd_scan(wl, ssid, ssid_len, 13, 3); + ret = wl1251_cmd_scan(wl, ssid, ssid_len, req->channels, + req->n_channels, WL1251_SCAN_NUM_PROBES); if (ret < 0) { wl->scanning = false; goto out_sleep;