aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>2005-04-28 03:25:58 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-28 00:52:44 -0400
commitb1bb248a5d2230a3d8ef42199c742194a8580b15 (patch)
tree5335d22256e1c6f755f7aff01432ed2d5d722c9b
parent8d50e332c8bd4f4e8cc76e8ed7326aa6f18182aa (diff)
[PATCH] ACPI based I/O APIC hot-plug: add interfaces
This patch adds the following new interfaces for I/O xAPIC hotplug. The implementation of these interfaces depends on each architecture. o int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); This new interface is to add a new I/O xAPIC specified by phys_addr and gsi_base pair. phys_addr is the physical address to which the I/O xAPIC is mapped and gsi_base is global system interrupt base of the I/O xAPIC. acpi_register_ioapic returns 0 on success, or negative value on error. o int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base); This new interface is to remove a I/O xAPIC specified by gsi_base. acpi_unregister_ioapic returns 0 on success, or negative value on error. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--arch/i386/kernel/acpi/boot.c16
-rw-r--r--arch/ia64/kernel/acpi.c17
-rw-r--r--include/linux/acpi.h3
3 files changed, 36 insertions, 0 deletions
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 9f63ae0f404b..f5360d88bcf4 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -507,6 +507,22 @@ acpi_unmap_lsapic(int cpu)
507EXPORT_SYMBOL(acpi_unmap_lsapic); 507EXPORT_SYMBOL(acpi_unmap_lsapic);
508#endif /* CONFIG_ACPI_HOTPLUG_CPU */ 508#endif /* CONFIG_ACPI_HOTPLUG_CPU */
509 509
510int
511acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base)
512{
513 /* TBD */
514 return -EINVAL;
515}
516EXPORT_SYMBOL(acpi_register_ioapic);
517
518int
519acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base)
520{
521 /* TBD */
522 return -EINVAL;
523}
524EXPORT_SYMBOL(acpi_unregister_ioapic);
525
510static unsigned long __init 526static unsigned long __init
511acpi_scan_rsdp ( 527acpi_scan_rsdp (
512 unsigned long start, 528 unsigned long start,
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 72dfd9e7de0f..ab798867acdf 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -825,4 +825,21 @@ acpi_map_iosapic (acpi_handle handle, u32 depth, void *context, void **ret)
825 return AE_OK; 825 return AE_OK;
826} 826}
827#endif /* CONFIG_NUMA */ 827#endif /* CONFIG_NUMA */
828
829int
830acpi_register_ioapic (acpi_handle handle, u64 phys_addr, u32 gsi_base)
831{
832 /* TBD */
833 return -EINVAL;
834}
835EXPORT_SYMBOL(acpi_register_ioapic);
836
837int
838acpi_unregister_ioapic (acpi_handle handle, u32 gsi_base)
839{
840 /* TBD */
841 return -EINVAL;
842}
843EXPORT_SYMBOL(acpi_unregister_ioapic);
844
828#endif /* CONFIG_ACPI_BOOT */ 845#endif /* CONFIG_ACPI_BOOT */
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index b123cc08773d..f5bc298707e1 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -407,6 +407,9 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu);
407int acpi_unmap_lsapic(int cpu); 407int acpi_unmap_lsapic(int cpu);
408#endif /* CONFIG_ACPI_HOTPLUG_CPU */ 408#endif /* CONFIG_ACPI_HOTPLUG_CPU */
409 409
410int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
411int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
412
410extern int acpi_mp_config; 413extern int acpi_mp_config;
411 414
412extern u32 pci_mmcfg_base_addr; 415extern u32 pci_mmcfg_base_addr;