diff options
author | john stultz <johnstul@us.ibm.com> | 2006-06-26 03:25:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 12:58:20 -0400 |
commit | 8d016ef1380a2a9a5ca5742ede04334199868f82 (patch) | |
tree | 77eb8ad4e4c990f942e4aa4315a3d569585d61e3 /arch/i386/kernel/i8253.c | |
parent | ede65f3926a284f07765b94d6d9fd10d63791174 (diff) |
[PATCH] Time: i386 Conversion - part 1: Move timer_pit.c to i8253.c
A simple cleanup for the i386 arch in preparation of moving to the generic
timeofday infrastructure. It simply moves the PIT initialization code, locks,
and other code we want to keep from some code from timer_pit.c (which will be
removed) to i8253.c.
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/i8253.c')
-rw-r--r-- | arch/i386/kernel/i8253.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/i386/kernel/i8253.c b/arch/i386/kernel/i8253.c new file mode 100644 index 000000000000..29cb2eb34363 --- /dev/null +++ b/arch/i386/kernel/i8253.c | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * i8253.c 8253/PIT functions | ||
3 | * | ||
4 | */ | ||
5 | #include <linux/spinlock.h> | ||
6 | #include <linux/jiffies.h> | ||
7 | #include <linux/sysdev.h> | ||
8 | #include <linux/module.h> | ||
9 | #include <linux/init.h> | ||
10 | |||
11 | #include <asm/smp.h> | ||
12 | #include <asm/delay.h> | ||
13 | #include <asm/i8253.h> | ||
14 | #include <asm/io.h> | ||
15 | |||
16 | #include "io_ports.h" | ||
17 | |||
18 | DEFINE_SPINLOCK(i8253_lock); | ||
19 | EXPORT_SYMBOL(i8253_lock); | ||
20 | |||
21 | void setup_pit_timer(void) | ||
22 | { | ||
23 | unsigned long flags; | ||
24 | |||
25 | spin_lock_irqsave(&i8253_lock, flags); | ||
26 | outb_p(0x34,PIT_MODE); /* binary, mode 2, LSB/MSB, ch 0 */ | ||
27 | udelay(10); | ||
28 | outb_p(LATCH & 0xff , PIT_CH0); /* LSB */ | ||
29 | udelay(10); | ||
30 | outb(LATCH >> 8 , PIT_CH0); /* MSB */ | ||
31 | spin_unlock_irqrestore(&i8253_lock, flags); | ||
32 | } | ||