<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1128  -&gt; 1.1129 
#	  drivers/acpi/bus.c	1.17    -&gt; 1.18   
#	arch/i386/kernel/acpi.c	1.13    -&gt; 1.14   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/10/20	len.brown@intel.com	1.1129
# [ACPI] fix !CONFIG_PCI build
#   use X86 ACPI specific version of eisa_set_level_irq()
#   http://bugzilla.kernel.org/show_bug.cgi?id=1390
# --------------------------------------------
#
diff -Nru a/arch/i386/kernel/acpi.c b/arch/i386/kernel/acpi.c
--- a/arch/i386/kernel/acpi.c	Mon Oct 20 18:10:13 2003
+++ b/arch/i386/kernel/acpi.c	Mon Oct 20 18:10:13 2003
@@ -470,6 +470,34 @@
 
 #endif /*CONFIG_ACPI_BOOT*/
 
+#ifdef	CONFIG_ACPI_BUS
+/*
+ * Set specified PIC IRQ to level triggered mode.
+ *
+ * Port 0x4d0-4d1 are ECLR1 and ECLR2, the Edge/Level Control Registers
+ * for the 8259 PIC.  bit[n] = 1 means irq[n] is Level, otherwise Edge.
+ * ECLR1 is IRQ's 0-7 (IRQ 0, 1, 2 must be 0)
+ * ECLR2 is IRQ's 8-15 (IRQ 8, 13 must be 0)
+ *
+ * As the BIOS should have done this for us,
+ * print a warning if the IRQ wasn't already set to level.
+ */
+
+void acpi_pic_set_level_irq(unsigned int irq)
+{
+	unsigned char mask = 1 &lt;&lt; (irq &amp; 7);
+	unsigned int port = 0x4d0 + (irq &gt;&gt; 3);
+	unsigned char val = inb(port);
+
+	if (!(val &amp; mask)) {
+		printk(KERN_WARNING PREFIX "IRQ %d was Edge Triggered, "
+			"setting to Level Triggerd\n", irq);
+		outb(val | mask, port);
+	}
+}
+#endif /* CONFIG_ACPI_BUS */
+
+
 
 /* --------------------------------------------------------------------------
                               Low-Level Sleep Support
diff -Nru a/drivers/acpi/bus.c b/drivers/acpi/bus.c
--- a/drivers/acpi/bus.c	Mon Oct 20 18:10:13 2003
+++ b/drivers/acpi/bus.c	Mon Oct 20 18:10:13 2003
@@ -49,7 +49,7 @@
 
 #define	PREFIX			"ACPI: "
 
-extern void eisa_set_level_irq(unsigned int irq);
+extern void acpi_pic_set_level_irq(unsigned int irq);
 
 extern int			acpi_disabled;
 
@@ -1881,7 +1881,7 @@
         if (acpi_ioapic)
          	mp_config_ioapic_for_sci(acpi_fadt.sci_int);
 	else
-                eisa_set_level_irq(acpi_fadt.sci_int);
+		acpi_pic_set_level_irq(acpi_fadt.sci_int);
 #endif
 
 	status = acpi_enable_subsystem(ACPI_FULL_INITIALIZATION);
</pre></body></html>