On Monday 05 March 2007 05:35, Antonino A. Daplas wrote:
> On Mon, 2007-03-05 at 02:50 +0100, Adrian Bunk wrote:
> > This email lists some known regressions in 2.6.21-rc2 compared to 2.6.20
> > that are not yet fixed in Linus' tree.
> > 
> > If you find your name in the Cc header, you are either submitter of one
> > of the bugs, maintainer of an affectected subsystem or driver, a patch
> > of you caused a breakage or I'm considering you in any other way
> > possibly involved with one or more of these issues.
> > 
> > Due to the huge amount of recipients, please trim the Cc when answering.
> > 
> > 
> > Subject    : Asus A8N-VM motherboard:
> >              framebuffer/console boot failure boot failure (ACPI related)
> > References : http://lkml.org/lkml/2007/2/23/132
> > Submitter  : Andrew Nelless <[EMAIL PROTECTED]>
> > Caused-By  : Len Brown <[EMAIL PROTECTED]>
> >              commit 7f8f97c3cc75d5783d0b45cf323dedf17684be19
> > Handled-By : Antonino A. Daplas <[EMAIL PROTECTED]>
> > Status     : problem is being debugged
> > 
> 
> This is not a framebuffer nor console problem.
> 
> I think Andrew Nelless confirmed that the cause is from the above
> commit. How to fix it, I don't know.  Perhaps the
> acpi_skip_timer_override boot option has to be used.

Looks like I got fooled by the negative logic for the nvidia_bugs().
Please test this patch -- it should fix it,
as well as simplify the code a bit.

thanks,
-Len


Subject: ACPI: repair nvidia early quirk breakage on x86_64

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 <[EMAIL PROTECTED]>
---
 i386/kernel/acpi/earlyquirk.c |    7 +------
 x86_64/kernel/early-quirks.c  |    9 +--------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/arch/i386/kernel/acpi/earlyquirk.c 
b/arch/i386/kernel/acpi/earlyquirk.c
index bf86f76..7fdba8a 100644
--- a/arch/i386/kernel/acpi/earlyquirk.c
+++ b/arch/i386/kernel/acpi/earlyquirk.c
@@ -14,11 +14,8 @@
 
 #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 "
diff --git a/arch/x86_64/kernel/early-quirks.c 
b/arch/x86_64/kernel/early-quirks.c
index 8047ea8..dec587b 100644
--- a/arch/x86_64/kernel/early-quirks.c
+++ b/arch/x86_64/kernel/early-quirks.c
@@ -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 "
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to