Skip to content

Commit

Permalink
wl1251: use mac80211 provided channel parameters in scanning
Browse files Browse the repository at this point in the history
The number of channels to be used in scan was hard coded in wl1251. The
proper way is to use the channels array provided by mac80211.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Kalle Valo authored and John W. Linville committed Jan 12, 2010
1 parent e477c56 commit dc52f0a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 2 deletions.
3 changes: 2 additions & 1 deletion drivers/net/wireless/wl12xx/wl1251_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
5 changes: 5 additions & 0 deletions drivers/net/wireless/wl12xx/wl1251_cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

#include "wl1251.h"

#include <net/cfg80211.h>

struct acx_header;

int wl1251_cmd_send(struct wl1251 *wl, u16 type, void *buf, size_t buf_len);
Expand All @@ -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);

Expand Down Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion drivers/net/wireless/wl12xx/wl1251_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit dc52f0a

Please sign in to comment.