Skip to contentSkip to conversation

2.4 PATCH: Fix acpi for bigsur

PATCH H. J. Lu 2 participants 2 messages Aug 6, 2003 ACPI

lore
Share & tools
lore

H. J. Lu

author
#0 lore raw

I need this patch to get the current 2.4 kernel to boot on bigsur.

H.J.
----

drivers/acpi/osl.c renamed from drivers/acpi/osl.c.acpi +6 -1
@@ -251,7 +251,12 @@ acpi_os_install_interrupt_handler(u32 ir
 	irq = acpi_fadt.sci_int;
 
 #ifdef CONFIG_IA64
-	irq = gsi_to_vector(irq);
+	irq = acpi_irq_to_vector (irq);
+	if (irq < 0) {
+		printk(KERN_ERR PREFIX "SCI (IRQ%d/%d) not registerd\n",
+		       irq, acpi_fadt.sci_int);
+		return AE_OK;
+	}
 #endif
 	acpi_irq_irq = irq;
 	acpi_irq_handler = handler;
#1 lore raw
Quoted 1 line

I need this patch to get the current 2.4 kernel to boot on bigsur.

I reproduced that problem, and applied the following patch for 2.4 (this is what we had in 2.4.21, prior to the big ACPI update in 2.4).

Andy, can you apply this to ACPI? It's needed for both 2.4 and 2.5 ia64 kernels. The problem is that on machines with an 8259, the SCI interrupt might be a legacy ISA IRQ, not a GSI.

I'm not thrilled about the name "acpi_irq_to_vector". Something like "acpi_interrupt_to_irq" seems like it would fit the usage better. Suggestions?

Bjorn

=== drivers/acpi/osl.c 1.27 vs edited ==--- 1.27/drivers/acpi/osl.c Thu Jul 10 04:20:31 2003
+++ edited/drivers/acpi/osl.c Wed Aug 6 16:16:38 2003
@@ -251,7 +251,12 @@
irq = acpi_fadt.sci_int;

#ifdef CONFIG_IA64
- irq = gsi_to_vector(irq);
+ irq = acpi_irq_to_vector(irq);
+ if (irq < 0) {
+ printk(KERN_ERR PREFIX "SCI (ACPI interrupt %d) not registerd\n",
+ acpi_fadt.sci_int);
+ return AE_OK;
+ }
#endif
acpi_irq_irq = irq;
acpi_irq_handler = handler;
@@ -269,7 +274,7 @@
{
if (acpi_irq_handler) {
#ifdef CONFIG_IA64
- irq = gsi_to_vector(irq);
+ irq = acpi_irq_to_vector(irq);
#endif
free_irq(irq, acpi_irq);
acpi_irq_handler = NULL;