WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] x86, hpet: Fix initialisation of secondar

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86, hpet: Fix initialisation of secondary timers.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 01 Dec 2008 03:50:09 -0800
Delivery-date: Mon, 01 Dec 2008 03:49:57 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1227190550 0
# Node ID e3a0c3c9fd7b1d25e27397fd9c2e26d4d1a020a5
# Parent  368e072feb29003c57914facb23f62f9ce42757a
x86, hpet: Fix initialisation of secondary timers.

Each channel may have different settings, and in the original
implementation, other Tn configuration will accidently overwrite T0
configuration.

Signed-off-by: Guanqun Lu <guanqun.lu@xxxxxxxxx>
---
 xen/arch/x86/hpet.c        |   10 +++++-----
 xen/include/asm-x86/hpet.h |    4 ++++
 2 files changed, 9 insertions(+), 5 deletions(-)

diff -r 368e072feb29 -r e3a0c3c9fd7b xen/arch/x86/hpet.c
--- a/xen/arch/x86/hpet.c       Thu Nov 20 14:14:20 2008 +0000
+++ b/xen/arch/x86/hpet.c       Thu Nov 20 14:15:50 2008 +0000
@@ -276,9 +276,9 @@ u64 hpet_setup(void)
     set_fixmap_nocache(FIX_HPET_BASE, hpet_address);
 
     hpet_id = hpet_read32(HPET_ID);
-    if ( hpet_id == 0 )
-    {
-        printk("BAD HPET vendor id.\n");
+    if ( (hpet_id & HPET_ID_REV) == 0 )
+    {
+        printk("BAD HPET revision id.\n");
         return 0;
     }
 
@@ -296,9 +296,9 @@ u64 hpet_setup(void)
 
     for ( i = 0; i <= ((hpet_id >> 8) & 31); i++ )
     {
-        cfg = hpet_read32(HPET_T0_CFG + i*0x20);
+        cfg = hpet_read32(HPET_Tn_CFG(i));
         cfg &= ~HPET_TN_ENABLE;
-        hpet_write32(cfg & ~HPET_TN_ENABLE, HPET_T0_CFG);
+        hpet_write32(cfg, HPET_Tn_CFG(i));
     }
 
     cfg = hpet_read32(HPET_CFG);
diff -r 368e072feb29 -r e3a0c3c9fd7b xen/include/asm-x86/hpet.h
--- a/xen/include/asm-x86/hpet.h        Thu Nov 20 14:14:20 2008 +0000
+++ b/xen/include/asm-x86/hpet.h        Thu Nov 20 14:15:50 2008 +0000
@@ -23,6 +23,10 @@
 #define HPET_T2_CFG    0x140
 #define HPET_T2_CMP    0x148
 #define HPET_T2_ROUTE  0x150
+
+#define HPET_Tn_CFG(n)      (HPET_T0_CFG + n * 0x20)
+#define HPET_Tn_CMP(n)      (HPET_T0_CMP + n * 0x20)
+#define HPET_Tn_ROUTE(n)    (HPET_T0_ROUTE + n * 0x20)
 
 #define HPET_ID_VENDOR 0xffff0000
 #define HPET_ID_LEGSUP 0x00008000

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86, hpet: Fix initialisation of secondary timers., Xen patchbot-unstable <=