diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2010-04-30 18:13:00 -0400 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-04-30 18:13:00 -0400 |
commit | ad41ee3a45c7de33cfa0057f4a12362ba1f1af32 (patch) | |
tree | 84ad26649f4fce8a3816351ab1d511cf6c6f0bf1 /drivers/net/wireless/iwlwifi | |
parent | 49b5c7f473f1bbcb30275dcaee2c06dfb8ec2279 (diff) | |
parent | 96ff56419504ac6a610ff1af42330e0423242e16 (diff) |
Merge branch 'wireless-2.6' into wireless-next-2.6
Patch "iwlwifi: work around passive scan issue" was merged into
wireless-2.6, but touched a lot of code since modified (and moved)
in wireless-next-2.6. This caused some conflicts.
Conflicts:
drivers/net/wireless/iwlwifi/iwl-scan.c
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 23 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-commands.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 3 |
3 files changed, 23 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index 4bd0aecc7713..a27347425968 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -1395,16 +1395,29 @@ void iwlagn_request_scan(struct iwl_priv *priv) | |||
1395 | rate = IWL_RATE_1M_PLCP; | 1395 | rate = IWL_RATE_1M_PLCP; |
1396 | rate_flags = RATE_MCS_CCK_MSK; | 1396 | rate_flags = RATE_MCS_CCK_MSK; |
1397 | } | 1397 | } |
1398 | scan->good_CRC_th = 0; | 1398 | scan->good_CRC_th = IWL_GOOD_CRC_TH_DISABLED; |
1399 | break; | 1399 | break; |
1400 | case IEEE80211_BAND_5GHZ: | 1400 | case IEEE80211_BAND_5GHZ: |
1401 | rate = IWL_RATE_6M_PLCP; | 1401 | rate = IWL_RATE_6M_PLCP; |
1402 | /* | 1402 | /* |
1403 | * If active scaning is requested but a certain channel | 1403 | * If active scanning is requested but a certain channel is |
1404 | * is marked passive, we can do active scanning if we | 1404 | * marked passive, we can do active scanning if we detect |
1405 | * detect transmissions. | 1405 | * transmissions. |
1406 | * | ||
1407 | * There is an issue with some firmware versions that triggers | ||
1408 | * a sysassert on a "good CRC threshold" of zero (== disabled), | ||
1409 | * on a radar channel even though this means that we should NOT | ||
1410 | * send probes. | ||
1411 | * | ||
1412 | * The "good CRC threshold" is the number of frames that we | ||
1413 | * need to receive during our dwell time on a channel before | ||
1414 | * sending out probes -- setting this to a huge value will | ||
1415 | * mean we never reach it, but at the same time work around | ||
1416 | * the aforementioned issue. Thus use IWL_GOOD_CRC_TH_NEVER | ||
1417 | * here instead of IWL_GOOD_CRC_TH_DISABLED. | ||
1406 | */ | 1418 | */ |
1407 | scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0; | 1419 | scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT : |
1420 | IWL_GOOD_CRC_TH_NEVER; | ||
1408 | break; | 1421 | break; |
1409 | default: | 1422 | default: |
1410 | IWL_WARN(priv, "Invalid scan band count\n"); | 1423 | IWL_WARN(priv, "Invalid scan band count\n"); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index 67c723cc32d2..0086019b7a15 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -2663,7 +2663,9 @@ struct iwl_ssid_ie { | |||
2663 | #define PROBE_OPTION_MAX_3945 4 | 2663 | #define PROBE_OPTION_MAX_3945 4 |
2664 | #define PROBE_OPTION_MAX 20 | 2664 | #define PROBE_OPTION_MAX 20 |
2665 | #define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF) | 2665 | #define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF) |
2666 | #define IWL_GOOD_CRC_TH cpu_to_le16(1) | 2666 | #define IWL_GOOD_CRC_TH_DISABLED 0 |
2667 | #define IWL_GOOD_CRC_TH_DEFAULT cpu_to_le16(1) | ||
2668 | #define IWL_GOOD_CRC_TH_NEVER cpu_to_le16(0xffff) | ||
2667 | #define IWL_MAX_SCAN_SIZE 1024 | 2669 | #define IWL_MAX_SCAN_SIZE 1024 |
2668 | #define IWL_MAX_CMD_SIZE 4096 | 2670 | #define IWL_MAX_CMD_SIZE 4096 |
2669 | #define IWL_MAX_PROBE_REQUEST 200 | 2671 | #define IWL_MAX_PROBE_REQUEST 200 |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index e7263ed693c4..789480b89a6e 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -2938,7 +2938,8 @@ void iwl3945_request_scan(struct iwl_priv *priv) | |||
2938 | * is marked passive, we can do active scanning if we | 2938 | * is marked passive, we can do active scanning if we |
2939 | * detect transmissions. | 2939 | * detect transmissions. |
2940 | */ | 2940 | */ |
2941 | scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0; | 2941 | scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT : |
2942 | IWL_GOOD_CRC_TH_DISABLED; | ||
2942 | band = IEEE80211_BAND_5GHZ; | 2943 | band = IEEE80211_BAND_5GHZ; |
2943 | break; | 2944 | break; |
2944 | default: | 2945 | default: |