aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2007-07-11 00:37:45 -0400
committerKumar Gala <galak@kernel.crashing.org>2007-07-23 11:27:07 -0400
commit38805e5f096162867a70c7468c654d7f9bb507da (patch)
tree841b3de2dc1b7c968564c39939398cda0427fb00
parent9ac4dd301eebb3cd8de801e02bfc91f296e56f63 (diff)
[POWERPC] Add the ability to find PCI capabilities early on
Added early_find_capability that wraps pci_bus_find_capability and uses fake_pci_bus() to allow us to call it before we've fully setup the pci_controller. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r--arch/powerpc/kernel/pci_32.c7
-rw-r--r--include/asm-powerpc/pci-bridge.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index 0adf077f3f3a..bfcfa14e831f 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -1468,3 +1468,10 @@ EARLY_PCI_OP(read, dword, u32 *)
1468EARLY_PCI_OP(write, byte, u8) 1468EARLY_PCI_OP(write, byte, u8)
1469EARLY_PCI_OP(write, word, u16) 1469EARLY_PCI_OP(write, word, u16)
1470EARLY_PCI_OP(write, dword, u32) 1470EARLY_PCI_OP(write, dword, u32)
1471
1472extern int pci_bus_find_capability (struct pci_bus *bus, unsigned int devfn, int cap);
1473int early_find_capability(struct pci_controller *hose, int bus, int devfn,
1474 int cap)
1475{
1476 return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap);
1477}
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h
index e72c2a60853c..7a00b8e388ec 100644
--- a/include/asm-powerpc/pci-bridge.h
+++ b/include/asm-powerpc/pci-bridge.h
@@ -79,6 +79,9 @@ int early_write_config_word(struct pci_controller *hose, int bus, int dev_fn,
79int early_write_config_dword(struct pci_controller *hose, int bus, int dev_fn, 79int early_write_config_dword(struct pci_controller *hose, int bus, int dev_fn,
80 int where, u32 val); 80 int where, u32 val);
81 81
82extern int early_find_capability(struct pci_controller *hose, int bus,
83 int dev_fn, int cap);
84
82extern void setup_indirect_pci_nomap(struct pci_controller* hose, 85extern void setup_indirect_pci_nomap(struct pci_controller* hose,
83 void __iomem *cfg_addr, void __iomem *cfg_data); 86 void __iomem *cfg_addr, void __iomem *cfg_data);
84extern void setup_indirect_pci(struct pci_controller* hose, 87extern void setup_indirect_pci(struct pci_controller* hose,