Author: dannf
Date: Thu Jan 11 07:57:07 2007
New Revision: 8159

Added:
   
dists/sid/linux-2.6/debian/patches/bugfix/acpi_pm-re-add-verify_mptmr_rate.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/9
Log:
* Re-add verify_pmtmr_rate, resolving problems seen on older K6 ASUS
  boards where the ACPI PM timer runs too fast (closes: #394753)

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog        (original)
+++ dists/sid/linux-2.6/debian/changelog        Thu Jan 11 07:57:07 2007
@@ -58,6 +58,8 @@
     in an etch environment so that we can build out of tree modules correctly
     (closes: #392592)
   * Update unusual_devs entry for ipod to fix an eject issue (closes: #406124)
+  * Re-add verify_pmtmr_rate, resolving problems seen on older K6 ASUS
+    boards where the ACPI PM timer runs too fast (closes: #394753)
 
   [ Norbert Tretkowski ]
   * libata: handle 0xff status properly. (closes: #391867)
@@ -151,7 +153,7 @@
     memory accesses in ehci-hub-control() by adding an alignment attribute
     to the tbuf array declaration. Thanks to David Miller for the patch.
 
- -- Bastian Blank <[EMAIL PROTECTED]>  Tue,  9 Jan 2007 22:48:02 +0100
+ -- dann frazier <[EMAIL PROTECTED]>  Wed, 10 Jan 2007 23:39:47 -0700
 
 linux-2.6 (2.6.18-8) unstable; urgency=low
 

Added: 
dists/sid/linux-2.6/debian/patches/bugfix/acpi_pm-re-add-verify_mptmr_rate.patch
==============================================================================
--- (empty file)
+++ 
dists/sid/linux-2.6/debian/patches/bugfix/acpi_pm-re-add-verify_mptmr_rate.patch
    Thu Jan 11 07:57:07 2007
@@ -0,0 +1,81 @@
+commit 562f9c574e0707f9159a729ea41faf53b221cd30
+Author: john stultz <[EMAIL PROTECTED]>
+Date:   Fri Dec 8 02:36:02 2006 -0800
+
+    [PATCH] time: re-add verify_pmtmr_rate
+    
+    This patch re-adds the verify_pmtmr_rate functionality from 2.6.17 that
+    I dropped 2.6.18.
+    
+    This resolves problems seen on older K6 ASUS boards where the ACPI PM
+    timer runs too fast.
+    
+    See:
+    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=211902
+    http://bugme.osdl.org/show_bug.cgi?id=2375
+    
+    Thanks to Ian Campbell for re-reporting this and testing the fix!
+    
+    Signed-off-by: John Stultz <[EMAIL PROTECTED]>
+    Cc: Andi Kleen <[EMAIL PROTECTED]>
+    Cc: Ian Campbell <[EMAIL PROTECTED]>
+    Cc: Ingo Molnar <[EMAIL PROTECTED]>
+    Cc: Thomas Gleixner <[EMAIL PROTECTED]>
+    Cc: Roman Zippel <[EMAIL PROTECTED]>
+    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
+    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
+
+diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
+index 7fcb77a..8ab61ef 100644
+--- a/drivers/clocksource/acpi_pm.c
++++ b/drivers/clocksource/acpi_pm.c
+@@ -142,6 +142,39 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 
PCI_DEVICE_ID_SERVERWORKS_LE,
+                       acpi_pm_check_graylist);
+ #endif
+ 
++#ifndef CONFIG_X86_64
++#include "mach_timer.h"
++#define PMTMR_EXPECTED_RATE \
++  ((CALIBRATE_LATCH * (PMTMR_TICKS_PER_SEC >> 10)) / (CLOCK_TICK_RATE>>10))
++/*
++ * Some boards have the PMTMR running way too fast. We check
++ * the PMTMR rate against PIT channel 2 to catch these cases.
++ */
++static int verify_pmtmr_rate(void)
++{
++      u32 value1, value2;
++      unsigned long count, delta;
++
++      mach_prepare_counter();
++      value1 = read_pmtmr();
++      mach_countup(&count);
++      value2 = read_pmtmr();
++      delta = (value2 - value1) & ACPI_PM_MASK;
++
++      /* Check that the PMTMR delta is within 5% of what we expect */
++      if (delta < (PMTMR_EXPECTED_RATE * 19) / 20 ||
++          delta > (PMTMR_EXPECTED_RATE * 21) / 20) {
++              printk(KERN_INFO "PM-Timer running at invalid rate: %lu%% "
++                      "of normal - aborting.\n",
++                      100UL * delta / PMTMR_EXPECTED_RATE);
++              return -1;
++      }
++
++      return 0;
++}
++#else
++#define verify_pmtmr_rate() (0)
++#endif
+ 
+ static int __init init_acpi_pm_clocksource(void)
+ {
+@@ -173,6 +206,9 @@ static int __init init_acpi_pm_clocksource(void)
+       return -ENODEV;
+ 
+ pm_good:
++      if (verify_pmtmr_rate() != 0)
++              return -ENODEV;
++
+       return clocksource_register(&clocksource_acpi_pm);
+ }
+ 

Modified: dists/sid/linux-2.6/debian/patches/series/9
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/9 (original)
+++ dists/sid/linux-2.6/debian/patches/series/9 Thu Jan 11 07:57:07 2007
@@ -52,3 +52,4 @@
 + features/arm/ixp4xx-npe-driver-0.3.1.patch
 + features/arm/ixp4xx-net-driver-improve-mac-handling-0.3.1.patch
 + bugfix/drivers-net-tg3-reset.patch 
++ bugfix/acpi_pm-re-add-verify_mptmr_rate.patch

_______________________________________________
Kernel-svn-changes mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to