diff options
author | James Ketrenos <jketreno@linux.intel.com> | 2005-08-12 10:36:32 -0400 |
---|---|---|
committer | James Ketrenos <jketreno@linux.intel.com> | 2005-11-07 18:50:55 -0500 |
commit | b39860c60b135ef16c1c16a3e2a757ff8070c5ad (patch) | |
tree | dde06d69fb792a0993e3a756d35a0cc9509388cf /drivers/net/wireless/ipw2200.h | |
parent | e666619e232308c8ee2aba6b87f28ad26b38d905 (diff) |
Switched firmware error dumping so that it will capture a log available
via sysfs even if debugging disabled. When a firmware error is
captured, it will be dumped to the kernel log (if debug enabled) and
captured in memory to be retrieved via sysfs.
If an error has already been captured, subsequent errors will be
dropped.
The existing error can be cleared by writing to the error log entry.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Diffstat (limited to 'drivers/net/wireless/ipw2200.h')
-rw-r--r-- | drivers/net/wireless/ipw2200.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/drivers/net/wireless/ipw2200.h b/drivers/net/wireless/ipw2200.h index 9bf8aa427d8c..9bf03ac55390 100644 --- a/drivers/net/wireless/ipw2200.h +++ b/drivers/net/wireless/ipw2200.h | |||
@@ -1085,6 +1085,32 @@ struct ipw_ibss_seq { | |||
1085 | struct list_head list; | 1085 | struct list_head list; |
1086 | }; | 1086 | }; |
1087 | 1087 | ||
1088 | struct ipw_error_elem { | ||
1089 | u32 desc; | ||
1090 | u32 time; | ||
1091 | u32 blink1; | ||
1092 | u32 blink2; | ||
1093 | u32 link1; | ||
1094 | u32 link2; | ||
1095 | u32 data; | ||
1096 | }; | ||
1097 | |||
1098 | struct ipw_event { | ||
1099 | u32 event; | ||
1100 | u32 time; | ||
1101 | u32 data; | ||
1102 | } __attribute__ ((packed)); | ||
1103 | |||
1104 | struct ipw_fw_error { | ||
1105 | u32 status; | ||
1106 | u32 config; | ||
1107 | u32 elem_len; | ||
1108 | u32 log_len; | ||
1109 | struct ipw_error_elem *elem; | ||
1110 | struct ipw_event *log; | ||
1111 | u8 payload[0]; | ||
1112 | } __attribute__ ((packed)); | ||
1113 | |||
1088 | struct ipw_priv { | 1114 | struct ipw_priv { |
1089 | /* ieee device used by generic ieee processing code */ | 1115 | /* ieee device used by generic ieee processing code */ |
1090 | struct ieee80211_device *ieee; | 1116 | struct ieee80211_device *ieee; |
@@ -1245,6 +1271,8 @@ struct ipw_priv { | |||
1245 | u32 pm_state[16]; | 1271 | u32 pm_state[16]; |
1246 | #endif | 1272 | #endif |
1247 | 1273 | ||
1274 | struct ipw_fw_error *error; | ||
1275 | |||
1248 | /* network state */ | 1276 | /* network state */ |
1249 | 1277 | ||
1250 | /* Used to pass the current INTA value from ISR to Tasklet */ | 1278 | /* Used to pass the current INTA value from ISR to Tasklet */ |
@@ -1803,7 +1831,7 @@ enum { | |||
1803 | IPW_ORD_TABLE_7_LAST | 1831 | IPW_ORD_TABLE_7_LAST |
1804 | }; | 1832 | }; |
1805 | 1833 | ||
1806 | #define IPWSTATUS_ERROR_LOG (IPW_SHARED_LOWER_BOUND + 0x410) | 1834 | #define IPW_ERROR_LOG (IPW_SHARED_LOWER_BOUND + 0x410) |
1807 | #define IPW_EVENT_LOG (IPW_SHARED_LOWER_BOUND + 0x414) | 1835 | #define IPW_EVENT_LOG (IPW_SHARED_LOWER_BOUND + 0x414) |
1808 | #define IPW_ORDINALS_TABLE_LOWER (IPW_SHARED_LOWER_BOUND + 0x500) | 1836 | #define IPW_ORDINALS_TABLE_LOWER (IPW_SHARED_LOWER_BOUND + 0x500) |
1809 | #define IPW_ORDINALS_TABLE_0 (IPW_SHARED_LOWER_BOUND + 0x180) | 1837 | #define IPW_ORDINALS_TABLE_0 (IPW_SHARED_LOWER_BOUND + 0x180) |