diff options
author | Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> | 2005-04-28 03:25:58 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-06-28 00:52:44 -0400 |
commit | b1bb248a5d2230a3d8ef42199c742194a8580b15 (patch) | |
tree | 5335d22256e1c6f755f7aff01432ed2d5d722c9b | |
parent | 8d50e332c8bd4f4e8cc76e8ed7326aa6f18182aa (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.c | 16 | ||||
-rw-r--r-- | arch/ia64/kernel/acpi.c | 17 | ||||
-rw-r--r-- | include/linux/acpi.h | 3 |
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) | |||
507 | EXPORT_SYMBOL(acpi_unmap_lsapic); | 507 | EXPORT_SYMBOL(acpi_unmap_lsapic); |
508 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ | 508 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
509 | 509 | ||
510 | int | ||
511 | acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base) | ||
512 | { | ||
513 | /* TBD */ | ||
514 | return -EINVAL; | ||
515 | } | ||
516 | EXPORT_SYMBOL(acpi_register_ioapic); | ||
517 | |||
518 | int | ||
519 | acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base) | ||
520 | { | ||
521 | /* TBD */ | ||
522 | return -EINVAL; | ||
523 | } | ||
524 | EXPORT_SYMBOL(acpi_unregister_ioapic); | ||
525 | |||
510 | static unsigned long __init | 526 | static unsigned long __init |
511 | acpi_scan_rsdp ( | 527 | acpi_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 | |||
829 | int | ||
830 | acpi_register_ioapic (acpi_handle handle, u64 phys_addr, u32 gsi_base) | ||
831 | { | ||
832 | /* TBD */ | ||
833 | return -EINVAL; | ||
834 | } | ||
835 | EXPORT_SYMBOL(acpi_register_ioapic); | ||
836 | |||
837 | int | ||
838 | acpi_unregister_ioapic (acpi_handle handle, u32 gsi_base) | ||
839 | { | ||
840 | /* TBD */ | ||
841 | return -EINVAL; | ||
842 | } | ||
843 | EXPORT_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); | |||
407 | int acpi_unmap_lsapic(int cpu); | 407 | int acpi_unmap_lsapic(int cpu); |
408 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ | 408 | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
409 | 409 | ||
410 | int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); | ||
411 | int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base); | ||
412 | |||
410 | extern int acpi_mp_config; | 413 | extern int acpi_mp_config; |
411 | 414 | ||
412 | extern u32 pci_mmcfg_base_addr; | 415 | extern u32 pci_mmcfg_base_addr; |