aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/acpi.c
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
commit0e888adc41ffc02b700ade715c182a17e766af84 (patch)
treeb3d745d7a292213daf107c690ea43e5589397867 /arch/ia64/kernel/acpi.c
parentb1bb248a5d2230a3d8ef42199c742194a8580b15 (diff)
[PATCH] ACPI based I/O APIC hot-plug: ia64 support
This is an ia64 implementation of acpi_register_ioapic() and acpi_unregister_ioapic() interfaces. 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>
Diffstat (limited to 'arch/ia64/kernel/acpi.c')
-rw-r--r--arch/ia64/kernel/acpi.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index ab798867acdf..cda06f88c66e 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -236,9 +236,7 @@ acpi_parse_iosapic (acpi_table_entry_header *header, const unsigned long end)
236 if (BAD_MADT_ENTRY(iosapic, end)) 236 if (BAD_MADT_ENTRY(iosapic, end))
237 return -EINVAL; 237 return -EINVAL;
238 238
239 iosapic_init(iosapic->address, iosapic->global_irq_base); 239 return iosapic_init(iosapic->address, iosapic->global_irq_base);
240
241 return 0;
242} 240}
243 241
244 242
@@ -772,7 +770,7 @@ EXPORT_SYMBOL(acpi_unmap_lsapic);
772 770
773 771
774#ifdef CONFIG_ACPI_NUMA 772#ifdef CONFIG_ACPI_NUMA
775acpi_status __init 773acpi_status __devinit
776acpi_map_iosapic (acpi_handle handle, u32 depth, void *context, void **ret) 774acpi_map_iosapic (acpi_handle handle, u32 depth, void *context, void **ret)
777{ 775{
778 struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; 776 struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
@@ -829,16 +827,23 @@ acpi_map_iosapic (acpi_handle handle, u32 depth, void *context, void **ret)
829int 827int
830acpi_register_ioapic (acpi_handle handle, u64 phys_addr, u32 gsi_base) 828acpi_register_ioapic (acpi_handle handle, u64 phys_addr, u32 gsi_base)
831{ 829{
832 /* TBD */ 830 int err;
833 return -EINVAL; 831
832 if ((err = iosapic_init(phys_addr, gsi_base)))
833 return err;
834
835#if CONFIG_ACPI_NUMA
836 acpi_map_iosapic(handle, 0, NULL, NULL);
837#endif /* CONFIG_ACPI_NUMA */
838
839 return 0;
834} 840}
835EXPORT_SYMBOL(acpi_register_ioapic); 841EXPORT_SYMBOL(acpi_register_ioapic);
836 842
837int 843int
838acpi_unregister_ioapic (acpi_handle handle, u32 gsi_base) 844acpi_unregister_ioapic (acpi_handle handle, u32 gsi_base)
839{ 845{
840 /* TBD */ 846 return iosapic_remove(gsi_base);
841 return -EINVAL;
842} 847}
843EXPORT_SYMBOL(acpi_unregister_ioapic); 848EXPORT_SYMBOL(acpi_unregister_ioapic);
844 849