aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinas Vepstas <linas@linas.org>2005-11-03 19:52:49 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-09 23:28:32 -0500
commit77bd741561016134d1761d6101c4f0361025062f (patch)
tree5e3389b6941add4b24a2be64c730b7a9087c1f2f /include
parent977127174a7dff52d17faeeb4c4949a54221881f (diff)
[PATCH] powerpc: PCI Error Recovery: PPC64 core recovery routines
Various PCI bus errors can be signaled by newer PCI controllers. The core error recovery routines are architecture dependent. This patch adds a recovery infrastructure for the PPC64 pSeries systems. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> (cherry picked from e8ca11b460c4c9c7fa6b529be221529ebd770e38 commit)
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/eeh.h8
-rw-r--r--include/asm-powerpc/eeh_event.h7
-rw-r--r--include/asm-powerpc/ppc-pci.h9
3 files changed, 19 insertions, 5 deletions
diff --git a/include/asm-powerpc/eeh.h b/include/asm-powerpc/eeh.h
index 4395b7bc1ed4..b263fb2fa6e4 100644
--- a/include/asm-powerpc/eeh.h
+++ b/include/asm-powerpc/eeh.h
@@ -34,9 +34,11 @@ struct device_node;
34extern int eeh_subsystem_enabled; 34extern int eeh_subsystem_enabled;
35 35
36/* Values for eeh_mode bits in device_node */ 36/* Values for eeh_mode bits in device_node */
37#define EEH_MODE_SUPPORTED (1<<0) 37#define EEH_MODE_SUPPORTED (1<<0)
38#define EEH_MODE_NOCHECK (1<<1) 38#define EEH_MODE_NOCHECK (1<<1)
39#define EEH_MODE_ISOLATED (1<<2) 39#define EEH_MODE_ISOLATED (1<<2)
40#define EEH_MODE_RECOVERING (1<<3)
41#define EEH_MODE_IRQ_DISABLED (1<<4)
40 42
41/* Max number of EEH freezes allowed before we consider the device 43/* Max number of EEH freezes allowed before we consider the device
42 * to be permanently disabled. */ 44 * to be permanently disabled. */
diff --git a/include/asm-powerpc/eeh_event.h b/include/asm-powerpc/eeh_event.h
index 5e11a00b6fa0..93d55a2bebfd 100644
--- a/include/asm-powerpc/eeh_event.h
+++ b/include/asm-powerpc/eeh_event.h
@@ -30,7 +30,7 @@ struct eeh_event {
30 struct list_head list; 30 struct list_head list;
31 struct device_node *dn; /* struct device node */ 31 struct device_node *dn; /* struct device node */
32 struct pci_dev *dev; /* affected device */ 32 struct pci_dev *dev; /* affected device */
33 int state; 33 enum pci_channel_state state; /* PCI bus state for the affected device */
34 int time_unavail; /* milliseconds until device might be available */ 34 int time_unavail; /* milliseconds until device might be available */
35}; 35};
36 36
@@ -47,8 +47,11 @@ struct eeh_event {
47 */ 47 */
48int eeh_send_failure_event (struct device_node *dn, 48int eeh_send_failure_event (struct device_node *dn,
49 struct pci_dev *dev, 49 struct pci_dev *dev,
50 int reset_state, 50 enum pci_channel_state state,
51 int time_unavail); 51 int time_unavail);
52 52
53/* Main recovery function */
54void handle_eeh_events (struct eeh_event *);
55
53#endif /* __KERNEL__ */ 56#endif /* __KERNEL__ */
54#endif /* ASM_PPC64_EEH_EVENT_H */ 57#endif /* ASM_PPC64_EEH_EVENT_H */
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h
index bdef312900a1..caf67a3bcb78 100644
--- a/include/asm-powerpc/ppc-pci.h
+++ b/include/asm-powerpc/ppc-pci.h
@@ -53,6 +53,15 @@ extern unsigned long pci_probe_only;
53/* ---- EEH internal-use-only related routines ---- */ 53/* ---- EEH internal-use-only related routines ---- */
54#ifdef CONFIG_EEH 54#ifdef CONFIG_EEH
55/** 55/**
56 * eeh_slot_error_detail -- record and EEH error condition to the log
57 * @severity: 1 if temporary, 2 if permanent failure.
58 *
59 * Obtains the the EEH error details from the RTAS subsystem,
60 * and then logs these details with the RTAS error log system.
61 */
62void eeh_slot_error_detail (struct pci_dn *pdn, int severity);
63
64/**
56 * rtas_set_slot_reset -- unfreeze a frozen slot 65 * rtas_set_slot_reset -- unfreeze a frozen slot
57 * 66 *
58 * Clear the EEH-frozen condition on a slot. This routine 67 * Clear the EEH-frozen condition on a slot. This routine