diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 0d7bac913de4d60bff453c15965864f5a59d3d40..5d926b60e8d94d910d5fad7931e9819f9143fb6e 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c @@ -626,6 +626,7 @@ acpi_boot_init (void) return 0; } +/* deprecated in favor of acpi_gsi_to_irq */ int acpi_irq_to_vector (u32 gsi) { @@ -635,6 +636,23 @@ acpi_irq_to_vector (u32 gsi) return gsi_to_vector(gsi); } +int +acpi_gsi_to_irq (u32 gsi, unsigned int *irq) +{ + int vector; + + if (has_8259 && gsi < 16) + *irq = isa_irq_to_vector(gsi); + else { + vector = gsi_to_vector(gsi); + if (vector == -1) + return -1; + + *irq = vector; + } + return 0; +} + int acpi_register_irq (u32 gsi, u32 polarity, u32 trigger) { diff --git a/include/asm-ia64/acpi.h b/include/asm-ia64/acpi.h index fd1b5061d72526d8e5acedd5f5a3e6cb40a06017..f98bb1cc5680b7413668bd19469ee92f31df2ae3 100644 --- a/include/asm-ia64/acpi.h +++ b/include/asm-ia64/acpi.h @@ -93,7 +93,8 @@ ia64_acpi_release_global_lock (unsigned int *lock) const char *acpi_get_sysname (void); int acpi_request_vector (u32 int_type); int acpi_register_irq (u32 gsi, u32 polarity, u32 trigger); -int acpi_irq_to_vector (u32 irq); +int acpi_irq_to_vector (u32 irq); /* deprecated in favor of acpi_gsi_to_irq */ +int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); #ifdef CONFIG_ACPI_NUMA /* Proximity bitmap length; _PXM is at most 255 (8 bit)*/