summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ipw2x00/ipw2200.h
diff options
context:
space:
mode:
authorHelmut Schaa2008-12-10 13:17:26 +0100
committerJohn W. Linville2008-12-12 20:02:10 +0100
commit14a4dfe2ff8c353f59ae8324059ded1cfe22c7d9 (patch)
tree3301a6e2903012294d6e21dd96d04885f9a08cdb /drivers/net/wireless/ipw2x00/ipw2200.h
parentb43legacy: Fix sparse warnings (diff)
downloadkernel-qcow2-linux-14a4dfe2ff8c353f59ae8324059ded1cfe22c7d9.tar.gz
kernel-qcow2-linux-14a4dfe2ff8c353f59ae8324059ded1cfe22c7d9.tar.xz
kernel-qcow2-linux-14a4dfe2ff8c353f59ae8324059ded1cfe22c7d9.zip
ipw2200: fix scanning while associated
This patch fixes sporadic firmware restarts when scanning while associated. The firmware will quietly cancel a scan (while associated) if the dwell time for a channel to be scanned is larger than the time it may stay away from the operating channel (because of DTIM catching). Unfortunately the driver is not notified about the canceled scan and therefore the scan watchdog timeout will be hit and the driver causes a firmware restart which results in disassociation. This mainly happens on passive channels which use a dwell time of 120 whereas a typical beacon interval is around 100. The patch changes the dwell time for passive channels to be slightly smaller than the actual beacon interval to work around the firmware issue. Furthermore the number of allowed beacon misses is increased from one to three as otherwise most scans (while associated) won't complete successfully. However scanning while associated will still fail in corner cases such as a beacon intervals below 30. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ipw2x00/ipw2200.h')
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.h b/drivers/net/wireless/ipw2x00/ipw2200.h
index 0a84d52147bd..277b274d4be5 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.h
+++ b/drivers/net/wireless/ipw2x00/ipw2200.h
@@ -245,6 +245,7 @@ enum connection_manager_assoc_states {
#define HOST_NOTIFICATION_S36_MEASUREMENT_REFUSED 31
#define HOST_NOTIFICATION_STATUS_BEACON_MISSING 1
+#define IPW_MB_SCAN_CANCEL_THRESHOLD 3
#define IPW_MB_ROAMING_THRESHOLD_MIN 1
#define IPW_MB_ROAMING_THRESHOLD_DEFAULT 8
#define IPW_MB_ROAMING_THRESHOLD_MAX 30