[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>
This commit is contained in:
parent
8d50e332c8
commit
b1bb248a5d
|
@ -507,6 +507,22 @@ acpi_unmap_lsapic(int cpu)
|
||||||
EXPORT_SYMBOL(acpi_unmap_lsapic);
|
EXPORT_SYMBOL(acpi_unmap_lsapic);
|
||||||
#endif /* CONFIG_ACPI_HOTPLUG_CPU */
|
#endif /* CONFIG_ACPI_HOTPLUG_CPU */
|
||||||
|
|
||||||
|
int
|
||||||
|
acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base)
|
||||||
|
{
|
||||||
|
/* TBD */
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(acpi_register_ioapic);
|
||||||
|
|
||||||
|
int
|
||||||
|
acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base)
|
||||||
|
{
|
||||||
|
/* TBD */
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(acpi_unregister_ioapic);
|
||||||
|
|
||||||
static unsigned long __init
|
static unsigned long __init
|
||||||
acpi_scan_rsdp (
|
acpi_scan_rsdp (
|
||||||
unsigned long start,
|
unsigned long start,
|
||||||
|
|
|
@ -825,4 +825,21 @@ acpi_map_iosapic (acpi_handle handle, u32 depth, void *context, void **ret)
|
||||||
return AE_OK;
|
return AE_OK;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_NUMA */
|
#endif /* CONFIG_NUMA */
|
||||||
|
|
||||||
|
int
|
||||||
|
acpi_register_ioapic (acpi_handle handle, u64 phys_addr, u32 gsi_base)
|
||||||
|
{
|
||||||
|
/* TBD */
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(acpi_register_ioapic);
|
||||||
|
|
||||||
|
int
|
||||||
|
acpi_unregister_ioapic (acpi_handle handle, u32 gsi_base)
|
||||||
|
{
|
||||||
|
/* TBD */
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(acpi_unregister_ioapic);
|
||||||
|
|
||||||
#endif /* CONFIG_ACPI_BOOT */
|
#endif /* CONFIG_ACPI_BOOT */
|
||||||
|
|
|
@ -407,6 +407,9 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu);
|
||||||
int acpi_unmap_lsapic(int cpu);
|
int acpi_unmap_lsapic(int cpu);
|
||||||
#endif /* CONFIG_ACPI_HOTPLUG_CPU */
|
#endif /* CONFIG_ACPI_HOTPLUG_CPU */
|
||||||
|
|
||||||
|
int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
|
||||||
|
int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
|
||||||
|
|
||||||
extern int acpi_mp_config;
|
extern int acpi_mp_config;
|
||||||
|
|
||||||
extern u32 pci_mmcfg_base_addr;
|
extern u32 pci_mmcfg_base_addr;
|
||||||
|
|
Loading…
Reference in New Issue