aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include
diff options
context:
space:
mode:
authorGavin Shan <shangw@linux.vnet.ibm.com>2012-09-07 18:44:15 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-09-09 19:35:41 -0400
commit9e6d2cf65e3dbaf783917c92c15d31d419b0d648 (patch)
tree3333cebc80097095c1e07bf5935f85d0b5695d3c /arch/powerpc/include
parent371a395d2f1fe296c89735547672d70f4dcc2949 (diff)
powerpc/eeh: Device bars restore based on PE
The patch introduces the function to traverse the devices of the specified PE and its child PEs. Also, the restore on device bars is implemented based on the traverse function. 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')
-rw-r--r--arch/powerpc/include/asm/eeh.h3
-rw-r--r--arch/powerpc/include/asm/ppc-pci.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h
index 5e45a1c5c9e8..629fb27c093e 100644
--- a/arch/powerpc/include/asm/eeh.h
+++ b/arch/powerpc/include/asm/eeh.h
@@ -171,6 +171,9 @@ typedef void *(*eeh_traverse_func)(void *data, void *flag);
171int __devinit eeh_phb_pe_create(struct pci_controller *phb); 171int __devinit eeh_phb_pe_create(struct pci_controller *phb);
172int eeh_add_to_parent_pe(struct eeh_dev *edev); 172int eeh_add_to_parent_pe(struct eeh_dev *edev);
173int eeh_rmv_from_parent_pe(struct eeh_dev *edev); 173int eeh_rmv_from_parent_pe(struct eeh_dev *edev);
174void *eeh_pe_dev_traverse(struct eeh_pe *root,
175 eeh_traverse_func fn, void *flag);
176void eeh_pe_restore_bars(struct eeh_pe *pe);
174 177
175void * __devinit eeh_dev_init(struct device_node *dn, void *data); 178void * __devinit eeh_dev_init(struct device_node *dn, void *data);
176void __devinit eeh_dev_phb_init_dynamic(struct pci_controller *phb); 179void __devinit eeh_dev_phb_init_dynamic(struct pci_controller *phb);
diff --git a/arch/powerpc/include/asm/ppc-pci.h b/arch/powerpc/include/asm/ppc-pci.h
index 3e301b14e09f..5cbe3f2a7e80 100644
--- a/arch/powerpc/include/asm/ppc-pci.h
+++ b/arch/powerpc/include/asm/ppc-pci.h
@@ -54,7 +54,6 @@ struct pci_dev *pci_addr_cache_get_device(unsigned long addr);
54void eeh_slot_error_detail(struct eeh_dev *edev, int severity); 54void eeh_slot_error_detail(struct eeh_dev *edev, int severity);
55int eeh_pci_enable(struct eeh_dev *edev, int function); 55int eeh_pci_enable(struct eeh_dev *edev, int function);
56int eeh_reset_pe(struct eeh_dev *); 56int eeh_reset_pe(struct eeh_dev *);
57void eeh_restore_bars(struct eeh_dev *);
58int rtas_write_config(struct pci_dn *, int where, int size, u32 val); 57int rtas_write_config(struct pci_dn *, int where, int size, u32 val);
59int rtas_read_config(struct pci_dn *, int where, int size, u32 *val); 58int rtas_read_config(struct pci_dn *, int where, int size, u32 *val);
60void eeh_pe_state_mark(struct eeh_pe *pe, int state); 59void eeh_pe_state_mark(struct eeh_pe *pe, int state);