Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 57624
b: refs/heads/master
c: 2be9219
h: refs/heads/master
v: v3
  • Loading branch information
Marcelo Tosatti authored and John W. Linville committed Jun 11, 2007
1 parent 7d9db2e commit 6951feb
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bf68dac89b6502f8577a8be1b4fc06cb641ae1f3
refs/heads/master: 2be9219680e8abfa79da74e8d827ecf5c41be76d
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/libertas/debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ static ssize_t libertas_setuserscan(struct file *file,
libertas_parse_probes(buf, count, scan_cfg);
libertas_parse_type(buf, count, scan_cfg);

wlan_scan_networks(priv, scan_cfg);
wlan_scan_networks(priv, scan_cfg, 1);
wait_event_interruptible(priv->adapter->cmd_pending,
!priv->adapter->nr_cmd_pending);

Expand Down
28 changes: 18 additions & 10 deletions trunk/drivers/net/wireless/libertas/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -614,7 +614,8 @@ static int wlan_scan_channel_list(wlan_private * priv,
struct wlan_scan_cmd_config * pscancfgout,
struct mrvlietypes_chanlistparamset * pchantlvout,
struct chanscanparamset * pscanchanlist,
const struct wlan_ioctl_user_scan_cfg * puserscanin)
const struct wlan_ioctl_user_scan_cfg * puserscanin,
int full_scan)
{
struct chanscanparamset *ptmpchan;
struct chanscanparamset *pstartchan;
Expand Down Expand Up @@ -723,11 +724,11 @@ static int wlan_scan_channel_list(wlan_private * priv,
/* Send the scan command to the firmware with the specified cfg */
ret = libertas_prepare_and_send_command(priv, cmd_802_11_scan, 0,
0, 0, pscancfgout);
if (scanned >= 2) {
if (scanned >= 2 && !full_scan) {
priv->adapter->last_scanned_channel = ptmpchan->channumber;
return 0;
}

scanned = 0;
}

priv->adapter->last_scanned_channel = ptmpchan->channumber;
Expand All @@ -753,7 +754,8 @@ static int wlan_scan_channel_list(wlan_private * priv,
* @return 0 or < 0 if error
*/
int wlan_scan_networks(wlan_private * priv,
const struct wlan_ioctl_user_scan_cfg * puserscanin)
const struct wlan_ioctl_user_scan_cfg * puserscanin,
int full_scan)
{
wlan_adapter *adapter = priv->adapter;
struct mrvlietypes_chanlistparamset *pchantlvout;
Expand Down Expand Up @@ -813,7 +815,8 @@ int wlan_scan_networks(wlan_private * priv,
scan_cfg,
pchantlvout,
scan_chan_list,
puserscanin);
puserscanin,
full_scan);

/* Process the resulting scan table:
* - Remove any bad ssids
Expand Down Expand Up @@ -1388,7 +1391,7 @@ int libertas_find_best_network_SSID(wlan_private * priv,

memset(pSSID, 0, sizeof(struct WLAN_802_11_SSID));

wlan_scan_networks(priv, NULL);
wlan_scan_networks(priv, NULL, 1);
if (adapter->surpriseremoved)
return -1;
wait_event_interruptible(adapter->cmd_pending, !adapter->nr_cmd_pending);
Expand Down Expand Up @@ -1431,7 +1434,7 @@ int libertas_set_scan(struct net_device *dev, struct iw_request_info *info,

ENTER();

wlan_scan_networks(priv, NULL);
wlan_scan_networks(priv, NULL, 0);

if (adapter->surpriseremoved)
return -1;
Expand Down Expand Up @@ -1468,7 +1471,7 @@ int libertas_send_specific_SSID_scan(wlan_private * priv,
prequestedssid->ssidlength);
scancfg.keeppreviousscan = keeppreviousscan;

wlan_scan_networks(priv, &scancfg);
wlan_scan_networks(priv, &scancfg, 1);
if (adapter->surpriseremoved)
return -1;
wait_event_interruptible(adapter->cmd_pending, !adapter->nr_cmd_pending);
Expand Down Expand Up @@ -1500,7 +1503,7 @@ int libertas_send_specific_BSSID_scan(wlan_private * priv, u8 * bssid, u8 keeppr
memcpy(scancfg.specificBSSID, bssid, sizeof(scancfg.specificBSSID));
scancfg.keeppreviousscan = keeppreviousscan;

wlan_scan_networks(priv, &scancfg);
wlan_scan_networks(priv, &scancfg, 1);
if (priv->adapter->surpriseremoved)
return -1;
wait_event_interruptible(priv->adapter->cmd_pending,
Expand Down Expand Up @@ -1549,8 +1552,13 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
* if there's either commands in the queue or one being
* processed return -EAGAIN for iwlist to retry later.
*/
if (adapter->nr_cmd_pending)
if (adapter->nr_cmd_pending)
return -EAGAIN;

if (adapter->last_scanned_channel) {
wlan_scan_networks(priv, NULL, 0);
return -EAGAIN;
}

if (adapter->connect_status == libertas_connected)
lbs_pr_debug(1, "Current ssid: %32s\n",
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/net/wireless/libertas/scan.h
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,8 @@ extern int libertas_ret_80211_scan(wlan_private * priv,
struct cmd_ds_command *resp);

int wlan_scan_networks(wlan_private * priv,
const struct wlan_ioctl_user_scan_cfg * puserscanin);
const struct wlan_ioctl_user_scan_cfg * puserscanin,
int full_scan);

struct ifreq;

Expand Down

0 comments on commit 6951feb

Please sign in to comment.