X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-sparc64%2Fpbm.h;fp=include%2Fasm-sparc64%2Fpbm.h;h=dd35a2c7798a1732013781b56710e8003b6a8e16;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=dcfa7629358c396c9e977447ee24f56b31cd799e;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/include/asm-sparc64/pbm.h b/include/asm-sparc64/pbm.h index dcfa76293..dd35a2c77 100644 --- a/include/asm-sparc64/pbm.h +++ b/include/asm-sparc64/pbm.h @@ -15,8 +15,6 @@ #include #include #include -#include -#include #include /* The abstraction used here is that there are PCI controllers, @@ -141,9 +139,6 @@ struct pci_pbm_info { /* Opaque 32-bit system bus Port ID. */ u32 portid; - /* Opaque 32-bit handle used for hypervisor calls. */ - u32 devhandle; - /* Chipset version information. */ int chip_type; #define PBM_CHIP_TYPE_SABRE 1 @@ -155,15 +150,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 +206,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 +214,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 +224,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];