aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/scan.h
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-05-25 16:25:21 -0400
committerJohn W. Linville <linville@tuxdriver.com>2007-06-11 14:28:41 -0400
commiteb8f7330e7edf655176c51a62cd2e34de91a1eba (patch)
tree383f19fd3741a2f240c976ee7dc89368581ac1f0 /drivers/net/wireless/libertas/scan.h
parentfcdb53dbc743f288bf72e485fefb3a967b733686 (diff)
[PATCH] libertas: fix 'keep previous scan' behavior
Do not clear the scan list except under specific conditions, such as when (a) user-requested, or (b) joining/starting an adhoc network. Furthermore, only clear entries which match the SSID or BSSID of the request, not the whole scan list. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/scan.h')
-rw-r--r--drivers/net/wireless/libertas/scan.h38
1 files changed, 18 insertions, 20 deletions
diff --git a/drivers/net/wireless/libertas/scan.h b/drivers/net/wireless/libertas/scan.h
index 74270785063..4ad130ff6e7 100644
--- a/drivers/net/wireless/libertas/scan.h
+++ b/drivers/net/wireless/libertas/scan.h
@@ -51,7 +51,7 @@ struct wlan_scan_cmd_config {
51 /** 51 /**
52 * @brief Specific BSSID used to filter scan results in the firmware 52 * @brief Specific BSSID used to filter scan results in the firmware
53 */ 53 */
54 u8 specificBSSID[ETH_ALEN]; 54 u8 bssid[ETH_ALEN];
55 55
56 /** 56 /**
57 * @brief length of TLVs sent in command starting at tlvBuffer 57 * @brief length of TLVs sent in command starting at tlvBuffer
@@ -91,15 +91,6 @@ struct wlan_ioctl_user_scan_chan {
91 * @sa libertas_set_user_scan_ioctl 91 * @sa libertas_set_user_scan_ioctl
92 */ 92 */
93struct wlan_ioctl_user_scan_cfg { 93struct wlan_ioctl_user_scan_cfg {
94
95 /**
96 * @brief Flag set to keep the previous scan table intact
97 *
98 * If set, the scan results will accumulate, replacing any previous
99 * matched entries for a BSS with the new scan data
100 */
101 u8 keeppreviousscan; //!< Do not erase the existing scan results
102
103 /** 94 /**
104 * @brief BSS type to be sent in the firmware command 95 * @brief BSS type to be sent in the firmware command
105 * 96 *
@@ -117,15 +108,22 @@ struct wlan_ioctl_user_scan_cfg {
117 */ 108 */
118 u8 numprobes; 109 u8 numprobes;
119 110
120 /** 111 /**
121 * @brief BSSID filter sent in the firmware command to limit the results 112 * @brief BSSID filter sent in the firmware command to limit the results
122 */ 113 */
123 u8 specificBSSID[ETH_ALEN]; 114 u8 bssid[ETH_ALEN];
124 115
125 /** 116 /* Clear existing scan results matching this BSSID */
126 * @brief SSID filter sent in the firmware command to limit the results 117 u8 clear_bssid;
127 */ 118
128 char specificSSID[IW_ESSID_MAX_SIZE + 1]; 119 /**
120 * @brief SSID filter sent in the firmware command to limit the results
121 */
122 char ssid[IW_ESSID_MAX_SIZE];
123 u8 ssid_len;
124
125 /* Clear existing scan results matching this SSID */
126 u8 clear_ssid;
129 127
130 /** 128 /**
131 * @brief Variable number (fixed maximum) of channels to scan up 129 * @brief Variable number (fixed maximum) of channels to scan up
@@ -194,9 +192,9 @@ int libertas_find_best_network_SSID(wlan_private * priv,
194 192
195extern int libertas_send_specific_SSID_scan(wlan_private * priv, 193extern int libertas_send_specific_SSID_scan(wlan_private * priv,
196 struct WLAN_802_11_SSID *prequestedssid, 194 struct WLAN_802_11_SSID *prequestedssid,
197 u8 keeppreviousscan); 195 u8 clear_ssid);
198extern int libertas_send_specific_BSSID_scan(wlan_private * priv, 196extern int libertas_send_specific_BSSID_scan(wlan_private * priv,
199 u8 * bssid, u8 keeppreviousscan); 197 u8 * bssid, u8 clear_bssid);
200 198
201extern int libertas_cmd_80211_scan(wlan_private * priv, 199extern int libertas_cmd_80211_scan(wlan_private * priv,
202 struct cmd_ds_command *cmd, 200 struct cmd_ds_command *cmd,