diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-commands.h | 27 |
2 files changed, 32 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 3526d5ee4755..8a002c6f3a61 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -1843,6 +1843,7 @@ void iwl_dump_nic_error_log(struct iwl_priv *priv) | |||
1843 | u32 data2, line; | 1843 | u32 data2, line; |
1844 | u32 desc, time, count, base, data1; | 1844 | u32 desc, time, count, base, data1; |
1845 | u32 blink1, blink2, ilink1, ilink2; | 1845 | u32 blink1, blink2, ilink1, ilink2; |
1846 | u32 pc, hcmd; | ||
1846 | 1847 | ||
1847 | if (priv->ucode_type == UCODE_INIT) | 1848 | if (priv->ucode_type == UCODE_INIT) |
1848 | base = le32_to_cpu(priv->card_alive_init.error_event_table_ptr); | 1849 | base = le32_to_cpu(priv->card_alive_init.error_event_table_ptr); |
@@ -1865,6 +1866,7 @@ void iwl_dump_nic_error_log(struct iwl_priv *priv) | |||
1865 | } | 1866 | } |
1866 | 1867 | ||
1867 | desc = iwl_read_targ_mem(priv, base + 1 * sizeof(u32)); | 1868 | desc = iwl_read_targ_mem(priv, base + 1 * sizeof(u32)); |
1869 | pc = iwl_read_targ_mem(priv, base + 2 * sizeof(u32)); | ||
1868 | blink1 = iwl_read_targ_mem(priv, base + 3 * sizeof(u32)); | 1870 | blink1 = iwl_read_targ_mem(priv, base + 3 * sizeof(u32)); |
1869 | blink2 = iwl_read_targ_mem(priv, base + 4 * sizeof(u32)); | 1871 | blink2 = iwl_read_targ_mem(priv, base + 4 * sizeof(u32)); |
1870 | ilink1 = iwl_read_targ_mem(priv, base + 5 * sizeof(u32)); | 1872 | ilink1 = iwl_read_targ_mem(priv, base + 5 * sizeof(u32)); |
@@ -1873,6 +1875,7 @@ void iwl_dump_nic_error_log(struct iwl_priv *priv) | |||
1873 | data2 = iwl_read_targ_mem(priv, base + 8 * sizeof(u32)); | 1875 | data2 = iwl_read_targ_mem(priv, base + 8 * sizeof(u32)); |
1874 | line = iwl_read_targ_mem(priv, base + 9 * sizeof(u32)); | 1876 | line = iwl_read_targ_mem(priv, base + 9 * sizeof(u32)); |
1875 | time = iwl_read_targ_mem(priv, base + 11 * sizeof(u32)); | 1877 | time = iwl_read_targ_mem(priv, base + 11 * sizeof(u32)); |
1878 | hcmd = iwl_read_targ_mem(priv, base + 22 * sizeof(u32)); | ||
1876 | 1879 | ||
1877 | trace_iwlwifi_dev_ucode_error(priv, desc, time, data1, data2, line, | 1880 | trace_iwlwifi_dev_ucode_error(priv, desc, time, data1, data2, line, |
1878 | blink1, blink2, ilink1, ilink2); | 1881 | blink1, blink2, ilink1, ilink2); |
@@ -1881,10 +1884,9 @@ void iwl_dump_nic_error_log(struct iwl_priv *priv) | |||
1881 | "data1 data2 line\n"); | 1884 | "data1 data2 line\n"); |
1882 | IWL_ERR(priv, "%-28s (#%02d) %010u 0x%08X 0x%08X %u\n", | 1885 | IWL_ERR(priv, "%-28s (#%02d) %010u 0x%08X 0x%08X %u\n", |
1883 | desc_lookup(desc), desc, time, data1, data2, line); | 1886 | desc_lookup(desc), desc, time, data1, data2, line); |
1884 | IWL_ERR(priv, "blink1 blink2 ilink1 ilink2\n"); | 1887 | IWL_ERR(priv, "pc blink1 blink2 ilink1 ilink2 hcmd\n"); |
1885 | IWL_ERR(priv, "0x%05X 0x%05X 0x%05X 0x%05X\n", blink1, blink2, | 1888 | IWL_ERR(priv, "0x%05X 0x%05X 0x%05X 0x%05X 0x%05X 0x%05X\n", |
1886 | ilink1, ilink2); | 1889 | pc, blink1, blink2, ilink1, ilink2, hcmd); |
1887 | |||
1888 | } | 1890 | } |
1889 | 1891 | ||
1890 | #define EVENT_START_OFFSET (4 * sizeof(u32)) | 1892 | #define EVENT_START_OFFSET (4 * sizeof(u32)) |
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index 6383d9f8c9b3..74d6887c7500 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -512,8 +512,9 @@ struct iwl_init_alive_resp { | |||
512 | * | 512 | * |
513 | * Entries without timestamps contain only event_id and data. | 513 | * Entries without timestamps contain only event_id and data. |
514 | * | 514 | * |
515 | * | ||
515 | * 2) error_event_table_ptr indicates base of the error log. This contains | 516 | * 2) error_event_table_ptr indicates base of the error log. This contains |
516 | * information about any uCode error that occurs. For 4965, the format | 517 | * information about any uCode error that occurs. For agn, the format |
517 | * of the error log is: | 518 | * of the error log is: |
518 | * | 519 | * |
519 | * __le32 valid; (nonzero) valid, (0) log is empty | 520 | * __le32 valid; (nonzero) valid, (0) log is empty |
@@ -529,6 +530,30 @@ struct iwl_init_alive_resp { | |||
529 | * __le32 bcon_time; beacon timer | 530 | * __le32 bcon_time; beacon timer |
530 | * __le32 tsf_low; network timestamp function timer | 531 | * __le32 tsf_low; network timestamp function timer |
531 | * __le32 tsf_hi; network timestamp function timer | 532 | * __le32 tsf_hi; network timestamp function timer |
533 | * __le32 gp1; GP1 timer register | ||
534 | * __le32 gp2; GP2 timer register | ||
535 | * __le32 gp3; GP3 timer register | ||
536 | * __le32 ucode_ver; uCode version | ||
537 | * __le32 hw_ver; HW Silicon version | ||
538 | * __le32 brd_ver; HW board version | ||
539 | * __le32 log_pc; log program counter | ||
540 | * __le32 frame_ptr; frame pointer | ||
541 | * __le32 stack_ptr; stack pointer | ||
542 | * __le32 hcmd; last host command | ||
543 | * __le32 isr0; isr status register LMPM_NIC_ISR0: rxtx_flag | ||
544 | * __le32 isr1; isr status register LMPM_NIC_ISR1: host_flag | ||
545 | * __le32 isr2; isr status register LMPM_NIC_ISR2: enc_flag | ||
546 | * __le32 isr3; isr status register LMPM_NIC_ISR3: time_flag | ||
547 | * __le32 isr4; isr status register LMPM_NIC_ISR4: wico interrupt | ||
548 | * __le32 isr_pref; isr status register LMPM_NIC_PREF_STAT | ||
549 | * __le32 wait_event; wait event() caller address | ||
550 | * __le32 l2p_control; L2pControlField | ||
551 | * __le32 l2p_duration; L2pDurationField | ||
552 | * __le32 l2p_mhvalid; L2pMhValidBits | ||
553 | * __le32 l2p_addr_match; L2pAddrMatchStat | ||
554 | * __le32 lmpm_pmg_sel; indicate which clocks are turned on (LMPM_PMG_SEL) | ||
555 | * __le32 u_timestamp; indicate when the date and time of the compilation | ||
556 | * __le32 reserved; | ||
532 | * | 557 | * |
533 | * The Linux driver can print both logs to the system log when a uCode error | 558 | * The Linux driver can print both logs to the system log when a uCode error |
534 | * occurs. | 559 | * occurs. |