diff options
author | Linas Vepstas <linas@linas.org> | 2005-11-03 19:55:19 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-09 23:30:39 -0500 |
commit | 7684b40cb53ba00cc51271f1c42897b776c48fbc (patch) | |
tree | 19155abfd3b76d13b55dfb6fdf1a46e4a8c0a048 /include/asm-powerpc | |
parent | d177c207ba16b1db31283e2d1fee7ad4a863584b (diff) |
[PATCH] powerpc: Save device BARs much earlier in the boot sequence
241-eeh-save-bars-earlier.patch
Save the PCI device bars *before* any PCI probing is done.
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
(cherry picked from 76c902b919098860f3d4e125f847abcc4cb1782a commit)
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/pci-bridge.h | 8 | ||||
-rw-r--r-- | include/asm-powerpc/ppc-pci.h | 3 |
2 files changed, 5 insertions, 6 deletions
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h index a81bc363f350..b0d816fe2e27 100644 --- a/include/asm-powerpc/pci-bridge.h +++ b/include/asm-powerpc/pci-bridge.h | |||
@@ -61,9 +61,10 @@ struct pci_controller; | |||
61 | struct iommu_table; | 61 | struct iommu_table; |
62 | 62 | ||
63 | struct pci_dn { | 63 | struct pci_dn { |
64 | int busno; /* for pci devices */ | 64 | int busno; /* pci bus number */ |
65 | int bussubno; /* for pci devices */ | 65 | int bussubno; /* pci subordinate bus number */ |
66 | int devfn; /* for pci devices */ | 66 | int devfn; /* pci device and function number */ |
67 | int class_code; /* pci device class */ | ||
67 | 68 | ||
68 | #ifdef CONFIG_PPC_PSERIES | 69 | #ifdef CONFIG_PPC_PSERIES |
69 | int eeh_mode; /* See eeh.h for possible EEH_MODEs */ | 70 | int eeh_mode; /* See eeh.h for possible EEH_MODEs */ |
@@ -71,7 +72,6 @@ struct pci_dn { | |||
71 | int eeh_pe_config_addr; /* new-style partition endpoint address */ | 72 | int eeh_pe_config_addr; /* new-style partition endpoint address */ |
72 | int eeh_check_count; /* # times driver ignored error */ | 73 | int eeh_check_count; /* # times driver ignored error */ |
73 | int eeh_freeze_count; /* # times this device froze up. */ | 74 | int eeh_freeze_count; /* # times this device froze up. */ |
74 | int eeh_is_bridge; /* device is pci-to-pci bridge */ | ||
75 | #endif | 75 | #endif |
76 | int pci_ext_config_space; /* for pci devices */ | 76 | int pci_ext_config_space; /* for pci devices */ |
77 | struct pci_controller *phb; /* for pci devices */ | 77 | struct pci_controller *phb; /* for pci devices */ |
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h index 1a2db61694f2..f80482c7231f 100644 --- a/include/asm-powerpc/ppc-pci.h +++ b/include/asm-powerpc/ppc-pci.h | |||
@@ -58,8 +58,6 @@ void pci_addr_cache_remove_device(struct pci_dev *dev); | |||
58 | void pci_addr_cache_build(void); | 58 | void pci_addr_cache_build(void); |
59 | struct pci_dev *pci_get_device_by_addr(unsigned long addr); | 59 | struct pci_dev *pci_get_device_by_addr(unsigned long addr); |
60 | 60 | ||
61 | void eeh_save_bars(struct pci_dev * pdev, struct pci_dn *pdn); | ||
62 | |||
63 | /** | 61 | /** |
64 | * eeh_slot_error_detail -- record and EEH error condition to the log | 62 | * eeh_slot_error_detail -- record and EEH error condition to the log |
65 | * @severity: 1 if temporary, 2 if permanent failure. | 63 | * @severity: 1 if temporary, 2 if permanent failure. |
@@ -103,6 +101,7 @@ void eeh_restore_bars(struct pci_dn *); | |||
103 | void rtas_configure_bridge(struct pci_dn *); | 101 | void rtas_configure_bridge(struct pci_dn *); |
104 | 102 | ||
105 | int rtas_write_config(struct pci_dn *, int where, int size, u32 val); | 103 | int rtas_write_config(struct pci_dn *, int where, int size, u32 val); |
104 | int rtas_read_config(struct pci_dn *, int where, int size, u32 *val); | ||
106 | 105 | ||
107 | /** | 106 | /** |
108 | * mark and clear slots: find "partition endpoint" PE and set or | 107 | * mark and clear slots: find "partition endpoint" PE and set or |