Bug 3551 - disable ACPI timer override on Nvidia i386
disable ACPI timer override on Nvidia i386
Status: CLOSED CODE_FIX
Product: ACPI
Classification: Unclassified
Component: Config-Interrupts
i386 Linux
: P2 high
Assigned To: Len Brown
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2004-10-11 06:13 UTC by Andi Kleen
Modified: 2004-12-05 19:45 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.9rc3
Tree: Mainline
Regression: ---


Attachments
Disable timer override on Nvidia (2.47 KB, patch)
2004-10-11 06:15 UTC, Andi Kleen
Details | Diff
New version of nvidia timer override workaround (3.28 KB, patch)
2004-10-11 06:17 UTC, Andi Kleen
Details | Diff
cleanup patch to add to previous (3.80 KB, patch)
2004-11-11 00:32 UTC, Len Brown
Details | Diff

Description Andi Kleen 2004-10-11 06:13:27 UTC
After some discussion with Nvidia people it turns out all Timer Overrides
on Nvidia boards are wrong. They cause random failures with IO-APIC on.
According to Nvidia this should also be safe for future chipsets of theirs.

x86-64 already has a similar patch queued for 2.6.10pre. On i386 it is 
more critical however because x86-64 previously turned off the IO-APIC
on these boxes. On i386 it depends on the .config
Comment 1 Andi Kleen 2004-10-11 06:15:26 UTC
Created attachment 3806 [details]
Disable timer override on Nvidia


This patch adds an early pci scan that checks for this bridge and disables
the timer override for any nvidia board. Code ported from x86-64.

Some testing on a Nforce2 before submitting would be good.
Comment 2 Andi Kleen 2004-10-11 06:17:22 UTC
Created attachment 3807 [details]
New version of nvidia timer override workaround

Previous patch was missing two files.
Comment 3 Len Brown 2004-11-10 21:59:41 UTC
Patch looks good, but probably better w/o this line:

+               printk(KERN_INFO
+             "NForce bridge found, setting ACPI timer override\n");

because the BIOS may be correct and not supply an override,
in which case this workaround and this line are are NOP.

Plus, if we do find a bogus timer override, we already squawk about it:

        if (acpi_skip_timer_override &&
                intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
                        printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");

I'll apply this patch, sans prink, to the ACPI test tree.
Comment 4 Len Brown 2004-11-11 00:32:11 UTC
Created attachment 4010 [details]
cleanup patch to add to previous

additional patch to delete now obsolete dmi-scan entries
and also fix the build when ACPI & !IOAPIC
Comment 5 Len Brown 2004-12-05 19:45:11 UTC
shipped in 2.6.10-rc3 
closing. 

Note You need to log in before you can comment on or make changes to this bug.