From: "Daniel Drake (dsd)" <dsd@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] linux-patches r1409 - genpatches-2.6/trunk/2.6.27
Date: Wed, 26 Nov 2008 10:29:07 +0000 [thread overview]
Message-ID: <E1L5Hdr-0008MK-LJ@stork.gentoo.org> (raw)
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 },
+ {}
+ };
+
reply other threads:[~2008-11-26 10:29 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1L5Hdr-0008MK-LJ@stork.gentoo.org \
--to=dsd@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox