]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Fix 'pci=noacpi' with buggy ACPI BIOSes
authorAndrew Morton <akpm@osdl.org>
Sun, 31 Aug 2003 11:29:25 +0000 (04:29 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Sun, 31 Aug 2003 11:29:25 +0000 (04:29 -0700)
From: Thomas Schlichter <schlicht@uni-mannheim.de>

Make the `pci=noacpi' command line option work correctly.  It fixes
interrupt routing probems for (at least 3) people with broken ACPI BIOSes.

arch/i386/kernel/acpi/boot.c
arch/i386/kernel/setup.c

index 38bb8a5d976a0645e74721aae6e51c5592a281f6..7883fd57bd814a61f08107b24d06bb12b4ab79d6 100644 (file)
@@ -41,6 +41,7 @@
 #define PREFIX                 "ACPI: "
 
 extern int acpi_disabled;
+extern int acpi_irq;
 extern int acpi_ht;
 
 int acpi_lapic = 0;
@@ -407,7 +408,7 @@ acpi_boot_init (void)
         * If MPS is present, it will handle them,
         * otherwise the system will stay in PIC mode
         */
-       if (acpi_disabled) {
+       if (acpi_disabled || !acpi_irq) {
                return 1;
         }
 
index 00341dbcc65583e017fd0c9bf1cbc6f35dfbc66e..17ba6a46e53d4a62464bbe44aba8cf2d284f13b0 100644 (file)
@@ -71,6 +71,7 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features);
 EXPORT_SYMBOL(acpi_disabled);
 
 #ifdef CONFIG_ACPI_BOOT
+       int acpi_irq __initdata = 1;    /* enable IRQ */
        int acpi_ht __initdata = 1;     /* enable HT */
 #endif
 
@@ -544,6 +545,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
                        if (!acpi_force) acpi_disabled = 1;
                }
 
+               /* "pci=noacpi" disables ACPI interrupt routing */
+               else if (!memcmp(from, "pci=noacpi", 10)) {
+                       acpi_irq = 0;
+               }
+
 #ifdef CONFIG_X86_LOCAL_APIC
                /* disable IO-APIC */
                else if (!memcmp(from, "noapic", 6))