aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjohn stultz <johnstul@us.ibm.com>2006-06-26 03:25:09 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 12:58:20 -0400
commit8d016ef1380a2a9a5ca5742ede04334199868f82 (patch)
tree77eb8ad4e4c990f942e4aa4315a3d569585d61e3
parentede65f3926a284f07765b94d6d9fd10d63791174 (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>
-rw-r--r--arch/i386/kernel/Makefile2
-rw-r--r--arch/i386/kernel/i8253.c32
-rw-r--r--arch/i386/kernel/time.c5
-rw-r--r--arch/i386/kernel/timers/timer_pit.c13
4 files changed, 33 insertions, 19 deletions
diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile
index 96fb8a020af2..4142d69a5336 100644
--- a/arch/i386/kernel/Makefile
+++ b/arch/i386/kernel/Makefile
@@ -7,7 +7,7 @@ extra-y := head.o init_task.o vmlinux.lds
7obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \ 7obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \
8 ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \ 8 ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \
9 pci-dma.o i386_ksyms.o i387.o bootflag.o \ 9 pci-dma.o i386_ksyms.o i387.o bootflag.o \
10 quirks.o i8237.o topology.o alternative.o 10 quirks.o i8237.o topology.o alternative.o i8253.o
11 11
12obj-y += cpu/ 12obj-y += cpu/
13obj-y += timers/ 13obj-y += timers/
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
18DEFINE_SPINLOCK(i8253_lock);
19EXPORT_SYMBOL(i8253_lock);
20
21void 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}
diff --git a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c
index 9d3074759856..796e5faa6ca7 100644
--- a/arch/i386/kernel/time.c
+++ b/arch/i386/kernel/time.c
@@ -82,11 +82,6 @@ extern unsigned long wall_jiffies;
82DEFINE_SPINLOCK(rtc_lock); 82DEFINE_SPINLOCK(rtc_lock);
83EXPORT_SYMBOL(rtc_lock); 83EXPORT_SYMBOL(rtc_lock);
84 84
85#include <asm/i8253.h>
86
87DEFINE_SPINLOCK(i8253_lock);
88EXPORT_SYMBOL(i8253_lock);
89
90struct timer_opts *cur_timer __read_mostly = &timer_none; 85struct timer_opts *cur_timer __read_mostly = &timer_none;
91 86
92/* 87/*
diff --git a/arch/i386/kernel/timers/timer_pit.c b/arch/i386/kernel/timers/timer_pit.c
index b9b6bd56b9ba..44cbdf9bda9d 100644
--- a/arch/i386/kernel/timers/timer_pit.c
+++ b/arch/i386/kernel/timers/timer_pit.c
@@ -162,16 +162,3 @@ struct init_timer_opts __initdata timer_pit_init = {
162 .init = init_pit, 162 .init = init_pit,
163 .opts = &timer_pit, 163 .opts = &timer_pit,
164}; 164};
165
166void setup_pit_timer(void)
167{
168 unsigned long flags;
169
170 spin_lock_irqsave(&i8253_lock, flags);
171 outb_p(0x34,PIT_MODE); /* binary, mode 2, LSB/MSB, ch 0 */
172 udelay(10);
173 outb_p(LATCH & 0xff , PIT_CH0); /* LSB */
174 udelay(10);
175 outb(LATCH >> 8 , PIT_CH0); /* MSB */
176 spin_unlock_irqrestore(&i8253_lock, flags);
177}