aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2016-03-07 03:16:38 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2016-03-09 14:05:16 -0500
commit7d3ca7f4b1d5a43a1e0dbd112bb4c3bcf9a81fab (patch)
tree5f50832f23495fc4d6fb7f697015f3386af6f341 /drivers/net
parente0e168dc8c4e41bab6ab94a838cfee50dd2b5f25 (diff)
iwlwifi: mvm: adapt the firmware assert log to new firmware
Newer firmware versions put different data in the memory which is read by the driver upon firmware crash. Just change the variable names in the code and the name of the data in the log that we print withouth any functional change. On older firmware, there will be a mismatch between the names that are printed and the content itself, but that's harmless. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/dvm/main.c8
-rw-r--r--drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h27
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/utils.c28
3 files changed, 30 insertions, 33 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/main.c b/drivers/net/wireless/intel/iwlwifi/dvm/main.c
index f62c2d727ddb..85628127947f 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/main.c
@@ -1652,10 +1652,10 @@ static void iwl_dump_nic_error_log(struct iwl_priv *priv)
1652 1652
1653 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low, 1653 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low,
1654 table.data1, table.data2, table.line, 1654 table.data1, table.data2, table.line,
1655 table.blink1, table.blink2, table.ilink1, 1655 table.blink2, table.ilink1, table.ilink2,
1656 table.ilink2, table.bcon_time, table.gp1, 1656 table.bcon_time, table.gp1, table.gp2,
1657 table.gp2, table.gp3, table.ucode_ver, 1657 table.gp3, table.ucode_ver, table.hw_ver,
1658 table.hw_ver, 0, table.brd_ver); 1658 0, table.brd_ver);
1659 IWL_ERR(priv, "0x%08X | %-28s\n", table.error_id, 1659 IWL_ERR(priv, "0x%08X | %-28s\n", table.error_id,
1660 desc_lookup(table.error_id)); 1660 desc_lookup(table.error_id));
1661 IWL_ERR(priv, "0x%08X | uPc\n", table.pc); 1661 IWL_ERR(priv, "0x%08X | uPc\n", table.pc);
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h
index 2a0703fcec56..f02e2c89abbb 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h
@@ -2,6 +2,7 @@
2 * 2 *
3 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved. 3 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved.
4 * Copyright(c) 2015 Intel Mobile Communications GmbH 4 * Copyright(c) 2015 Intel Mobile Communications GmbH
5 * Copyright(c) 2016 Intel Deutschland GmbH
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of version 2 of the GNU General Public License as 8 * under the terms of version 2 of the GNU General Public License as
@@ -121,13 +122,12 @@ TRACE_EVENT(iwlwifi_dev_tx,
121 122
122TRACE_EVENT(iwlwifi_dev_ucode_error, 123TRACE_EVENT(iwlwifi_dev_ucode_error,
123 TP_PROTO(const struct device *dev, u32 desc, u32 tsf_low, 124 TP_PROTO(const struct device *dev, u32 desc, u32 tsf_low,
124 u32 data1, u32 data2, u32 line, u32 blink1, 125 u32 data1, u32 data2, u32 line, u32 blink2, u32 ilink1,
125 u32 blink2, u32 ilink1, u32 ilink2, u32 bcon_time, 126 u32 ilink2, u32 bcon_time, u32 gp1, u32 gp2, u32 rev_type,
126 u32 gp1, u32 gp2, u32 gp3, u32 major, u32 minor, u32 hw_ver, 127 u32 major, u32 minor, u32 hw_ver, u32 brd_ver),
127 u32 brd_ver),
128 TP_ARGS(dev, desc, tsf_low, data1, data2, line, 128 TP_ARGS(dev, desc, tsf_low, data1, data2, line,
129 blink1, blink2, ilink1, ilink2, bcon_time, gp1, gp2, 129 blink2, ilink1, ilink2, bcon_time, gp1, gp2,
130 gp3, major, minor, hw_ver, brd_ver), 130 rev_type, major, minor, hw_ver, brd_ver),
131 TP_STRUCT__entry( 131 TP_STRUCT__entry(
132 DEV_ENTRY 132 DEV_ENTRY
133 __field(u32, desc) 133 __field(u32, desc)
@@ -135,14 +135,13 @@ TRACE_EVENT(iwlwifi_dev_ucode_error,
135 __field(u32, data1) 135 __field(u32, data1)
136 __field(u32, data2) 136 __field(u32, data2)
137 __field(u32, line) 137 __field(u32, line)
138 __field(u32, blink1)
139 __field(u32, blink2) 138 __field(u32, blink2)
140 __field(u32, ilink1) 139 __field(u32, ilink1)
141 __field(u32, ilink2) 140 __field(u32, ilink2)
142 __field(u32, bcon_time) 141 __field(u32, bcon_time)
143 __field(u32, gp1) 142 __field(u32, gp1)
144 __field(u32, gp2) 143 __field(u32, gp2)
145 __field(u32, gp3) 144 __field(u32, rev_type)
146 __field(u32, major) 145 __field(u32, major)
147 __field(u32, minor) 146 __field(u32, minor)
148 __field(u32, hw_ver) 147 __field(u32, hw_ver)
@@ -155,29 +154,27 @@ TRACE_EVENT(iwlwifi_dev_ucode_error,
155 __entry->data1 = data1; 154 __entry->data1 = data1;
156 __entry->data2 = data2; 155 __entry->data2 = data2;
157 __entry->line = line; 156 __entry->line = line;
158 __entry->blink1 = blink1;
159 __entry->blink2 = blink2; 157 __entry->blink2 = blink2;
160 __entry->ilink1 = ilink1; 158 __entry->ilink1 = ilink1;
161 __entry->ilink2 = ilink2; 159 __entry->ilink2 = ilink2;
162 __entry->bcon_time = bcon_time; 160 __entry->bcon_time = bcon_time;
163 __entry->gp1 = gp1; 161 __entry->gp1 = gp1;
164 __entry->gp2 = gp2; 162 __entry->gp2 = gp2;
165 __entry->gp3 = gp3; 163 __entry->rev_type = rev_type;
166 __entry->major = major; 164 __entry->major = major;
167 __entry->minor = minor; 165 __entry->minor = minor;
168 __entry->hw_ver = hw_ver; 166 __entry->hw_ver = hw_ver;
169 __entry->brd_ver = brd_ver; 167 __entry->brd_ver = brd_ver;
170 ), 168 ),
171 TP_printk("[%s] #%02d %010u data 0x%08X 0x%08X line %u, " 169 TP_printk("[%s] #%02d %010u data 0x%08X 0x%08X line %u, "
172 "blink 0x%05X 0x%05X ilink 0x%05X 0x%05X " 170 "blink2 0x%05X ilink 0x%05X 0x%05X "
173 "bcon_tm %010u gp 0x%08X 0x%08X 0x%08X major 0x%08X " 171 "bcon_tm %010u gp 0x%08X 0x%08X rev_type 0x%08X major 0x%08X "
174 "minor 0x%08X hw 0x%08X brd 0x%08X", 172 "minor 0x%08X hw 0x%08X brd 0x%08X",
175 __get_str(dev), __entry->desc, __entry->tsf_low, 173 __get_str(dev), __entry->desc, __entry->tsf_low,
176 __entry->data1, 174 __entry->data1, __entry->data2, __entry->line,
177 __entry->data2, __entry->line, __entry->blink1,
178 __entry->blink2, __entry->ilink1, __entry->ilink2, 175 __entry->blink2, __entry->ilink1, __entry->ilink2,
179 __entry->bcon_time, __entry->gp1, __entry->gp2, 176 __entry->bcon_time, __entry->gp1, __entry->gp2,
180 __entry->gp3, __entry->major, __entry->minor, 177 __entry->rev_type, __entry->major, __entry->minor,
181 __entry->hw_ver, __entry->brd_ver) 178 __entry->hw_ver, __entry->brd_ver)
182); 179);
183 180
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
index 59453c176580..53cdc5760f68 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
@@ -376,8 +376,8 @@ struct iwl_error_event_table_v1 {
376struct iwl_error_event_table { 376struct iwl_error_event_table {
377 u32 valid; /* (nonzero) valid, (0) log is empty */ 377 u32 valid; /* (nonzero) valid, (0) log is empty */
378 u32 error_id; /* type of error */ 378 u32 error_id; /* type of error */
379 u32 pc; /* program counter */ 379 u32 trm_hw_status0; /* TRM HW status */
380 u32 blink1; /* branch link */ 380 u32 trm_hw_status1; /* TRM HW status */
381 u32 blink2; /* branch link */ 381 u32 blink2; /* branch link */
382 u32 ilink1; /* interrupt link */ 382 u32 ilink1; /* interrupt link */
383 u32 ilink2; /* interrupt link */ 383 u32 ilink2; /* interrupt link */
@@ -389,7 +389,7 @@ struct iwl_error_event_table {
389 u32 tsf_hi; /* network timestamp function timer */ 389 u32 tsf_hi; /* network timestamp function timer */
390 u32 gp1; /* GP1 timer register */ 390 u32 gp1; /* GP1 timer register */
391 u32 gp2; /* GP2 timer register */ 391 u32 gp2; /* GP2 timer register */
392 u32 gp3; /* GP3 timer register */ 392 u32 fw_rev_type; /* firmware revision type */
393 u32 major; /* uCode version major */ 393 u32 major; /* uCode version major */
394 u32 minor; /* uCode version minor */ 394 u32 minor; /* uCode version minor */
395 u32 hw_ver; /* HW Silicon version */ 395 u32 hw_ver; /* HW Silicon version */
@@ -408,7 +408,7 @@ struct iwl_error_event_table {
408 * time_flag */ 408 * time_flag */
409 u32 isr4; /* isr status register LMPM_NIC_ISR4: 409 u32 isr4; /* isr status register LMPM_NIC_ISR4:
410 * wico interrupt */ 410 * wico interrupt */
411 u32 isr_pref; /* isr status register LMPM_NIC_PREF_STAT */ 411 u32 last_cmd_id; /* last HCMD id handled by the firmware */
412 u32 wait_event; /* wait event() caller address */ 412 u32 wait_event; /* wait event() caller address */
413 u32 l2p_control; /* L2pControlField */ 413 u32 l2p_control; /* L2pControlField */
414 u32 l2p_duration; /* L2pDurationField */ 414 u32 l2p_duration; /* L2pDurationField */
@@ -419,7 +419,7 @@ struct iwl_error_event_table {
419 u32 u_timestamp; /* indicate when the date and time of the 419 u32 u_timestamp; /* indicate when the date and time of the
420 * compilation */ 420 * compilation */
421 u32 flow_handler; /* FH read/write pointers, RX credit */ 421 u32 flow_handler; /* FH read/write pointers, RX credit */
422} __packed /* LOG_ERROR_TABLE_API_S_VER_2 */; 422} __packed /* LOG_ERROR_TABLE_API_S_VER_3 */;
423 423
424/* 424/*
425 * UMAC error struct - relevant starting from family 8000 chip. 425 * UMAC error struct - relevant starting from family 8000 chip.
@@ -529,9 +529,9 @@ static void iwl_mvm_dump_nic_error_log_old(struct iwl_mvm *mvm)
529 529
530 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low, 530 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low,
531 table.data1, table.data2, table.data3, 531 table.data1, table.data2, table.data3,
532 table.blink1, table.blink2, table.ilink1, 532 table.blink2, table.ilink1, table.ilink2,
533 table.ilink2, table.bcon_time, table.gp1, 533 table.bcon_time, table.gp1, table.gp2,
534 table.gp2, table.gp3, table.ucode_ver, 0, 534 table.gp3, table.ucode_ver, 0,
535 table.hw_ver, table.brd_ver); 535 table.hw_ver, table.brd_ver);
536 IWL_ERR(mvm, "0x%08X | %-28s\n", table.error_id, 536 IWL_ERR(mvm, "0x%08X | %-28s\n", table.error_id,
537 desc_lookup(table.error_id)); 537 desc_lookup(table.error_id));
@@ -615,14 +615,14 @@ void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm)
615 615
616 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low, 616 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low,
617 table.data1, table.data2, table.data3, 617 table.data1, table.data2, table.data3,
618 table.blink1, table.blink2, table.ilink1, 618 table.blink2, table.ilink1,
619 table.ilink2, table.bcon_time, table.gp1, 619 table.ilink2, table.bcon_time, table.gp1,
620 table.gp2, table.gp3, table.major, 620 table.gp2, table.fw_rev_type, table.major,
621 table.minor, table.hw_ver, table.brd_ver); 621 table.minor, table.hw_ver, table.brd_ver);
622 IWL_ERR(mvm, "0x%08X | %-28s\n", table.error_id, 622 IWL_ERR(mvm, "0x%08X | %-28s\n", table.error_id,
623 desc_lookup(table.error_id)); 623 desc_lookup(table.error_id));
624 IWL_ERR(mvm, "0x%08X | uPc\n", table.pc); 624 IWL_ERR(mvm, "0x%08X | trm_hw_status0\n", table.trm_hw_status0);
625 IWL_ERR(mvm, "0x%08X | branchlink1\n", table.blink1); 625 IWL_ERR(mvm, "0x%08X | trm_hw_status1\n", table.trm_hw_status1);
626 IWL_ERR(mvm, "0x%08X | branchlink2\n", table.blink2); 626 IWL_ERR(mvm, "0x%08X | branchlink2\n", table.blink2);
627 IWL_ERR(mvm, "0x%08X | interruptlink1\n", table.ilink1); 627 IWL_ERR(mvm, "0x%08X | interruptlink1\n", table.ilink1);
628 IWL_ERR(mvm, "0x%08X | interruptlink2\n", table.ilink2); 628 IWL_ERR(mvm, "0x%08X | interruptlink2\n", table.ilink2);
@@ -634,7 +634,7 @@ void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm)
634 IWL_ERR(mvm, "0x%08X | tsf hi\n", table.tsf_hi); 634 IWL_ERR(mvm, "0x%08X | tsf hi\n", table.tsf_hi);
635 IWL_ERR(mvm, "0x%08X | time gp1\n", table.gp1); 635 IWL_ERR(mvm, "0x%08X | time gp1\n", table.gp1);
636 IWL_ERR(mvm, "0x%08X | time gp2\n", table.gp2); 636 IWL_ERR(mvm, "0x%08X | time gp2\n", table.gp2);
637 IWL_ERR(mvm, "0x%08X | time gp3\n", table.gp3); 637 IWL_ERR(mvm, "0x%08X | uCode revision type\n", table.fw_rev_type);
638 IWL_ERR(mvm, "0x%08X | uCode version major\n", table.major); 638 IWL_ERR(mvm, "0x%08X | uCode version major\n", table.major);
639 IWL_ERR(mvm, "0x%08X | uCode version minor\n", table.minor); 639 IWL_ERR(mvm, "0x%08X | uCode version minor\n", table.minor);
640 IWL_ERR(mvm, "0x%08X | hw version\n", table.hw_ver); 640 IWL_ERR(mvm, "0x%08X | hw version\n", table.hw_ver);
@@ -645,7 +645,7 @@ void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm)
645 IWL_ERR(mvm, "0x%08X | isr2\n", table.isr2); 645 IWL_ERR(mvm, "0x%08X | isr2\n", table.isr2);
646 IWL_ERR(mvm, "0x%08X | isr3\n", table.isr3); 646 IWL_ERR(mvm, "0x%08X | isr3\n", table.isr3);
647 IWL_ERR(mvm, "0x%08X | isr4\n", table.isr4); 647 IWL_ERR(mvm, "0x%08X | isr4\n", table.isr4);
648 IWL_ERR(mvm, "0x%08X | isr_pref\n", table.isr_pref); 648 IWL_ERR(mvm, "0x%08X | last cmd Id\n", table.last_cmd_id);
649 IWL_ERR(mvm, "0x%08X | wait_event\n", table.wait_event); 649 IWL_ERR(mvm, "0x%08X | wait_event\n", table.wait_event);
650 IWL_ERR(mvm, "0x%08X | l2p_control\n", table.l2p_control); 650 IWL_ERR(mvm, "0x%08X | l2p_control\n", table.l2p_control);
651 IWL_ERR(mvm, "0x%08X | l2p_duration\n", table.l2p_duration); 651 IWL_ERR(mvm, "0x%08X | l2p_duration\n", table.l2p_duration);