[PATCH] ACPI: repair nvidia early quirk breakage on x86_64
authorLen Brown <lenb@kernel.org>
Thu, 8 Mar 2007 23:28:32 +0000 (18:28 -0500)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 9 Mar 2007 00:06:07 +0000 (16:06 -0800)
x86_64 nvidia_bugs() broke when we bailed out on not finding the HPET.
However, the quirk works by checking for _not_ finding the HPET...

Delete the nvidia_hpet_detected flag and simply test for
not finding the HPET, which is simple to do now that
acpi_table_parse returns 1 on failure.

Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/i386/kernel/acpi/earlyquirk.c
arch/x86_64/kernel/early-quirks.c

index bf86f7662d8b7a4c6210ff6e537502db624e27b6..7fdba8a44c170e1b2cf054d9e6bdb9fabd2bf874 100644 (file)
 
 #ifdef CONFIG_ACPI
 
-static int nvidia_hpet_detected __initdata;
-
 static int __init nvidia_hpet_check(struct acpi_table_header *header)
 {
-       nvidia_hpet_detected = 1;
        return 0;
 }
 #endif
@@ -29,9 +26,7 @@ static int __init check_bridge(int vendor, int device)
        /* According to Nvidia all timer overrides are bogus unless HPET
           is enabled. */
        if (!acpi_use_timer_override && vendor == PCI_VENDOR_ID_NVIDIA) {
-               nvidia_hpet_detected = 0;
-               acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check);
-               if (nvidia_hpet_detected == 0) {
+               if (acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check) {
                        acpi_skip_timer_override = 1;
                          printk(KERN_INFO "Nvidia board "
                        "detected. Ignoring ACPI "
index 8047ea8c2ab271e9e315547e3a77450d31edcab4..dec587b293bfcf9ccfed71798279fdd8408c9a9f 100644 (file)
@@ -30,11 +30,8 @@ static void via_bugs(void)
 
 #ifdef CONFIG_ACPI
 
-static int nvidia_hpet_detected __initdata;
-
 static int __init nvidia_hpet_check(struct acpi_table_header *header)
 {
-       nvidia_hpet_detected = 1;
        return 0;
 }
 #endif
@@ -52,11 +49,7 @@ static void nvidia_bugs(void)
        if (acpi_use_timer_override)
                return;
 
-       nvidia_hpet_detected = 0;
-       if (acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check))
-               return;
-
-       if (nvidia_hpet_detected == 0) {
+       if (acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check)) {
                acpi_skip_timer_override = 1;
                printk(KERN_INFO "Nvidia board "
                       "detected. Ignoring ACPI "