Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / include / asm-sparc64 / pbm.h
index dcfa762..1396f11 100644 (file)
@@ -15,8 +15,6 @@
 #include <asm/io.h>
 #include <asm/page.h>
 #include <asm/oplib.h>
-#include <asm/prom.h>
-#include <asm/of_device.h>
 #include <asm/iommu.h>
 
 /* The abstraction used here is that there are PCI controllers,
@@ -155,15 +153,16 @@ struct pci_pbm_info {
        int                             chip_revision;
 
        /* Name used for top-level resources. */
-       char                            *name;
+       char                            name[64];
 
        /* OBP specific information. */
-       struct device_node              *prom_node;
-       struct linux_prom_pci_ranges    *pbm_ranges;
+       int                             prom_node;
+       char                            prom_name[64];
+       struct linux_prom_pci_ranges    pbm_ranges[PROM_PCIRNG_MAX];
        int                             num_pbm_ranges;
-       struct linux_prom_pci_intmap    *pbm_intmap;
+       struct linux_prom_pci_intmap    pbm_intmap[PROM_PCIIMAP_MAX];
        int                             num_pbm_intmap;
-       struct linux_prom_pci_intmask   *pbm_intmask;
+       struct linux_prom_pci_intmask   pbm_intmask;
        u64                             ino_bitmap;
 
        /* PBM I/O and Memory space resources. */
@@ -210,6 +209,7 @@ struct pci_controller_info {
 
        /* Operations which are controller specific. */
        void (*scan_bus)(struct pci_controller_info *);
+       unsigned int (*irq_build)(struct pci_pbm_info *, struct pci_dev *, unsigned int);
        void (*base_address_update)(struct pci_dev *, int);
        void (*resource_adjust)(struct pci_dev *, struct resource *, struct resource *);
 
@@ -217,6 +217,8 @@ struct pci_controller_info {
        struct pci_ops                  *pci_ops;
        unsigned int                    pci_first_busno;
        unsigned int                    pci_last_busno;
+
+       void                            *starfire_cookie;
 };
 
 /* PCI devices which are not bridges have this placed in their pci_dev
@@ -225,8 +227,8 @@ struct pci_controller_info {
  */
 struct pcidev_cookie {
        struct pci_pbm_info             *pbm;
-       struct device_node              *prom_node;
-       struct of_device                *op;
+       char                            prom_name[64];
+       int                             prom_node;
        struct linux_prom_pci_registers prom_regs[PROMREG_MAX];
        int num_prom_regs;
        struct linux_prom_pci_registers prom_assignments[PROMREG_MAX];