aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPrarit Bhargava <prarit@sgi.com>2005-07-06 18:29:53 -0400
committerTony Luck <tony.luck@intel.com>2005-07-06 18:29:53 -0400
commit6f354b014b51716166f13f68b29212d3c44ed2c4 (patch)
tree396c09a5d519630a53652a1187bb85fceba82cee /include
parent283c7f6ac6adb57e7dd13cdbc8d60b6ea4de6faf (diff)
[IA64] hotplug/ia64: SN Hotplug Driver - SN Hotplug Driver code
This patch is the SGI hotplug driver and additional changes required for the driver. These modifications include changes to the SN io_init.c code for memory management, the inclusion of new SAL calls to enable and disable PCI slots, and a hotplug-style driver. Signed-off-by: Prarit Bhargava <prarit@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/asm-ia64/sn/pcibr_provider.h4
-rw-r--r--include/asm-ia64/sn/pcidev.h6
2 files changed, 10 insertions, 0 deletions
diff --git a/include/asm-ia64/sn/pcibr_provider.h b/include/asm-ia64/sn/pcibr_provider.h
index cbb4604c9349..2299c3ad2e33 100644
--- a/include/asm-ia64/sn/pcibr_provider.h
+++ b/include/asm-ia64/sn/pcibr_provider.h
@@ -151,4 +151,8 @@ extern void pcibr_change_devices_irq(struct sn_irq_info *sn_irq_info);
151extern int pcibr_ate_alloc(struct pcibus_info *, int); 151extern int pcibr_ate_alloc(struct pcibus_info *, int);
152extern void pcibr_ate_free(struct pcibus_info *, int); 152extern void pcibr_ate_free(struct pcibus_info *, int);
153extern void ate_write(struct pcibus_info *, int, int, uint64_t); 153extern void ate_write(struct pcibus_info *, int, int, uint64_t);
154extern int sal_pcibr_slot_enable(struct pcibus_info *soft, int device,
155 void *resp);
156extern int sal_pcibr_slot_disable(struct pcibus_info *soft, int device,
157 int action, void *resp);
154#endif 158#endif
diff --git a/include/asm-ia64/sn/pcidev.h b/include/asm-ia64/sn/pcidev.h
index 9610fcc63545..49711d00ad04 100644
--- a/include/asm-ia64/sn/pcidev.h
+++ b/include/asm-ia64/sn/pcidev.h
@@ -23,6 +23,8 @@
23#define SN_PCIBUS_BUSSOFT(pci_bus) \ 23#define SN_PCIBUS_BUSSOFT(pci_bus) \
24 ((struct pcibus_bussoft *)(PCI_CONTROLLER((pci_bus))->platform_data)) 24 ((struct pcibus_bussoft *)(PCI_CONTROLLER((pci_bus))->platform_data))
25 25
26#define SN_PCIBUS_BUSSOFT_INFO(pci_bus) \
27 (struct pcibus_info *)((struct pcibus_bussoft *)(PCI_CONTROLLER((pci_bus))->platform_data))
26/* 28/*
27 * Given a struct pci_dev, return the sn pcibus_bussoft struct. Note 29 * Given a struct pci_dev, return the sn pcibus_bussoft struct. Note
28 * that this is not equivalent to SN_PCIBUS_BUSSOFT(pci_dev->bus) due 30 * that this is not equivalent to SN_PCIBUS_BUSSOFT(pci_dev->bus) due
@@ -56,6 +58,10 @@ struct pcidev_info {
56extern void sn_irq_fixup(struct pci_dev *pci_dev, 58extern void sn_irq_fixup(struct pci_dev *pci_dev,
57 struct sn_irq_info *sn_irq_info); 59 struct sn_irq_info *sn_irq_info);
58extern void sn_irq_unfixup(struct pci_dev *pci_dev); 60extern void sn_irq_unfixup(struct pci_dev *pci_dev);
61extern void sn_pci_controller_fixup(int segment, int busnum,
62 struct pci_bus *bus);
63extern void sn_bus_store_sysdata(struct pci_dev *dev);
64extern void sn_bus_free_sysdata(void);
59extern void sn_pci_fixup_slot(struct pci_dev *dev); 65extern void sn_pci_fixup_slot(struct pci_dev *dev);
60extern void sn_pci_unfixup_slot(struct pci_dev *dev); 66extern void sn_pci_unfixup_slot(struct pci_dev *dev);
61extern void sn_irq_lh_init(void); 67extern void sn_irq_lh_init(void);