mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-24 07:31:41 +00:00
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>
This commit is contained in:
parent
647fb47dfa
commit
6f09a9250a
7 changed files with 373 additions and 109 deletions
|
@ -11,8 +11,7 @@
|
|||
|
||||
#include "acpi/acglobal.h"
|
||||
|
||||
#define SN_ACPI_BASE_SUPPORT() sn_acpi_base_support()
|
||||
|
||||
extern int sn_acpi_base_support(void);
|
||||
extern int sn_acpi_rev;
|
||||
#define SN_ACPI_BASE_SUPPORT() (sn_acpi_rev >= 0x20101)
|
||||
|
||||
#endif /* _ASM_IA64_SN_ACPI_H */
|
||||
|
|
|
@ -142,7 +142,7 @@ extern int pcibr_ate_alloc(struct pcibus_info *, int);
|
|||
extern void pcibr_ate_free(struct pcibus_info *, int);
|
||||
extern void ate_write(struct pcibus_info *, int, int, u64);
|
||||
extern int sal_pcibr_slot_enable(struct pcibus_info *soft, int device,
|
||||
void *resp);
|
||||
void *resp, char **ssdt);
|
||||
extern int sal_pcibr_slot_disable(struct pcibus_info *soft, int device,
|
||||
int action, void *resp);
|
||||
extern u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus);
|
||||
|
|
|
@ -70,10 +70,16 @@ extern void sn_irq_fixup(struct pci_dev *pci_dev,
|
|||
struct sn_irq_info *sn_irq_info);
|
||||
extern void sn_irq_unfixup(struct pci_dev *pci_dev);
|
||||
extern struct pcidev_info * sn_pcidev_info_get(struct pci_dev *);
|
||||
extern void sn_bus_fixup(struct pci_bus *);
|
||||
extern void sn_acpi_bus_fixup(struct pci_bus *);
|
||||
extern void sn_common_bus_fixup(struct pci_bus *, struct pcibus_bussoft *);
|
||||
extern void sn_bus_store_sysdata(struct pci_dev *dev);
|
||||
extern void sn_bus_free_sysdata(void);
|
||||
extern void sn_generate_path(struct pci_bus *pci_bus, char *address);
|
||||
extern void sn_pci_fixup_slot(struct pci_dev *dev);
|
||||
extern void sn_io_slot_fixup(struct pci_dev *);
|
||||
extern void sn_acpi_slot_fixup(struct pci_dev *);
|
||||
extern void sn_pci_fixup_slot(struct pci_dev *dev, struct pcidev_info *,
|
||||
struct sn_irq_info *);
|
||||
extern void sn_pci_unfixup_slot(struct pci_dev *dev);
|
||||
extern void sn_irq_lh_init(void);
|
||||
#endif /* _ASM_IA64_SN_PCI_PCIDEV_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue