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