aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-03-26 15:54:37 -0400
committerReinette Chatre <reinette.chatre@intel.com>2010-04-09 14:27:21 -0400
commit678b385d07835c6c21371c12eaaa3fba4de05168 (patch)
treef456c890f431cbf43174e5b0c001c5669d2d9827
parentace5d5de6bbaff00d3b5dd7ea8f160b570fdb726 (diff)
iwlwifi: default max event log size
Size of event log is determined by uCode which is different per NICs. Set the maximum event log size per device to better match uCode configuration. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c15
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c15
8 files changed, 32 insertions, 18 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index b941b3e9569..9a0191a5ea3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -253,6 +253,7 @@ struct iwl_cfg iwl1000_bgn_cfg = {
253 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF, 253 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF,
254 .chain_noise_scale = 1000, 254 .chain_noise_scale = 1000,
255 .monitor_recover_period = IWL_MONITORING_PERIOD, 255 .monitor_recover_period = IWL_MONITORING_PERIOD,
256 .max_event_log_size = 128,
256}; 257};
257 258
258struct iwl_cfg iwl1000_bg_cfg = { 259struct iwl_cfg iwl1000_bg_cfg = {
@@ -282,6 +283,7 @@ struct iwl_cfg iwl1000_bg_cfg = {
282 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF, 283 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF,
283 .chain_noise_scale = 1000, 284 .chain_noise_scale = 1000,
284 .monitor_recover_period = IWL_MONITORING_PERIOD, 285 .monitor_recover_period = IWL_MONITORING_PERIOD,
286 .max_event_log_size = 128,
285}; 287};
286 288
287MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); 289MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index f88f75dfd96..7424586a5ed 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2770,6 +2770,7 @@ static struct iwl_cfg iwl3945_bg_cfg = {
2770 .broken_powersave = true, 2770 .broken_powersave = true,
2771 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 2771 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
2772 .monitor_recover_period = IWL_MONITORING_PERIOD, 2772 .monitor_recover_period = IWL_MONITORING_PERIOD,
2773 .max_event_log_size = 512,
2773}; 2774};
2774 2775
2775static struct iwl_cfg iwl3945_abg_cfg = { 2776static struct iwl_cfg iwl3945_abg_cfg = {
@@ -2789,6 +2790,7 @@ static struct iwl_cfg iwl3945_abg_cfg = {
2789 .broken_powersave = true, 2790 .broken_powersave = true,
2790 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 2791 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
2791 .monitor_recover_period = IWL_MONITORING_PERIOD, 2792 .monitor_recover_period = IWL_MONITORING_PERIOD,
2793 .max_event_log_size = 512,
2792}; 2794};
2793 2795
2794DEFINE_PCI_DEVICE_TABLE(iwl3945_hw_card_ids) = { 2796DEFINE_PCI_DEVICE_TABLE(iwl3945_hw_card_ids) = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 6edae9b83bb..0164c3f2109 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2250,6 +2250,7 @@ struct iwl_cfg iwl4965_agn_cfg = {
2250 .monitor_recover_period = IWL_MONITORING_PERIOD, 2250 .monitor_recover_period = IWL_MONITORING_PERIOD,
2251 .temperature_kelvin = true, 2251 .temperature_kelvin = true,
2252 .off_channel_workaround = true, 2252 .off_channel_workaround = true,
2253 .max_event_log_size = 512,
2253}; 2254};
2254 2255
2255/* Module firmware */ 2256/* Module firmware */
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index ecc302e4c20..e967cfcac22 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -423,6 +423,7 @@ struct iwl_cfg iwl5300_agn_cfg = {
423 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 423 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
424 .chain_noise_scale = 1000, 424 .chain_noise_scale = 1000,
425 .monitor_recover_period = IWL_MONITORING_PERIOD, 425 .monitor_recover_period = IWL_MONITORING_PERIOD,
426 .max_event_log_size = 512,
426}; 427};
427 428
428struct iwl_cfg iwl5100_bgn_cfg = { 429struct iwl_cfg iwl5100_bgn_cfg = {
@@ -450,6 +451,7 @@ struct iwl_cfg iwl5100_bgn_cfg = {
450 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 451 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
451 .chain_noise_scale = 1000, 452 .chain_noise_scale = 1000,
452 .monitor_recover_period = IWL_MONITORING_PERIOD, 453 .monitor_recover_period = IWL_MONITORING_PERIOD,
454 .max_event_log_size = 512,
453}; 455};
454 456
455struct iwl_cfg iwl5100_abg_cfg = { 457struct iwl_cfg iwl5100_abg_cfg = {
@@ -475,6 +477,7 @@ struct iwl_cfg iwl5100_abg_cfg = {
475 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 477 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
476 .chain_noise_scale = 1000, 478 .chain_noise_scale = 1000,
477 .monitor_recover_period = IWL_MONITORING_PERIOD, 479 .monitor_recover_period = IWL_MONITORING_PERIOD,
480 .max_event_log_size = 512,
478}; 481};
479 482
480struct iwl_cfg iwl5100_agn_cfg = { 483struct iwl_cfg iwl5100_agn_cfg = {
@@ -502,6 +505,7 @@ struct iwl_cfg iwl5100_agn_cfg = {
502 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 505 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
503 .chain_noise_scale = 1000, 506 .chain_noise_scale = 1000,
504 .monitor_recover_period = IWL_MONITORING_PERIOD, 507 .monitor_recover_period = IWL_MONITORING_PERIOD,
508 .max_event_log_size = 512,
505}; 509};
506 510
507struct iwl_cfg iwl5350_agn_cfg = { 511struct iwl_cfg iwl5350_agn_cfg = {
@@ -529,6 +533,7 @@ struct iwl_cfg iwl5350_agn_cfg = {
529 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 533 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
530 .chain_noise_scale = 1000, 534 .chain_noise_scale = 1000,
531 .monitor_recover_period = IWL_MONITORING_PERIOD, 535 .monitor_recover_period = IWL_MONITORING_PERIOD,
536 .max_event_log_size = 512,
532}; 537};
533 538
534struct iwl_cfg iwl5150_agn_cfg = { 539struct iwl_cfg iwl5150_agn_cfg = {
@@ -556,6 +561,7 @@ struct iwl_cfg iwl5150_agn_cfg = {
556 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 561 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
557 .chain_noise_scale = 1000, 562 .chain_noise_scale = 1000,
558 .monitor_recover_period = IWL_MONITORING_PERIOD, 563 .monitor_recover_period = IWL_MONITORING_PERIOD,
564 .max_event_log_size = 512,
559}; 565};
560 566
561struct iwl_cfg iwl5150_abg_cfg = { 567struct iwl_cfg iwl5150_abg_cfg = {
@@ -581,6 +587,7 @@ struct iwl_cfg iwl5150_abg_cfg = {
581 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF, 587 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF,
582 .chain_noise_scale = 1000, 588 .chain_noise_scale = 1000,
583 .monitor_recover_period = IWL_MONITORING_PERIOD, 589 .monitor_recover_period = IWL_MONITORING_PERIOD,
590 .max_event_log_size = 512,
584}; 591};
585 592
586MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); 593MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 7473518e7e0..dd03384432f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -394,6 +394,7 @@ struct iwl_cfg iwl6000i_g2_2agn_cfg = {
394 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 394 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
395 .chain_noise_scale = 1000, 395 .chain_noise_scale = 1000,
396 .monitor_recover_period = IWL_MONITORING_PERIOD, 396 .monitor_recover_period = IWL_MONITORING_PERIOD,
397 .max_event_log_size = 1024,
397}; 398};
398 399
399struct iwl_cfg iwl6000i_2agn_cfg = { 400struct iwl_cfg iwl6000i_2agn_cfg = {
@@ -427,6 +428,7 @@ struct iwl_cfg iwl6000i_2agn_cfg = {
427 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 428 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
428 .chain_noise_scale = 1000, 429 .chain_noise_scale = 1000,
429 .monitor_recover_period = IWL_MONITORING_PERIOD, 430 .monitor_recover_period = IWL_MONITORING_PERIOD,
431 .max_event_log_size = 1024,
430}; 432};
431 433
432struct iwl_cfg iwl6000i_2abg_cfg = { 434struct iwl_cfg iwl6000i_2abg_cfg = {
@@ -459,6 +461,7 @@ struct iwl_cfg iwl6000i_2abg_cfg = {
459 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 461 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
460 .chain_noise_scale = 1000, 462 .chain_noise_scale = 1000,
461 .monitor_recover_period = IWL_MONITORING_PERIOD, 463 .monitor_recover_period = IWL_MONITORING_PERIOD,
464 .max_event_log_size = 1024,
462}; 465};
463 466
464struct iwl_cfg iwl6000i_2bg_cfg = { 467struct iwl_cfg iwl6000i_2bg_cfg = {
@@ -491,6 +494,7 @@ struct iwl_cfg iwl6000i_2bg_cfg = {
491 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 494 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
492 .chain_noise_scale = 1000, 495 .chain_noise_scale = 1000,
493 .monitor_recover_period = IWL_MONITORING_PERIOD, 496 .monitor_recover_period = IWL_MONITORING_PERIOD,
497 .max_event_log_size = 1024,
494}; 498};
495 499
496struct iwl_cfg iwl6050_2agn_cfg = { 500struct iwl_cfg iwl6050_2agn_cfg = {
@@ -524,6 +528,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
524 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 528 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
525 .chain_noise_scale = 1500, 529 .chain_noise_scale = 1500,
526 .monitor_recover_period = IWL_MONITORING_PERIOD, 530 .monitor_recover_period = IWL_MONITORING_PERIOD,
531 .max_event_log_size = 1024,
527}; 532};
528 533
529struct iwl_cfg iwl6050_2abg_cfg = { 534struct iwl_cfg iwl6050_2abg_cfg = {
@@ -556,6 +561,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
556 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 561 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
557 .chain_noise_scale = 1500, 562 .chain_noise_scale = 1500,
558 .monitor_recover_period = IWL_MONITORING_PERIOD, 563 .monitor_recover_period = IWL_MONITORING_PERIOD,
564 .max_event_log_size = 1024,
559}; 565};
560 566
561struct iwl_cfg iwl6000_3agn_cfg = { 567struct iwl_cfg iwl6000_3agn_cfg = {
@@ -589,6 +595,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
589 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 595 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
590 .chain_noise_scale = 1000, 596 .chain_noise_scale = 1000,
591 .monitor_recover_period = IWL_MONITORING_PERIOD, 597 .monitor_recover_period = IWL_MONITORING_PERIOD,
598 .max_event_log_size = 1024,
592}; 599};
593 600
594MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); 601MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4f0cb803f73..978604f8ae9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1990,9 +1990,6 @@ static int iwl_print_last_event_logs(struct iwl_priv *priv, u32 capacity,
1990 return pos; 1990 return pos;
1991} 1991}
1992 1992
1993/* For sanity check only. Actual size is determined by uCode, typ. 512 */
1994#define MAX_EVENT_LOG_SIZE (512)
1995
1996#define DEFAULT_DUMP_EVENT_LOG_ENTRIES (20) 1993#define DEFAULT_DUMP_EVENT_LOG_ENTRIES (20)
1997 1994
1998int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, 1995int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
@@ -2025,16 +2022,16 @@ int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
2025 num_wraps = iwl_read_targ_mem(priv, base + (2 * sizeof(u32))); 2022 num_wraps = iwl_read_targ_mem(priv, base + (2 * sizeof(u32)));
2026 next_entry = iwl_read_targ_mem(priv, base + (3 * sizeof(u32))); 2023 next_entry = iwl_read_targ_mem(priv, base + (3 * sizeof(u32)));
2027 2024
2028 if (capacity > MAX_EVENT_LOG_SIZE) { 2025 if (capacity > priv->cfg->max_event_log_size) {
2029 IWL_ERR(priv, "Log capacity %d is bogus, limit to %d entries\n", 2026 IWL_ERR(priv, "Log capacity %d is bogus, limit to %d entries\n",
2030 capacity, MAX_EVENT_LOG_SIZE); 2027 capacity, priv->cfg->max_event_log_size);
2031 capacity = MAX_EVENT_LOG_SIZE; 2028 capacity = priv->cfg->max_event_log_size;
2032 } 2029 }
2033 2030
2034 if (next_entry > MAX_EVENT_LOG_SIZE) { 2031 if (next_entry > priv->cfg->max_event_log_size) {
2035 IWL_ERR(priv, "Log write index %d is bogus, limit to %d\n", 2032 IWL_ERR(priv, "Log write index %d is bogus, limit to %d\n",
2036 next_entry, MAX_EVENT_LOG_SIZE); 2033 next_entry, priv->cfg->max_event_log_size);
2037 next_entry = MAX_EVENT_LOG_SIZE; 2034 next_entry = priv->cfg->max_event_log_size;
2038 } 2035 }
2039 2036
2040 size = num_wraps ? capacity : next_entry; 2037 size = num_wraps ? capacity : next_entry;
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 10f95724536..d89755f5031 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -307,6 +307,7 @@ struct iwl_cfg {
307 u32 monitor_recover_period; 307 u32 monitor_recover_period;
308 bool temperature_kelvin; 308 bool temperature_kelvin;
309 bool off_channel_workaround; 309 bool off_channel_workaround;
310 u32 max_event_log_size;
310}; 311};
311 312
312/*************************** 313/***************************
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index c9188b9c565..24e969440b3 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -1603,9 +1603,6 @@ static int iwl3945_print_last_event_logs(struct iwl_priv *priv, u32 capacity,
1603 return pos; 1603 return pos;
1604} 1604}
1605 1605
1606/* For sanity check only. Actual size is determined by uCode, typ. 512 */
1607#define IWL3945_MAX_EVENT_LOG_SIZE (512)
1608
1609#define DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES (20) 1606#define DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES (20)
1610 1607
1611int iwl3945_dump_nic_event_log(struct iwl_priv *priv, bool full_log, 1608int iwl3945_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
@@ -1632,16 +1629,16 @@ int iwl3945_dump_nic_event_log(struct iwl_priv *priv, bool full_log,
1632 num_wraps = iwl_read_targ_mem(priv, base + (2 * sizeof(u32))); 1629 num_wraps = iwl_read_targ_mem(priv, base + (2 * sizeof(u32)));
1633 next_entry = iwl_read_targ_mem(priv, base + (3 * sizeof(u32))); 1630 next_entry = iwl_read_targ_mem(priv, base + (3 * sizeof(u32)));
1634 1631
1635 if (capacity > IWL3945_MAX_EVENT_LOG_SIZE) { 1632 if (capacity > priv->cfg->max_event_log_size) {
1636 IWL_ERR(priv, "Log capacity %d is bogus, limit to %d entries\n", 1633 IWL_ERR(priv, "Log capacity %d is bogus, limit to %d entries\n",
1637 capacity, IWL3945_MAX_EVENT_LOG_SIZE); 1634 capacity, priv->cfg->max_event_log_size);
1638 capacity = IWL3945_MAX_EVENT_LOG_SIZE; 1635 capacity = priv->cfg->max_event_log_size;
1639 } 1636 }
1640 1637
1641 if (next_entry > IWL3945_MAX_EVENT_LOG_SIZE) { 1638 if (next_entry > priv->cfg->max_event_log_size) {
1642 IWL_ERR(priv, "Log write index %d is bogus, limit to %d\n", 1639 IWL_ERR(priv, "Log write index %d is bogus, limit to %d\n",
1643 next_entry, IWL3945_MAX_EVENT_LOG_SIZE); 1640 next_entry, priv->cfg->max_event_log_size);
1644 next_entry = IWL3945_MAX_EVENT_LOG_SIZE; 1641 next_entry = priv->cfg->max_event_log_size;
1645 } 1642 }
1646 1643
1647 size = num_wraps ? capacity : next_entry; 1644 size = num_wraps ? capacity : next_entry;