diff options
author | John Keller <jpk@sgi.com> | 2007-01-30 01:17:37 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-02-02 22:14:35 -0500 |
commit | 6f09a9250a5d76c0765cd51a33e0a042e9761cfc (patch) | |
tree | 764db1dcd196fc1c272a8c6930924a5bc60623bc /include/asm-ia64 | |
parent | 647fb47dfabeffd2f1706013ebf5cfc92b70d273 (diff) |
Altix: ACPI SSDT PCI device support
Add SN platform support for running with an ACPI
capable PROM that defines PCI devices in SSDT
tables. There is a SSDT table for every occupied
slot on a root bus, containing info for every
PPB and/or device on the bus. The SSDTs will be
dynamically loaded/unloaded at hotplug enable/disable.
Platform specific information that is currently
passed via a SAL call, will now be passed via the
Vendor resource in the ACPI Device object(s) defined
in each SSDT.
Signed-off-by: John Keller <jpk@sgi.com>
Cc: Greg KH <greg@kroah.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/asm-ia64')
-rw-r--r-- | include/asm-ia64/sn/acpi.h | 5 | ||||
-rw-r--r-- | include/asm-ia64/sn/pcibr_provider.h | 2 | ||||
-rw-r--r-- | include/asm-ia64/sn/pcidev.h | 8 |
3 files changed, 10 insertions, 5 deletions
diff --git a/include/asm-ia64/sn/acpi.h b/include/asm-ia64/sn/acpi.h index 7d6cb3b686e7..9ce2801cbd57 100644 --- a/include/asm-ia64/sn/acpi.h +++ b/include/asm-ia64/sn/acpi.h | |||
@@ -11,8 +11,7 @@ | |||
11 | 11 | ||
12 | #include "acpi/acglobal.h" | 12 | #include "acpi/acglobal.h" |
13 | 13 | ||
14 | #define SN_ACPI_BASE_SUPPORT() sn_acpi_base_support() | 14 | extern int sn_acpi_rev; |
15 | 15 | #define SN_ACPI_BASE_SUPPORT() (sn_acpi_rev >= 0x20101) | |
16 | extern int sn_acpi_base_support(void); | ||
17 | 16 | ||
18 | #endif /* _ASM_IA64_SN_ACPI_H */ | 17 | #endif /* _ASM_IA64_SN_ACPI_H */ |
diff --git a/include/asm-ia64/sn/pcibr_provider.h b/include/asm-ia64/sn/pcibr_provider.h index da3eade0cae2..17cb6cc3f21a 100644 --- a/include/asm-ia64/sn/pcibr_provider.h +++ b/include/asm-ia64/sn/pcibr_provider.h | |||
@@ -142,7 +142,7 @@ extern int pcibr_ate_alloc(struct pcibus_info *, int); | |||
142 | extern void pcibr_ate_free(struct pcibus_info *, int); | 142 | extern void pcibr_ate_free(struct pcibus_info *, int); |
143 | extern void ate_write(struct pcibus_info *, int, int, u64); | 143 | extern void ate_write(struct pcibus_info *, int, int, u64); |
144 | extern int sal_pcibr_slot_enable(struct pcibus_info *soft, int device, | 144 | extern int sal_pcibr_slot_enable(struct pcibus_info *soft, int device, |
145 | void *resp); | 145 | void *resp, char **ssdt); |
146 | extern int sal_pcibr_slot_disable(struct pcibus_info *soft, int device, | 146 | extern int sal_pcibr_slot_disable(struct pcibus_info *soft, int device, |
147 | int action, void *resp); | 147 | int action, void *resp); |
148 | extern u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus); | 148 | extern u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus); |
diff --git a/include/asm-ia64/sn/pcidev.h b/include/asm-ia64/sn/pcidev.h index 9fe89a93d880..1c2382cea807 100644 --- a/include/asm-ia64/sn/pcidev.h +++ b/include/asm-ia64/sn/pcidev.h | |||
@@ -70,10 +70,16 @@ extern void sn_irq_fixup(struct pci_dev *pci_dev, | |||
70 | struct sn_irq_info *sn_irq_info); | 70 | struct sn_irq_info *sn_irq_info); |
71 | extern void sn_irq_unfixup(struct pci_dev *pci_dev); | 71 | extern void sn_irq_unfixup(struct pci_dev *pci_dev); |
72 | extern struct pcidev_info * sn_pcidev_info_get(struct pci_dev *); | 72 | extern struct pcidev_info * sn_pcidev_info_get(struct pci_dev *); |
73 | extern void sn_bus_fixup(struct pci_bus *); | ||
74 | extern void sn_acpi_bus_fixup(struct pci_bus *); | ||
75 | extern void sn_common_bus_fixup(struct pci_bus *, struct pcibus_bussoft *); | ||
73 | extern void sn_bus_store_sysdata(struct pci_dev *dev); | 76 | extern void sn_bus_store_sysdata(struct pci_dev *dev); |
74 | extern void sn_bus_free_sysdata(void); | 77 | extern void sn_bus_free_sysdata(void); |
75 | extern void sn_generate_path(struct pci_bus *pci_bus, char *address); | 78 | extern void sn_generate_path(struct pci_bus *pci_bus, char *address); |
76 | extern void sn_pci_fixup_slot(struct pci_dev *dev); | 79 | extern void sn_io_slot_fixup(struct pci_dev *); |
80 | extern void sn_acpi_slot_fixup(struct pci_dev *); | ||
81 | extern void sn_pci_fixup_slot(struct pci_dev *dev, struct pcidev_info *, | ||
82 | struct sn_irq_info *); | ||
77 | extern void sn_pci_unfixup_slot(struct pci_dev *dev); | 83 | extern void sn_pci_unfixup_slot(struct pci_dev *dev); |
78 | extern void sn_irq_lh_init(void); | 84 | extern void sn_irq_lh_init(void); |
79 | #endif /* _ASM_IA64_SN_PCI_PCIDEV_H */ | 85 | #endif /* _ASM_IA64_SN_PCI_PCIDEV_H */ |