diff options
Diffstat (limited to 'arch/sparc64/kernel/pci_impl.h')
-rw-r--r-- | arch/sparc64/kernel/pci_impl.h | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/arch/sparc64/kernel/pci_impl.h b/arch/sparc64/kernel/pci_impl.h index c385d126be11..03186824327e 100644 --- a/arch/sparc64/kernel/pci_impl.h +++ b/arch/sparc64/kernel/pci_impl.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/spinlock.h> | 10 | #include <linux/spinlock.h> |
11 | #include <linux/pci.h> | 11 | #include <linux/pci.h> |
12 | #include <linux/msi.h> | 12 | #include <linux/msi.h> |
13 | #include <linux/of_device.h> | ||
13 | #include <asm/io.h> | 14 | #include <asm/io.h> |
14 | #include <asm/prom.h> | 15 | #include <asm/prom.h> |
15 | #include <asm/iommu.h> | 16 | #include <asm/iommu.h> |
@@ -56,15 +57,11 @@ struct sparc64_msiq_cookie { | |||
56 | }; | 57 | }; |
57 | #endif | 58 | #endif |
58 | 59 | ||
59 | struct pci_controller_info; | ||
60 | |||
61 | struct pci_pbm_info { | 60 | struct pci_pbm_info { |
62 | struct pci_pbm_info *next; | 61 | struct pci_pbm_info *next; |
62 | struct pci_pbm_info *sibling; | ||
63 | int index; | 63 | int index; |
64 | 64 | ||
65 | /* PCI controller we sit under. */ | ||
66 | struct pci_controller_info *parent; | ||
67 | |||
68 | /* Physical address base of controller registers. */ | 65 | /* Physical address base of controller registers. */ |
69 | unsigned long controller_regs; | 66 | unsigned long controller_regs; |
70 | 67 | ||
@@ -94,7 +91,7 @@ struct pci_pbm_info { | |||
94 | char *name; | 91 | char *name; |
95 | 92 | ||
96 | /* OBP specific information. */ | 93 | /* OBP specific information. */ |
97 | struct device_node *prom_node; | 94 | struct of_device *op; |
98 | u64 ino_bitmap; | 95 | u64 ino_bitmap; |
99 | 96 | ||
100 | /* PBM I/O and Memory space resources. */ | 97 | /* PBM I/O and Memory space resources. */ |
@@ -107,6 +104,10 @@ struct pci_pbm_info { | |||
107 | /* This will be 12 on PCI-E controllers, 8 elsewhere. */ | 104 | /* This will be 12 on PCI-E controllers, 8 elsewhere. */ |
108 | unsigned long config_space_reg_bits; | 105 | unsigned long config_space_reg_bits; |
109 | 106 | ||
107 | unsigned long pci_afsr; | ||
108 | unsigned long pci_afar; | ||
109 | unsigned long pci_csr; | ||
110 | |||
110 | /* State of 66MHz capabilities on this PBM. */ | 111 | /* State of 66MHz capabilities on this PBM. */ |
111 | int is_66mhz_capable; | 112 | int is_66mhz_capable; |
112 | int all_devs_66mhz; | 113 | int all_devs_66mhz; |
@@ -146,25 +147,19 @@ struct pci_pbm_info { | |||
146 | unsigned int pci_first_busno; | 147 | unsigned int pci_first_busno; |
147 | unsigned int pci_last_busno; | 148 | unsigned int pci_last_busno; |
148 | struct pci_bus *pci_bus; | 149 | struct pci_bus *pci_bus; |
149 | void (*scan_bus)(struct pci_pbm_info *); | ||
150 | struct pci_ops *pci_ops; | 150 | struct pci_ops *pci_ops; |
151 | 151 | ||
152 | int numa_node; | 152 | int numa_node; |
153 | }; | 153 | }; |
154 | 154 | ||
155 | struct pci_controller_info { | ||
156 | /* The PCI bus modules controlled by us. */ | ||
157 | struct pci_pbm_info pbm_A; | ||
158 | struct pci_pbm_info pbm_B; | ||
159 | }; | ||
160 | |||
161 | extern struct pci_pbm_info *pci_pbm_root; | 155 | extern struct pci_pbm_info *pci_pbm_root; |
162 | 156 | ||
163 | extern int pci_num_pbms; | 157 | extern int pci_num_pbms; |
164 | 158 | ||
165 | /* PCI bus scanning and fixup support. */ | 159 | /* PCI bus scanning and fixup support. */ |
166 | extern void pci_get_pbm_props(struct pci_pbm_info *pbm); | 160 | extern void pci_get_pbm_props(struct pci_pbm_info *pbm); |
167 | extern struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm); | 161 | extern struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm, |
162 | struct device *parent); | ||
168 | extern void pci_determine_mem_io_space(struct pci_pbm_info *pbm); | 163 | extern void pci_determine_mem_io_space(struct pci_pbm_info *pbm); |
169 | 164 | ||
170 | /* Error reporting support. */ | 165 | /* Error reporting support. */ |
@@ -183,4 +178,8 @@ extern void pci_config_write32(u32 *addr, u32 val); | |||
183 | extern struct pci_ops sun4u_pci_ops; | 178 | extern struct pci_ops sun4u_pci_ops; |
184 | extern struct pci_ops sun4v_pci_ops; | 179 | extern struct pci_ops sun4v_pci_ops; |
185 | 180 | ||
181 | extern volatile int pci_poke_in_progress; | ||
182 | extern volatile int pci_poke_cpu; | ||
183 | extern volatile int pci_poke_faulted; | ||
184 | |||
186 | #endif /* !(PCI_IMPL_H) */ | 185 | #endif /* !(PCI_IMPL_H) */ |