diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2012-02-27 15:03:51 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-03-08 19:08:11 -0500 |
commit | cb3bc9d0de1e247268622acd40e0d2f8120f299c (patch) | |
tree | 35eb3908f37e202e4d17710d4864f048c1fdf2c8 /arch/powerpc/include/asm/ppc-pci.h | |
parent | b0787660260604ba63621881851de0032279819b (diff) |
powerpc/eeh: Cleanup comments in the EEH core
The EEH has been implemented on pSeries platform. The original
code looks a little bit nasty. The patch does cleanup on the
current EEH implementation so that it looks more clean.
* Duplicated comments have been removed from the corresponding
header files.
* Comments have been reorganized so that it looks more clean.
* The leading comments of functions are adjusted for a little
bit so that the result of "make pdfdocs" would be more
unified.
* Function definitions and calls have unified format as "xxx()".
That means the format "xxx ()" has been replaced by "xxx()".
* There're multiple functions implemented for resetting PE. The
position of those functions have been move around so that they
are adjacent to each other to reflect their relationship.
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/ppc-pci.h')
-rw-r--r-- | arch/powerpc/include/asm/ppc-pci.h | 71 |
1 files changed, 3 insertions, 68 deletions
diff --git a/arch/powerpc/include/asm/ppc-pci.h b/arch/powerpc/include/asm/ppc-pci.h index 6d422979ebaf..221d82fd8231 100644 --- a/arch/powerpc/include/asm/ppc-pci.h +++ b/arch/powerpc/include/asm/ppc-pci.h | |||
@@ -47,92 +47,27 @@ extern int rtas_setup_phb(struct pci_controller *phb); | |||
47 | 47 | ||
48 | extern unsigned long pci_probe_only; | 48 | extern unsigned long pci_probe_only; |
49 | 49 | ||
50 | /* ---- EEH internal-use-only related routines ---- */ | ||
51 | #ifdef CONFIG_EEH | 50 | #ifdef CONFIG_EEH |
52 | 51 | ||
53 | void pci_addr_cache_insert_device(struct pci_dev *dev); | 52 | void pci_addr_cache_insert_device(struct pci_dev *dev); |
54 | void pci_addr_cache_remove_device(struct pci_dev *dev); | 53 | void pci_addr_cache_remove_device(struct pci_dev *dev); |
55 | void pci_addr_cache_build(void); | 54 | void pci_addr_cache_build(void); |
56 | struct pci_dev *pci_get_device_by_addr(unsigned long addr); | 55 | struct pci_dev *pci_get_device_by_addr(unsigned long addr); |
57 | |||
58 | /** | ||
59 | * eeh_slot_error_detail -- record and EEH error condition to the log | ||
60 | * @pdn: pci device node | ||
61 | * @severity: EEH_LOG_TEMP_FAILURE or EEH_LOG_PERM_FAILURE | ||
62 | * | ||
63 | * Obtains the EEH error details from the RTAS subsystem, | ||
64 | * and then logs these details with the RTAS error log system. | ||
65 | */ | ||
66 | #define EEH_LOG_TEMP_FAILURE 1 | 56 | #define EEH_LOG_TEMP_FAILURE 1 |
67 | #define EEH_LOG_PERM_FAILURE 2 | 57 | #define EEH_LOG_PERM_FAILURE 2 |
68 | void eeh_slot_error_detail (struct pci_dn *pdn, int severity); | 58 | void eeh_slot_error_detail (struct pci_dn *pdn, int severity); |
69 | |||
70 | /** | ||
71 | * rtas_pci_enable - enable IO transfers for this slot | ||
72 | * @pdn: pci device node | ||
73 | * @function: either EEH_THAW_MMIO or EEH_THAW_DMA | ||
74 | * | ||
75 | * Enable I/O transfers to this slot | ||
76 | */ | ||
77 | #define EEH_THAW_MMIO 2 | 59 | #define EEH_THAW_MMIO 2 |
78 | #define EEH_THAW_DMA 3 | 60 | #define EEH_THAW_DMA 3 |
79 | int rtas_pci_enable(struct pci_dn *pdn, int function); | 61 | int rtas_pci_enable(struct pci_dn *pdn, int function); |
80 | |||
81 | /** | ||
82 | * rtas_set_slot_reset -- unfreeze a frozen slot | ||
83 | * @pdn: pci device node | ||
84 | * | ||
85 | * Clear the EEH-frozen condition on a slot. This routine | ||
86 | * does this by asserting the PCI #RST line for 1/8th of | ||
87 | * a second; this routine will sleep while the adapter is | ||
88 | * being reset. | ||
89 | * | ||
90 | * Returns a non-zero value if the reset failed. | ||
91 | */ | ||
92 | int rtas_set_slot_reset (struct pci_dn *); | 62 | int rtas_set_slot_reset (struct pci_dn *); |
93 | int eeh_wait_for_slot_status(struct pci_dn *pdn, int max_wait_msecs); | 63 | int eeh_wait_for_slot_status(struct pci_dn *pdn, int max_wait_msecs); |
94 | |||
95 | /** | ||
96 | * eeh_restore_bars - Restore device configuration info. | ||
97 | * @pdn: pci device node | ||
98 | * | ||
99 | * A reset of a PCI device will clear out its config space. | ||
100 | * This routines will restore the config space for this | ||
101 | * device, and is children, to values previously obtained | ||
102 | * from the firmware. | ||
103 | */ | ||
104 | void eeh_restore_bars(struct pci_dn *); | 64 | void eeh_restore_bars(struct pci_dn *); |
105 | |||
106 | /** | ||
107 | * rtas_configure_bridge -- firmware initialization of pci bridge | ||
108 | * @pdn: pci device node | ||
109 | * | ||
110 | * Ask the firmware to configure all PCI bridges devices | ||
111 | * located behind the indicated node. Required after a | ||
112 | * pci device reset. Does essentially the same hing as | ||
113 | * eeh_restore_bars, but for brdges, and lets firmware | ||
114 | * do the work. | ||
115 | */ | ||
116 | void rtas_configure_bridge(struct pci_dn *); | 65 | void rtas_configure_bridge(struct pci_dn *); |
117 | |||
118 | int rtas_write_config(struct pci_dn *, int where, int size, u32 val); | 66 | int rtas_write_config(struct pci_dn *, int where, int size, u32 val); |
119 | int rtas_read_config(struct pci_dn *, int where, int size, u32 *val); | 67 | int rtas_read_config(struct pci_dn *, int where, int size, u32 *val); |
120 | 68 | void eeh_mark_slot(struct device_node *dn, int mode_flag); | |
121 | /** | 69 | void eeh_clear_slot(struct device_node *dn, int mode_flag); |
122 | * eeh_mark_slot -- set mode flags for pertition endpoint | 70 | struct device_node *find_device_pe(struct device_node *dn); |
123 | * @pdn: pci device node | ||
124 | * | ||
125 | * mark and clear slots: find "partition endpoint" PE and set or | ||
126 | * clear the flags for each subnode of the PE. | ||
127 | */ | ||
128 | void eeh_mark_slot (struct device_node *dn, int mode_flag); | ||
129 | void eeh_clear_slot (struct device_node *dn, int mode_flag); | ||
130 | |||
131 | /** | ||
132 | * find_device_pe -- Find the associated "Partiationable Endpoint" PE | ||
133 | * @pdn: pci device node | ||
134 | */ | ||
135 | struct device_node * find_device_pe(struct device_node *dn); | ||
136 | 71 | ||
137 | void eeh_sysfs_add_device(struct pci_dev *pdev); | 72 | void eeh_sysfs_add_device(struct pci_dev *pdev); |
138 | void eeh_sysfs_remove_device(struct pci_dev *pdev); | 73 | void eeh_sysfs_remove_device(struct pci_dev *pdev); |