* [gentoo-commits] linux-patches r1409 - genpatches-2.6/trunk/2.6.27
@ 2008-11-26 10:29 Daniel Drake (dsd)
0 siblings, 0 replies; only message in thread
From: Daniel Drake (dsd) @ 2008-11-26 10:29 UTC (permalink / raw
To: gentoo-commits
Author: dsd
Date: 2008-11-26 10:29:07 +0000 (Wed, 26 Nov 2008)
New Revision: 1409
Added:
genpatches-2.6/trunk/2.6.27/2200_sb600-acpi-irq0-override.patch
Modified:
genpatches-2.6/trunk/2.6.27/0000_README
Log:
Fix ACPI-related performance degradation on HP laptops
Modified: genpatches-2.6/trunk/2.6.27/0000_README
===================================================================
--- genpatches-2.6/trunk/2.6.27/0000_README 2008-11-25 12:46:47 UTC (rev 1408)
+++ genpatches-2.6/trunk/2.6.27/0000_README 2008-11-26 10:29:07 UTC (rev 1409)
@@ -75,6 +75,10 @@
From: http://bugs.gentoo.org/show_bug.cgi?id=245369
Desc: Patch to fix setkey policy breakage
+Patch: 2200_sb600-acpi-irq0-override.patch
+From: http://bugs.gentoo.org/245158
+Desc: Fix ACPI-related performance degradation on HP laptops
+
Patch: 2700_hda-asus-mic-input.patch
From: http://bugs.gentoo.org/235732
Desc: Fix microphone input regression on Asus laptops
Added: genpatches-2.6/trunk/2.6.27/2200_sb600-acpi-irq0-override.patch
===================================================================
--- genpatches-2.6/trunk/2.6.27/2200_sb600-acpi-irq0-override.patch (rev 0)
+++ genpatches-2.6/trunk/2.6.27/2200_sb600-acpi-irq0-override.patch 2008-11-26 10:29:07 UTC (rev 1409)
@@ -0,0 +1,112 @@
+From: Andreas Herrmann <andreas.herrmann3@amd.com>
+Date: Tue, 14 Oct 2008 19:01:15 +0000 (+0200)
+Subject: x86: SB600: skip ACPI IRQ0 override if it is not routed to INT2 of IOAPIC
+X-Git-Tag: v2.6.28-rc1~26^2~2^2
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=26adcfbf00e0726b4469070aa2f530dcf963f484
+
+x86: SB600: skip ACPI IRQ0 override if it is not routed to INT2 of IOAPIC
+
+On some more HP laptops BIOS reports an IRQ0 override
+but the SB600 chipset is configured such that timer
+interrupts go to INT0 of IOAPIC.
+
+Check IRQ0 routing and if it is routed to INT0 of IOAPIC skip the
+timer override.
+
+http://bugzilla.kernel.org/show_bug.cgi?id=11715
+http://bugzilla.kernel.org/show_bug.cgi?id=11516
+
+Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+[dsd@gentoo.org: rediff for 2.6.27]
+---
+
+Index: linux-2.6.27-gentoo-r4/arch/x86/kernel/early-quirks.c
+===================================================================
+--- linux-2.6.27-gentoo-r4.orig/arch/x86/kernel/early-quirks.c
++++ linux-2.6.27-gentoo-r4/arch/x86/kernel/early-quirks.c
+@@ -95,7 +95,8 @@ static void __init nvidia_bugs(int num,
+
+ }
+
+-static u32 ati_ixp4x0_rev(int num, int slot, int func)
++#if defined(CONFIG_ACPI) && defined(CONFIG_X86_IO_APIC)
++static u32 __init ati_ixp4x0_rev(int num, int slot, int func)
+ {
+ u32 d;
+ u8 b;
+@@ -115,7 +116,6 @@ static u32 ati_ixp4x0_rev(int num, int s
+
+ static void __init ati_bugs(int num, int slot, int func)
+ {
+-#if defined(CONFIG_ACPI) && defined (CONFIG_X86_IO_APIC)
+ u32 d;
+ u8 b;
+
+@@ -138,9 +138,56 @@ static void __init ati_bugs(int num, int
+ printk(KERN_INFO "If you got timer trouble "
+ "try acpi_use_timer_override\n");
+ }
+-#endif
+ }
+
++static u32 __init ati_sbx00_rev(int num, int slot, int func)
++{
++ u32 old, d;
++
++ d = read_pci_config(num, slot, func, 0x70);
++ old = d;
++ d &= ~(1<<8);
++ write_pci_config(num, slot, func, 0x70, d);
++ d = read_pci_config(num, slot, func, 0x8);
++ d &= 0xff;
++ write_pci_config(num, slot, func, 0x70, old);
++
++ return d;
++}
++
++static void __init ati_bugs_contd(int num, int slot, int func)
++{
++ u32 d, rev;
++
++ if (acpi_use_timer_override)
++ return;
++
++ rev = ati_sbx00_rev(num, slot, func);
++ if (rev > 0x13)
++ return;
++
++ /* check for IRQ0 interrupt swap */
++ d = read_pci_config(num, slot, func, 0x64);
++ if (!(d & (1<<14)))
++ acpi_skip_timer_override = 1;
++
++ if (acpi_skip_timer_override) {
++ printk(KERN_INFO "SB600 revision 0x%x\n", rev);
++ printk(KERN_INFO "Ignoring ACPI timer override.\n");
++ printk(KERN_INFO "If you got timer trouble "
++ "try acpi_use_timer_override\n");
++ }
++}
++#else
++static void __init ati_bugs(int num, int slot, int func)
++{
++}
++
++static void __init ati_bugs_contd(int num, int slot, int func)
++{
++}
++#endif
++
+ #define QFLAG_APPLY_ONCE 0x1
+ #define QFLAG_APPLIED 0x2
+ #define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED)
+@@ -162,6 +209,8 @@ static struct chipset early_qrk[] __init
+ PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, fix_hypertransport_config },
+ { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS,
+ PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs },
++ { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
++ PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd },
+ {}
+ };
+
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-11-26 10:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-26 10:29 [gentoo-commits] linux-patches r1409 - genpatches-2.6/trunk/2.6.27 Daniel Drake (dsd)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox