From: john stultz 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 Acked-by: Ingo Molnar Signed-off-by: Andrew Morton --- arch/i386/kernel/Makefile | 2 - arch/i386/kernel/i8253.c | 32 ++++++++++++++++++++++++++ arch/i386/kernel/time.c | 5 ---- arch/i386/kernel/timers/timer_pit.c | 13 ---------- 4 files changed, 33 insertions(+), 19 deletions(-) diff -puN /dev/null arch/i386/kernel/i8253.c --- /dev/null 2003-09-15 06:40:47.000000000 -0700 +++ devel-akpm/arch/i386/kernel/i8253.c 2006-01-07 02:21:50.000000000 -0800 @@ -0,0 +1,32 @@ +/* + * i8253.c 8253/PIT functions + * + */ +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "io_ports.h" + +DEFINE_SPINLOCK(i8253_lock); +EXPORT_SYMBOL(i8253_lock); + +void setup_pit_timer(void) +{ + unsigned long flags; + + spin_lock_irqsave(&i8253_lock, flags); + outb_p(0x34,PIT_MODE); /* binary, mode 2, LSB/MSB, ch 0 */ + udelay(10); + outb_p(LATCH & 0xff , PIT_CH0); /* LSB */ + udelay(10); + outb(LATCH >> 8 , PIT_CH0); /* MSB */ + spin_unlock_irqrestore(&i8253_lock, flags); +} diff -puN arch/i386/kernel/Makefile~time-i386-conversion-part-1-move-timer_pitc-to-i8253c arch/i386/kernel/Makefile --- devel/arch/i386/kernel/Makefile~time-i386-conversion-part-1-move-timer_pitc-to-i8253c 2006-01-07 02:21:50.000000000 -0800 +++ devel-akpm/arch/i386/kernel/Makefile 2006-01-07 02:21:55.000000000 -0800 @@ -7,7 +7,7 @@ extra-y := head.o init_task.o vmlinux.ld obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \ ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \ pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \ - quirks.o i8237.o + quirks.o i8237.o i8253.o obj-y += cpu/ obj-y += timers/ diff -puN arch/i386/kernel/time.c~time-i386-conversion-part-1-move-timer_pitc-to-i8253c arch/i386/kernel/time.c --- devel/arch/i386/kernel/time.c~time-i386-conversion-part-1-move-timer_pitc-to-i8253c 2006-01-07 02:21:50.000000000 -0800 +++ devel-akpm/arch/i386/kernel/time.c 2006-01-07 02:21:50.000000000 -0800 @@ -82,11 +82,6 @@ extern unsigned long wall_jiffies; DEFINE_SPINLOCK(rtc_lock); EXPORT_SYMBOL(rtc_lock); -#include - -DEFINE_SPINLOCK(i8253_lock); -EXPORT_SYMBOL(i8253_lock); - struct timer_opts *cur_timer __read_mostly = &timer_none; /* diff -puN arch/i386/kernel/timers/timer_pit.c~time-i386-conversion-part-1-move-timer_pitc-to-i8253c arch/i386/kernel/timers/timer_pit.c --- devel/arch/i386/kernel/timers/timer_pit.c~time-i386-conversion-part-1-move-timer_pitc-to-i8253c 2006-01-07 02:21:50.000000000 -0800 +++ devel-akpm/arch/i386/kernel/timers/timer_pit.c 2006-01-07 02:21:50.000000000 -0800 @@ -162,16 +162,3 @@ struct init_timer_opts __initdata timer_ .init = init_pit, .opts = &timer_pit, }; - -void setup_pit_timer(void) -{ - unsigned long flags; - - spin_lock_irqsave(&i8253_lock, flags); - outb_p(0x34,PIT_MODE); /* binary, mode 2, LSB/MSB, ch 0 */ - udelay(10); - outb_p(LATCH & 0xff , PIT_CH0); /* LSB */ - udelay(10); - outb(LATCH >> 8 , PIT_CH0); /* MSB */ - spin_unlock_irqrestore(&i8253_lock, flags); -} _