public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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