Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06a24dec10bc4014fc0974670627efed68f5da27
Commit:     06a24dec10bc4014fc0974670627efed68f5da27
Parent:     d371698efd45c3664fd1726780c360f02e1f9580
Author:     Thomas Gleixner <[EMAIL PROTECTED]>
AuthorDate: Fri Oct 12 23:04:06 2007 +0200
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Fri Oct 12 23:04:06 2007 +0200

    i386: prepare sharing the hpet code with x86_64
    
    The hpet implementations of i386 and x8664 has been mostly the same
    before the clock events conversion of i386. The clock events
    conversion of i386 hpet is already done. So it makes sense to share
    the code for the x86_64 clock events conversion.
    
    Abstract out the mapping functions.
    
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
    Signed-off-by: Chris Wright <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Arjan van de Ven <[EMAIL PROTECTED]>
---
 arch/x86/kernel/hpet_32.c |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/hpet_32.c b/arch/x86/kernel/hpet_32.c
index 533d493..748abf0 100644
--- a/arch/x86/kernel/hpet_32.c
+++ b/arch/x86/kernel/hpet_32.c
@@ -8,10 +8,9 @@
 #include <linux/delay.h>
 
 #include <asm/hpet.h>
+#include <asm/i8253.h>
 #include <asm/io.h>
 
-extern struct clock_event_device *global_clock_event;
-
 #define HPET_MASK      CLOCKSOURCE_MASK(32)
 #define HPET_SHIFT     22
 
@@ -22,7 +21,7 @@ extern struct clock_event_device *global_clock_event;
  * HPET address is set in acpi/boot.c, when an ACPI entry exists
  */
 unsigned long hpet_address;
-static void __iomem * hpet_virt_address;
+static void __iomem *hpet_virt_address;
 
 static inline unsigned long hpet_readl(unsigned long a)
 {
@@ -34,6 +33,17 @@ static inline void hpet_writel(unsigned long d, unsigned 
long a)
        writel(d, hpet_virt_address + a);
 }
 
+static inline void hpet_set_mapping(void)
+{
+       hpet_virt_address = ioremap_nocache(hpet_address, HPET_MMAP_SIZE);
+}
+
+static inline void hpet_clear_mapping(void)
+{
+       iounmap(hpet_virt_address);
+       hpet_virt_address = NULL;
+}
+
 /*
  * HPET command line enable / disable
  */
@@ -83,7 +93,7 @@ static void hpet_reserve_platform_timers(unsigned long id)
 
        memset(&hd, 0, sizeof (hd));
        hd.hd_phys_address = hpet_address;
-       hd.hd_address = hpet_virt_address;
+       hd.hd_address = hpet;
        hd.hd_nirqs = nrtimers;
        hd.hd_flags = HPET_DATA_PLATFORM;
        hpet_reserve_timer(&hd, 0);
@@ -238,7 +248,7 @@ int __init hpet_enable(void)
        if (!is_hpet_capable())
                return 0;
 
-       hpet_virt_address = ioremap_nocache(hpet_address, HPET_MMAP_SIZE);
+       hpet_set_mapping();
 
        /*
         * Read the period and check for a sane value:
@@ -334,13 +344,11 @@ int __init hpet_enable(void)
        return 0;
 
 out_nohpet:
-       iounmap(hpet_virt_address);
-       hpet_virt_address = NULL;
+       hpet_clear_mapping();
        boot_hpet_disable = 1;
        return 0;
 }
 
-
 #ifdef CONFIG_HPET_EMULATE_RTC
 
 /* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to