diff options
author | Steve French <sfrench@us.ibm.com> | 2005-10-31 08:36:11 -0800 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2005-10-31 08:36:11 -0800 |
commit | 53b2ec5518aa2623e8c0cb36f1c304a797988a46 (patch) | |
tree | 465d8631ade6c2fcbd7576ff9813d00116c6a1e8 /include/asm-ppc64/pci-bridge.h | |
parent | 0753ca7bc2b876dd136e9db11a20f85cbe4e08b1 (diff) | |
parent | 581c1b14394aee60aff46ea67d05483261ed6527 (diff) | |
download | op-kernel-dev-53b2ec5518aa2623e8c0cb36f1c304a797988a46.zip op-kernel-dev-53b2ec5518aa2623e8c0cb36f1c304a797988a46.tar.gz |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'include/asm-ppc64/pci-bridge.h')
-rw-r--r-- | include/asm-ppc64/pci-bridge.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/include/asm-ppc64/pci-bridge.h b/include/asm-ppc64/pci-bridge.h index d899138..60cf8c8 100644 --- a/include/asm-ppc64/pci-bridge.h +++ b/include/asm-ppc64/pci-bridge.h @@ -2,7 +2,9 @@ #ifndef _ASM_PCI_BRIDGE_H #define _ASM_PCI_BRIDGE_H +#include <linux/config.h> #include <linux/pci.h> +#include <linux/list.h> /* * This program is free software; you can redistribute it and/or @@ -34,7 +36,7 @@ struct pci_controller { struct pci_ops *ops; volatile unsigned int __iomem *cfg_addr; - volatile unsigned char __iomem *cfg_data; + volatile void __iomem *cfg_data; /* Currently, we limit ourselves to 1 IO range and 3 mem * ranges since the common pci_bus structure can't handle more @@ -71,6 +73,12 @@ struct pci_dn { struct iommu_table *iommu_table; /* for phb's or bridges */ struct pci_dev *pcidev; /* back-pointer to the pci device */ struct device_node *node; /* back-pointer to the device_node */ +#ifdef CONFIG_PPC_ISERIES + struct list_head Device_List; + int Irq; /* Assigned IRQ */ + int Flags; /* Possible flags(disable/bist)*/ + u8 LogicalSlot; /* Hv Slot Index for Tces */ +#endif u32 config_space[16]; /* saved PCI config space */ }; @@ -96,6 +104,16 @@ static inline struct device_node *pci_device_to_OF_node(struct pci_dev *dev) return fetch_dev_dn(dev); } +static inline int pci_device_from_OF_node(struct device_node *np, + u8 *bus, u8 *devfn) +{ + if (!PCI_DN(np)) + return -ENODEV; + *bus = PCI_DN(np)->busno; + *devfn = PCI_DN(np)->devfn; + return 0; +} + static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) { if (bus->self) @@ -105,7 +123,7 @@ static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) } extern void pci_process_bridge_OF_ranges(struct pci_controller *hose, - struct device_node *dev); + struct device_node *dev, int primary); extern int pcibios_remove_root_bus(struct pci_controller *phb); |