diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-lib.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 23 |
1 files changed, 18 insertions, 5 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"); |