diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 31 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-debug.h | 12 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-rx.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-tx.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 25 |
12 files changed, 55 insertions, 46 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 14a47c0a1583..8ee403cd9b99 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -502,14 +502,14 @@ static void _iwl3945_dbg_report_frame(struct iwl_priv *priv, | |||
502 | } | 502 | } |
503 | } | 503 | } |
504 | if (print_dump) | 504 | if (print_dump) |
505 | iwl_print_hex_dump(priv, IWL_DL_RX, data, length); | 505 | iwl_print_hex_dump(IWL_DL_RX, data, length); |
506 | } | 506 | } |
507 | 507 | ||
508 | static void iwl3945_dbg_report_frame(struct iwl_priv *priv, | 508 | static void iwl3945_dbg_report_frame(struct iwl_priv *priv, |
509 | struct iwl_rx_packet *pkt, | 509 | struct iwl_rx_packet *pkt, |
510 | struct ieee80211_hdr *header, int group100) | 510 | struct ieee80211_hdr *header, int group100) |
511 | { | 511 | { |
512 | if (priv->debug_level & IWL_DL_RX) | 512 | if (iwl_debug_level & IWL_DL_RX) |
513 | _iwl3945_dbg_report_frame(priv, pkt, header, group100); | 513 | _iwl3945_dbg_report_frame(priv, pkt, header, group100); |
514 | } | 514 | } |
515 | 515 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 272409c80619..c30a1b960576 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2376,8 +2376,6 @@ module_param_named(antenna, iwl4965_mod_params.antenna, int, 0444); | |||
2376 | MODULE_PARM_DESC(antenna, "select antenna (1=Main, 2=Aux, default 0 [both])"); | 2376 | MODULE_PARM_DESC(antenna, "select antenna (1=Main, 2=Aux, default 0 [both])"); |
2377 | module_param_named(swcrypto, iwl4965_mod_params.sw_crypto, int, 0444); | 2377 | module_param_named(swcrypto, iwl4965_mod_params.sw_crypto, int, 0444); |
2378 | MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])"); | 2378 | MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])"); |
2379 | module_param_named(debug, iwl4965_mod_params.debug, uint, 0444); | ||
2380 | MODULE_PARM_DESC(debug, "debug output mask"); | ||
2381 | module_param_named( | 2379 | module_param_named( |
2382 | disable_hw_scan, iwl4965_mod_params.disable_hw_scan, int, 0444); | 2380 | disable_hw_scan, iwl4965_mod_params.disable_hw_scan, int, 0444); |
2383 | MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)"); | 2381 | MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)"); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index 74103cfcaceb..702db07fa382 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -1745,8 +1745,6 @@ MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_MAX)); | |||
1745 | module_param_named(swcrypto50, iwl50_mod_params.sw_crypto, bool, 0444); | 1745 | module_param_named(swcrypto50, iwl50_mod_params.sw_crypto, bool, 0444); |
1746 | MODULE_PARM_DESC(swcrypto50, | 1746 | MODULE_PARM_DESC(swcrypto50, |
1747 | "using software crypto engine (default 0 [hardware])\n"); | 1747 | "using software crypto engine (default 0 [hardware])\n"); |
1748 | module_param_named(debug50, iwl50_mod_params.debug, uint, 0444); | ||
1749 | MODULE_PARM_DESC(debug50, "50XX debug output mask"); | ||
1750 | module_param_named(queues_num50, iwl50_mod_params.num_of_queues, int, 0444); | 1748 | module_param_named(queues_num50, iwl50_mod_params.num_of_queues, int, 0444); |
1751 | MODULE_PARM_DESC(queues_num50, "number of hw queues in 50xx series"); | 1749 | MODULE_PARM_DESC(queues_num50, "number of hw queues in 50xx series"); |
1752 | module_param_named(11n_disable50, iwl50_mod_params.disable_11n, int, 0444); | 1750 | module_param_named(11n_disable50, iwl50_mod_params.disable_11n, int, 0444); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index f61f653a1b72..ff4a546f1e6d 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -904,7 +904,7 @@ static void iwl_irq_tasklet_legacy(struct iwl_priv *priv) | |||
904 | iwl_write32(priv, CSR_FH_INT_STATUS, inta_fh); | 904 | iwl_write32(priv, CSR_FH_INT_STATUS, inta_fh); |
905 | 905 | ||
906 | #ifdef CONFIG_IWLWIFI_DEBUG | 906 | #ifdef CONFIG_IWLWIFI_DEBUG |
907 | if (priv->debug_level & IWL_DL_ISR) { | 907 | if (iwl_debug_level & IWL_DL_ISR) { |
908 | /* just for debug */ | 908 | /* just for debug */ |
909 | inta_mask = iwl_read32(priv, CSR_INT_MASK); | 909 | inta_mask = iwl_read32(priv, CSR_INT_MASK); |
910 | IWL_DEBUG_ISR(priv, "inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", | 910 | IWL_DEBUG_ISR(priv, "inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", |
@@ -939,7 +939,7 @@ static void iwl_irq_tasklet_legacy(struct iwl_priv *priv) | |||
939 | } | 939 | } |
940 | 940 | ||
941 | #ifdef CONFIG_IWLWIFI_DEBUG | 941 | #ifdef CONFIG_IWLWIFI_DEBUG |
942 | if (priv->debug_level & (IWL_DL_ISR)) { | 942 | if (iwl_debug_level & (IWL_DL_ISR)) { |
943 | /* NIC fires this, but we don't use it, redundant with WAKEUP */ | 943 | /* NIC fires this, but we don't use it, redundant with WAKEUP */ |
944 | if (inta & CSR_INT_BIT_SCD) { | 944 | if (inta & CSR_INT_BIT_SCD) { |
945 | IWL_DEBUG_ISR(priv, "Scheduler finished to transmit " | 945 | IWL_DEBUG_ISR(priv, "Scheduler finished to transmit " |
@@ -1053,7 +1053,7 @@ static void iwl_irq_tasklet_legacy(struct iwl_priv *priv) | |||
1053 | iwl_enable_interrupts(priv); | 1053 | iwl_enable_interrupts(priv); |
1054 | 1054 | ||
1055 | #ifdef CONFIG_IWLWIFI_DEBUG | 1055 | #ifdef CONFIG_IWLWIFI_DEBUG |
1056 | if (priv->debug_level & (IWL_DL_ISR)) { | 1056 | if (iwl_debug_level & (IWL_DL_ISR)) { |
1057 | inta = iwl_read32(priv, CSR_INT); | 1057 | inta = iwl_read32(priv, CSR_INT); |
1058 | inta_mask = iwl_read32(priv, CSR_INT_MASK); | 1058 | inta_mask = iwl_read32(priv, CSR_INT_MASK); |
1059 | inta_fh = iwl_read32(priv, CSR_FH_INT_STATUS); | 1059 | inta_fh = iwl_read32(priv, CSR_FH_INT_STATUS); |
@@ -1084,7 +1084,7 @@ static void iwl_irq_tasklet(struct iwl_priv *priv) | |||
1084 | inta = priv->inta; | 1084 | inta = priv->inta; |
1085 | 1085 | ||
1086 | #ifdef CONFIG_IWLWIFI_DEBUG | 1086 | #ifdef CONFIG_IWLWIFI_DEBUG |
1087 | if (priv->debug_level & IWL_DL_ISR) { | 1087 | if (iwl_debug_level & IWL_DL_ISR) { |
1088 | /* just for debug */ | 1088 | /* just for debug */ |
1089 | inta_mask = iwl_read32(priv, CSR_INT_MASK); | 1089 | inta_mask = iwl_read32(priv, CSR_INT_MASK); |
1090 | IWL_DEBUG_ISR(priv, "inta 0x%08x, enabled 0x%08x\n ", | 1090 | IWL_DEBUG_ISR(priv, "inta 0x%08x, enabled 0x%08x\n ", |
@@ -1112,7 +1112,7 @@ static void iwl_irq_tasklet(struct iwl_priv *priv) | |||
1112 | } | 1112 | } |
1113 | 1113 | ||
1114 | #ifdef CONFIG_IWLWIFI_DEBUG | 1114 | #ifdef CONFIG_IWLWIFI_DEBUG |
1115 | if (priv->debug_level & (IWL_DL_ISR)) { | 1115 | if (iwl_debug_level & (IWL_DL_ISR)) { |
1116 | /* NIC fires this, but we don't use it, redundant with WAKEUP */ | 1116 | /* NIC fires this, but we don't use it, redundant with WAKEUP */ |
1117 | if (inta & CSR_INT_BIT_SCD) { | 1117 | if (inta & CSR_INT_BIT_SCD) { |
1118 | IWL_DEBUG_ISR(priv, "Scheduler finished to transmit " | 1118 | IWL_DEBUG_ISR(priv, "Scheduler finished to transmit " |
@@ -2456,14 +2456,16 @@ static int iwl_mac_get_stats(struct ieee80211_hw *hw, | |||
2456 | * used for controlling the debug level. | 2456 | * used for controlling the debug level. |
2457 | * | 2457 | * |
2458 | * See the level definitions in iwl for details. | 2458 | * See the level definitions in iwl for details. |
2459 | * | ||
2460 | * FIXME This file can be deprecated as the module parameter is | ||
2461 | * writable and users can thus also change the debug level | ||
2462 | * using the /sys/module/iwl3945/parameters/debug file. | ||
2459 | */ | 2463 | */ |
2460 | 2464 | ||
2461 | static ssize_t show_debug_level(struct device *d, | 2465 | static ssize_t show_debug_level(struct device *d, |
2462 | struct device_attribute *attr, char *buf) | 2466 | struct device_attribute *attr, char *buf) |
2463 | { | 2467 | { |
2464 | struct iwl_priv *priv = dev_get_drvdata(d); | 2468 | return sprintf(buf, "0x%08X\n", iwl_debug_level); |
2465 | |||
2466 | return sprintf(buf, "0x%08X\n", priv->debug_level); | ||
2467 | } | 2469 | } |
2468 | static ssize_t store_debug_level(struct device *d, | 2470 | static ssize_t store_debug_level(struct device *d, |
2469 | struct device_attribute *attr, | 2471 | struct device_attribute *attr, |
@@ -2477,7 +2479,7 @@ static ssize_t store_debug_level(struct device *d, | |||
2477 | if (ret) | 2479 | if (ret) |
2478 | IWL_ERR(priv, "%s is not in hex or decimal form.\n", buf); | 2480 | IWL_ERR(priv, "%s is not in hex or decimal form.\n", buf); |
2479 | else | 2481 | else |
2480 | priv->debug_level = val; | 2482 | iwl_debug_level = val; |
2481 | 2483 | ||
2482 | return strnlen(buf, count); | 2484 | return strnlen(buf, count); |
2483 | } | 2485 | } |
@@ -2829,7 +2831,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2829 | /* Disabling hardware scan means that mac80211 will perform scans | 2831 | /* Disabling hardware scan means that mac80211 will perform scans |
2830 | * "the hard way", rather than using device's scan. */ | 2832 | * "the hard way", rather than using device's scan. */ |
2831 | if (cfg->mod_params->disable_hw_scan) { | 2833 | if (cfg->mod_params->disable_hw_scan) { |
2832 | if (cfg->mod_params->debug & IWL_DL_INFO) | 2834 | if (iwl_debug_level & IWL_DL_INFO) |
2833 | dev_printk(KERN_DEBUG, &(pdev->dev), | 2835 | dev_printk(KERN_DEBUG, &(pdev->dev), |
2834 | "Disabling hw_scan\n"); | 2836 | "Disabling hw_scan\n"); |
2835 | iwl_hw_ops.hw_scan = NULL; | 2837 | iwl_hw_ops.hw_scan = NULL; |
@@ -2851,7 +2853,6 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2851 | priv->inta_mask = CSR_INI_SET_MASK; | 2853 | priv->inta_mask = CSR_INI_SET_MASK; |
2852 | 2854 | ||
2853 | #ifdef CONFIG_IWLWIFI_DEBUG | 2855 | #ifdef CONFIG_IWLWIFI_DEBUG |
2854 | priv->debug_level = priv->cfg->mod_params->debug; | ||
2855 | atomic_set(&priv->restrict_refcnt, 0); | 2856 | atomic_set(&priv->restrict_refcnt, 0); |
2856 | #endif | 2857 | #endif |
2857 | 2858 | ||
@@ -3211,3 +3212,11 @@ static void __exit iwl_exit(void) | |||
3211 | 3212 | ||
3212 | module_exit(iwl_exit); | 3213 | module_exit(iwl_exit); |
3213 | module_init(iwl_init); | 3214 | module_init(iwl_init); |
3215 | |||
3216 | #ifdef CONFIG_IWLWIFI_DEBUG | ||
3217 | module_param_named(debug50, iwl_debug_level, uint, 0444); | ||
3218 | MODULE_PARM_DESC(debug50, "50XX debug output mask (deprecated)"); | ||
3219 | module_param_named(debug, iwl_debug_level, uint, 0644); | ||
3220 | MODULE_PARM_DESC(debug, "debug output mask"); | ||
3221 | #endif | ||
3222 | |||
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 8655e092fca7..976004f6c7dc 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -59,6 +59,9 @@ MODULE_LICENSE("GPL"); | |||
59 | IWL_RATE_##pp##M_INDEX, \ | 59 | IWL_RATE_##pp##M_INDEX, \ |
60 | IWL_RATE_##np##M_INDEX } | 60 | IWL_RATE_##np##M_INDEX } |
61 | 61 | ||
62 | u32 iwl_debug_level; | ||
63 | EXPORT_SYMBOL(iwl_debug_level); | ||
64 | |||
62 | static irqreturn_t iwl_isr(int irq, void *data); | 65 | static irqreturn_t iwl_isr(int irq, void *data); |
63 | 66 | ||
64 | /* | 67 | /* |
@@ -1275,7 +1278,7 @@ static void iwl_print_rx_config_cmd(struct iwl_priv *priv) | |||
1275 | struct iwl_rxon_cmd *rxon = &priv->staging_rxon; | 1278 | struct iwl_rxon_cmd *rxon = &priv->staging_rxon; |
1276 | 1279 | ||
1277 | IWL_DEBUG_RADIO(priv, "RX CONFIG:\n"); | 1280 | IWL_DEBUG_RADIO(priv, "RX CONFIG:\n"); |
1278 | iwl_print_hex_dump(priv, IWL_DL_RADIO, (u8 *) rxon, sizeof(*rxon)); | 1281 | iwl_print_hex_dump(IWL_DL_RADIO, (u8 *) rxon, sizeof(*rxon)); |
1279 | IWL_DEBUG_RADIO(priv, "u16 channel: 0x%x\n", le16_to_cpu(rxon->channel)); | 1282 | IWL_DEBUG_RADIO(priv, "u16 channel: 0x%x\n", le16_to_cpu(rxon->channel)); |
1280 | IWL_DEBUG_RADIO(priv, "u32 flags: 0x%08X\n", le32_to_cpu(rxon->flags)); | 1283 | IWL_DEBUG_RADIO(priv, "u32 flags: 0x%08X\n", le32_to_cpu(rxon->flags)); |
1281 | IWL_DEBUG_RADIO(priv, "u32 filter_flags: 0x%08x\n", | 1284 | IWL_DEBUG_RADIO(priv, "u32 filter_flags: 0x%08x\n", |
@@ -1505,7 +1508,7 @@ void iwl_irq_handle_error(struct iwl_priv *priv) | |||
1505 | clear_bit(STATUS_HCMD_ACTIVE, &priv->status); | 1508 | clear_bit(STATUS_HCMD_ACTIVE, &priv->status); |
1506 | 1509 | ||
1507 | #ifdef CONFIG_IWLWIFI_DEBUG | 1510 | #ifdef CONFIG_IWLWIFI_DEBUG |
1508 | if (priv->debug_level & IWL_DL_FW_ERRORS) { | 1511 | if (iwl_debug_level & IWL_DL_FW_ERRORS) { |
1509 | iwl_dump_nic_error_log(priv); | 1512 | iwl_dump_nic_error_log(priv); |
1510 | iwl_dump_nic_event_log(priv); | 1513 | iwl_dump_nic_event_log(priv); |
1511 | iwl_print_rx_config_cmd(priv); | 1514 | iwl_print_rx_config_cmd(priv); |
@@ -2004,7 +2007,7 @@ static irqreturn_t iwl_isr(int irq, void *data) | |||
2004 | } | 2007 | } |
2005 | 2008 | ||
2006 | #ifdef CONFIG_IWLWIFI_DEBUG | 2009 | #ifdef CONFIG_IWLWIFI_DEBUG |
2007 | if (priv->debug_level & (IWL_DL_ISR)) { | 2010 | if (iwl_debug_level & (IWL_DL_ISR)) { |
2008 | inta_fh = iwl_read32(priv, CSR_FH_INT_STATUS); | 2011 | inta_fh = iwl_read32(priv, CSR_FH_INT_STATUS); |
2009 | IWL_DEBUG_ISR(priv, "ISR inta 0x%08x, enabled 0x%08x, " | 2012 | IWL_DEBUG_ISR(priv, "ISR inta 0x%08x, enabled 0x%08x, " |
2010 | "fh 0x%08x\n", inta, inta_mask, inta_fh); | 2013 | "fh 0x%08x\n", inta, inta_mask, inta_fh); |
@@ -2311,7 +2314,7 @@ void iwl_rx_pm_debug_statistics_notif(struct iwl_priv *priv, | |||
2311 | IWL_DEBUG_RADIO(priv, "Dumping %d bytes of unhandled " | 2314 | IWL_DEBUG_RADIO(priv, "Dumping %d bytes of unhandled " |
2312 | "notification for %s:\n", | 2315 | "notification for %s:\n", |
2313 | le32_to_cpu(pkt->len), get_cmd_string(pkt->hdr.cmd)); | 2316 | le32_to_cpu(pkt->len), get_cmd_string(pkt->hdr.cmd)); |
2314 | iwl_print_hex_dump(priv, IWL_DL_RADIO, pkt->u.raw, le32_to_cpu(pkt->len)); | 2317 | iwl_print_hex_dump(IWL_DL_RADIO, pkt->u.raw, le32_to_cpu(pkt->len)); |
2315 | } | 2318 | } |
2316 | EXPORT_SYMBOL(iwl_rx_pm_debug_statistics_notif); | 2319 | EXPORT_SYMBOL(iwl_rx_pm_debug_statistics_notif); |
2317 | 2320 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index a697b843863b..f82ec9e4da03 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -190,7 +190,6 @@ struct iwl_ops { | |||
190 | 190 | ||
191 | struct iwl_mod_params { | 191 | struct iwl_mod_params { |
192 | int sw_crypto; /* def: 0 = using hardware encryption */ | 192 | int sw_crypto; /* def: 0 = using hardware encryption */ |
193 | u32 debug; /* def: 0 = minimal debug log messages */ | ||
194 | int disable_hw_scan; /* def: 0 = use h/w scan */ | 193 | int disable_hw_scan; /* def: 0 = use h/w scan */ |
195 | int num_of_queues; /* def: HW dependent */ | 194 | int num_of_queues; /* def: HW dependent */ |
196 | int num_of_ampdu_queues;/* def: HW dependent */ | 195 | int num_of_ampdu_queues;/* def: HW dependent */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-debug.h b/drivers/net/wireless/iwlwifi/iwl-debug.h index e4a4dbd20c98..9faf0c2ff608 100644 --- a/drivers/net/wireless/iwlwifi/iwl-debug.h +++ b/drivers/net/wireless/iwlwifi/iwl-debug.h | |||
@@ -30,6 +30,7 @@ | |||
30 | #define __iwl_debug_h__ | 30 | #define __iwl_debug_h__ |
31 | 31 | ||
32 | struct iwl_priv; | 32 | struct iwl_priv; |
33 | extern u32 iwl_debug_level; | ||
33 | 34 | ||
34 | #define IWL_ERR(p, f, a...) dev_err(&((p)->pci_dev->dev), f, ## a) | 35 | #define IWL_ERR(p, f, a...) dev_err(&((p)->pci_dev->dev), f, ## a) |
35 | #define IWL_WARN(p, f, a...) dev_warn(&((p)->pci_dev->dev), f, ## a) | 36 | #define IWL_WARN(p, f, a...) dev_warn(&((p)->pci_dev->dev), f, ## a) |
@@ -45,7 +46,7 @@ do { \ | |||
45 | #ifdef CONFIG_IWLWIFI_DEBUG | 46 | #ifdef CONFIG_IWLWIFI_DEBUG |
46 | #define IWL_DEBUG(__priv, level, fmt, args...) \ | 47 | #define IWL_DEBUG(__priv, level, fmt, args...) \ |
47 | do { \ | 48 | do { \ |
48 | if (__priv->debug_level & (level)) \ | 49 | if (iwl_debug_level & (level)) \ |
49 | dev_printk(KERN_ERR, &(__priv->hw->wiphy->dev), \ | 50 | dev_printk(KERN_ERR, &(__priv->hw->wiphy->dev), \ |
50 | "%c %s " fmt, in_interrupt() ? 'I' : 'U', \ | 51 | "%c %s " fmt, in_interrupt() ? 'I' : 'U', \ |
51 | __func__ , ## args); \ | 52 | __func__ , ## args); \ |
@@ -53,15 +54,15 @@ do { \ | |||
53 | 54 | ||
54 | #define IWL_DEBUG_LIMIT(__priv, level, fmt, args...) \ | 55 | #define IWL_DEBUG_LIMIT(__priv, level, fmt, args...) \ |
55 | do { \ | 56 | do { \ |
56 | if ((__priv->debug_level & (level)) && net_ratelimit()) \ | 57 | if ((iwl_debug_level & (level)) && net_ratelimit()) \ |
57 | dev_printk(KERN_ERR, &(__priv->hw->wiphy->dev), \ | 58 | dev_printk(KERN_ERR, &(__priv->hw->wiphy->dev), \ |
58 | "%c %s " fmt, in_interrupt() ? 'I' : 'U', \ | 59 | "%c %s " fmt, in_interrupt() ? 'I' : 'U', \ |
59 | __func__ , ## args); \ | 60 | __func__ , ## args); \ |
60 | } while (0) | 61 | } while (0) |
61 | 62 | ||
62 | #define iwl_print_hex_dump(priv, level, p, len) \ | 63 | #define iwl_print_hex_dump(level, p, len) \ |
63 | do { \ | 64 | do { \ |
64 | if (priv->debug_level & level) \ | 65 | if (iwl_debug_level & level) \ |
65 | print_hex_dump(KERN_DEBUG, "iwl data: ", \ | 66 | print_hex_dump(KERN_DEBUG, "iwl data: ", \ |
66 | DUMP_PREFIX_OFFSET, 16, 1, p, len, 1); \ | 67 | DUMP_PREFIX_OFFSET, 16, 1, p, len, 1); \ |
67 | } while (0) | 68 | } while (0) |
@@ -103,8 +104,7 @@ void iwl_dbgfs_unregister(struct iwl_priv *priv); | |||
103 | #else | 104 | #else |
104 | #define IWL_DEBUG(__priv, level, fmt, args...) | 105 | #define IWL_DEBUG(__priv, level, fmt, args...) |
105 | #define IWL_DEBUG_LIMIT(__priv, level, fmt, args...) | 106 | #define IWL_DEBUG_LIMIT(__priv, level, fmt, args...) |
106 | static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level, | 107 | static inline void iwl_print_hex_dump(int level, void *p, u32 len) |
107 | void *p, u32 len) | ||
108 | {} | 108 | {} |
109 | #endif /* CONFIG_IWLWIFI_DEBUG */ | 109 | #endif /* CONFIG_IWLWIFI_DEBUG */ |
110 | 110 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 926df3ae2416..0751891f4ab7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -1111,7 +1111,6 @@ struct iwl_priv { | |||
1111 | 1111 | ||
1112 | #ifdef CONFIG_IWLWIFI_DEBUG | 1112 | #ifdef CONFIG_IWLWIFI_DEBUG |
1113 | /* debugging info */ | 1113 | /* debugging info */ |
1114 | u32 debug_level; | ||
1115 | u32 framecnt_to_us; | 1114 | u32 framecnt_to_us; |
1116 | atomic_t restrict_refcnt; | 1115 | atomic_t restrict_refcnt; |
1117 | #ifdef CONFIG_IWLWIFI_DEBUGFS | 1116 | #ifdef CONFIG_IWLWIFI_DEBUGFS |
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c index fc7edd1d34dc..5d5f2153f445 100644 --- a/drivers/net/wireless/iwlwifi/iwl-rx.c +++ b/drivers/net/wireless/iwlwifi/iwl-rx.c | |||
@@ -646,7 +646,7 @@ static void iwl_dbg_report_frame(struct iwl_priv *priv, | |||
646 | u32 tsf_low; | 646 | u32 tsf_low; |
647 | int rssi; | 647 | int rssi; |
648 | 648 | ||
649 | if (likely(!(priv->debug_level & IWL_DL_RX))) | 649 | if (likely(!(iwl_debug_level & IWL_DL_RX))) |
650 | return; | 650 | return; |
651 | 651 | ||
652 | /* MAC header */ | 652 | /* MAC header */ |
@@ -742,7 +742,7 @@ static void iwl_dbg_report_frame(struct iwl_priv *priv, | |||
742 | } | 742 | } |
743 | } | 743 | } |
744 | if (print_dump) | 744 | if (print_dump) |
745 | iwl_print_hex_dump(priv, IWL_DL_RX, header, length); | 745 | iwl_print_hex_dump(IWL_DL_RX, header, length); |
746 | } | 746 | } |
747 | #endif | 747 | #endif |
748 | 748 | ||
@@ -1061,7 +1061,7 @@ void iwl_rx_reply_rx(struct iwl_priv *priv, | |||
1061 | 1061 | ||
1062 | /* Set "1" to report good data frames in groups of 100 */ | 1062 | /* Set "1" to report good data frames in groups of 100 */ |
1063 | #ifdef CONFIG_IWLWIFI_DEBUG | 1063 | #ifdef CONFIG_IWLWIFI_DEBUG |
1064 | if (unlikely(priv->debug_level & IWL_DL_RX)) | 1064 | if (unlikely(iwl_debug_level & IWL_DL_RX)) |
1065 | iwl_dbg_report_frame(priv, rx_start, len, header, 1); | 1065 | iwl_dbg_report_frame(priv, rx_start, len, header, 1); |
1066 | #endif | 1066 | #endif |
1067 | IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, qual %d, TSF %llu\n", | 1067 | IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, qual %d, TSF %llu\n", |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c index 7fd806d33a67..cbe4e26d053f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.c +++ b/drivers/net/wireless/iwlwifi/iwl-sta.c | |||
@@ -1093,7 +1093,7 @@ int iwl_get_sta_id(struct iwl_priv *priv, struct ieee80211_hdr *hdr) | |||
1093 | IWL_DEBUG_DROP(priv, "Station %pM not in station map. " | 1093 | IWL_DEBUG_DROP(priv, "Station %pM not in station map. " |
1094 | "Defaulting to broadcast...\n", | 1094 | "Defaulting to broadcast...\n", |
1095 | hdr->addr1); | 1095 | hdr->addr1); |
1096 | iwl_print_hex_dump(priv, IWL_DL_DROP, (u8 *) hdr, sizeof(*hdr)); | 1096 | iwl_print_hex_dump(IWL_DL_DROP, (u8 *) hdr, sizeof(*hdr)); |
1097 | return priv->hw_params.bcast_sta_id; | 1097 | return priv->hw_params.bcast_sta_id; |
1098 | 1098 | ||
1099 | default: | 1099 | default: |
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c index 7073069a61a9..ef7e6bdb0671 100644 --- a/drivers/net/wireless/iwlwifi/iwl-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c | |||
@@ -869,8 +869,8 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) | |||
869 | IWL_DEBUG_TX(priv, "sequence nr = 0X%x \n", | 869 | IWL_DEBUG_TX(priv, "sequence nr = 0X%x \n", |
870 | le16_to_cpu(out_cmd->hdr.sequence)); | 870 | le16_to_cpu(out_cmd->hdr.sequence)); |
871 | IWL_DEBUG_TX(priv, "tx_flags = 0X%x \n", le32_to_cpu(tx_cmd->tx_flags)); | 871 | IWL_DEBUG_TX(priv, "tx_flags = 0X%x \n", le32_to_cpu(tx_cmd->tx_flags)); |
872 | iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd, sizeof(*tx_cmd)); | 872 | iwl_print_hex_dump(IWL_DL_TX, (u8 *)tx_cmd, sizeof(*tx_cmd)); |
873 | iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd->hdr, hdr_len); | 873 | iwl_print_hex_dump(IWL_DL_TX, (u8 *)tx_cmd->hdr, hdr_len); |
874 | 874 | ||
875 | /* Set up entry for this TFD in Tx byte-count array */ | 875 | /* Set up entry for this TFD in Tx byte-count array */ |
876 | if (info->flags & IEEE80211_TX_CTL_AMPDU) | 876 | if (info->flags & IEEE80211_TX_CTL_AMPDU) |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index bd6a067b4881..221a875b0161 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -612,8 +612,8 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) | |||
612 | IWL_DEBUG_TX(priv, "sequence nr = 0X%x \n", | 612 | IWL_DEBUG_TX(priv, "sequence nr = 0X%x \n", |
613 | le16_to_cpu(out_cmd->hdr.sequence)); | 613 | le16_to_cpu(out_cmd->hdr.sequence)); |
614 | IWL_DEBUG_TX(priv, "tx_flags = 0X%x \n", le32_to_cpu(tx->tx_flags)); | 614 | IWL_DEBUG_TX(priv, "tx_flags = 0X%x \n", le32_to_cpu(tx->tx_flags)); |
615 | iwl_print_hex_dump(priv, IWL_DL_TX, tx, sizeof(*tx)); | 615 | iwl_print_hex_dump(IWL_DL_TX, tx, sizeof(*tx)); |
616 | iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx->hdr, | 616 | iwl_print_hex_dump(IWL_DL_TX, (u8 *)tx->hdr, |
617 | ieee80211_hdrlen(fc)); | 617 | ieee80211_hdrlen(fc)); |
618 | 618 | ||
619 | /* | 619 | /* |
@@ -1644,7 +1644,7 @@ static void iwl3945_irq_tasklet(struct iwl_priv *priv) | |||
1644 | iwl_write32(priv, CSR_FH_INT_STATUS, inta_fh); | 1644 | iwl_write32(priv, CSR_FH_INT_STATUS, inta_fh); |
1645 | 1645 | ||
1646 | #ifdef CONFIG_IWLWIFI_DEBUG | 1646 | #ifdef CONFIG_IWLWIFI_DEBUG |
1647 | if (priv->debug_level & IWL_DL_ISR) { | 1647 | if (iwl_debug_level & IWL_DL_ISR) { |
1648 | /* just for debug */ | 1648 | /* just for debug */ |
1649 | inta_mask = iwl_read32(priv, CSR_INT_MASK); | 1649 | inta_mask = iwl_read32(priv, CSR_INT_MASK); |
1650 | IWL_DEBUG_ISR(priv, "inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", | 1650 | IWL_DEBUG_ISR(priv, "inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", |
@@ -1679,7 +1679,7 @@ static void iwl3945_irq_tasklet(struct iwl_priv *priv) | |||
1679 | } | 1679 | } |
1680 | 1680 | ||
1681 | #ifdef CONFIG_IWLWIFI_DEBUG | 1681 | #ifdef CONFIG_IWLWIFI_DEBUG |
1682 | if (priv->debug_level & (IWL_DL_ISR)) { | 1682 | if (iwl_debug_level & (IWL_DL_ISR)) { |
1683 | /* NIC fires this, but we don't use it, redundant with WAKEUP */ | 1683 | /* NIC fires this, but we don't use it, redundant with WAKEUP */ |
1684 | if (inta & CSR_INT_BIT_SCD) { | 1684 | if (inta & CSR_INT_BIT_SCD) { |
1685 | IWL_DEBUG_ISR(priv, "Scheduler finished to transmit " | 1685 | IWL_DEBUG_ISR(priv, "Scheduler finished to transmit " |
@@ -1758,7 +1758,7 @@ static void iwl3945_irq_tasklet(struct iwl_priv *priv) | |||
1758 | iwl_enable_interrupts(priv); | 1758 | iwl_enable_interrupts(priv); |
1759 | 1759 | ||
1760 | #ifdef CONFIG_IWLWIFI_DEBUG | 1760 | #ifdef CONFIG_IWLWIFI_DEBUG |
1761 | if (priv->debug_level & (IWL_DL_ISR)) { | 1761 | if (iwl_debug_level & (IWL_DL_ISR)) { |
1762 | inta = iwl_read32(priv, CSR_INT); | 1762 | inta = iwl_read32(priv, CSR_INT); |
1763 | inta_mask = iwl_read32(priv, CSR_INT_MASK); | 1763 | inta_mask = iwl_read32(priv, CSR_INT_MASK); |
1764 | inta_fh = iwl_read32(priv, CSR_FH_INT_STATUS); | 1764 | inta_fh = iwl_read32(priv, CSR_FH_INT_STATUS); |
@@ -3308,13 +3308,15 @@ static int iwl3945_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, | |||
3308 | * used for controlling the debug level. | 3308 | * used for controlling the debug level. |
3309 | * | 3309 | * |
3310 | * See the level definitions in iwl for details. | 3310 | * See the level definitions in iwl for details. |
3311 | * | ||
3312 | * FIXME This file can be deprecated as the module parameter is | ||
3313 | * writable and users can thus also change the debug level | ||
3314 | * using the /sys/module/iwl3945/parameters/debug file. | ||
3311 | */ | 3315 | */ |
3312 | static ssize_t show_debug_level(struct device *d, | 3316 | static ssize_t show_debug_level(struct device *d, |
3313 | struct device_attribute *attr, char *buf) | 3317 | struct device_attribute *attr, char *buf) |
3314 | { | 3318 | { |
3315 | struct iwl_priv *priv = dev_get_drvdata(d); | 3319 | return sprintf(buf, "0x%08X\n", iwl_debug_level); |
3316 | |||
3317 | return sprintf(buf, "0x%08X\n", priv->debug_level); | ||
3318 | } | 3320 | } |
3319 | static ssize_t store_debug_level(struct device *d, | 3321 | static ssize_t store_debug_level(struct device *d, |
3320 | struct device_attribute *attr, | 3322 | struct device_attribute *attr, |
@@ -3328,7 +3330,7 @@ static ssize_t store_debug_level(struct device *d, | |||
3328 | if (ret) | 3330 | if (ret) |
3329 | IWL_INFO(priv, "%s is not in hex or decimal form.\n", buf); | 3331 | IWL_INFO(priv, "%s is not in hex or decimal form.\n", buf); |
3330 | else | 3332 | else |
3331 | priv->debug_level = val; | 3333 | iwl_debug_level = val; |
3332 | 3334 | ||
3333 | return strnlen(buf, count); | 3335 | return strnlen(buf, count); |
3334 | } | 3336 | } |
@@ -3966,7 +3968,6 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e | |||
3966 | priv->inta_mask = CSR_INI_SET_MASK; | 3968 | priv->inta_mask = CSR_INI_SET_MASK; |
3967 | 3969 | ||
3968 | #ifdef CONFIG_IWLWIFI_DEBUG | 3970 | #ifdef CONFIG_IWLWIFI_DEBUG |
3969 | priv->debug_level = iwl3945_mod_params.debug; | ||
3970 | atomic_set(&priv->restrict_refcnt, 0); | 3971 | atomic_set(&priv->restrict_refcnt, 0); |
3971 | #endif | 3972 | #endif |
3972 | 3973 | ||
@@ -4262,8 +4263,10 @@ MODULE_PARM_DESC(antenna, "select antenna (1=Main, 2=Aux, default 0 [both])"); | |||
4262 | module_param_named(swcrypto, iwl3945_mod_params.sw_crypto, int, 0444); | 4263 | module_param_named(swcrypto, iwl3945_mod_params.sw_crypto, int, 0444); |
4263 | MODULE_PARM_DESC(swcrypto, | 4264 | MODULE_PARM_DESC(swcrypto, |
4264 | "using software crypto (default 1 [software])\n"); | 4265 | "using software crypto (default 1 [software])\n"); |
4265 | module_param_named(debug, iwl3945_mod_params.debug, uint, 0444); | 4266 | #ifdef CONFIG_IWLWIFI_DEBUG |
4267 | module_param_named(debug, iwl_debug_level, uint, 0644); | ||
4266 | MODULE_PARM_DESC(debug, "debug output mask"); | 4268 | MODULE_PARM_DESC(debug, "debug output mask"); |
4269 | #endif | ||
4267 | module_param_named(disable_hw_scan, iwl3945_mod_params.disable_hw_scan, int, 0444); | 4270 | module_param_named(disable_hw_scan, iwl3945_mod_params.disable_hw_scan, int, 0444); |
4268 | MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)"); | 4271 | MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)"); |
4269 | module_param_named(fw_restart3945, iwl3945_mod_params.restart_fw, int, 0444); | 4272 | module_param_named(fw_restart3945, iwl3945_mod_params.restart_fw, int, 0444); |