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 Thu Apr 11 07:25:15 2002 +++ 25-akpm/arch/i386/kernel/i8253.c Tue Jan 24 13:37:44 2006 @@ -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 --- 25/arch/i386/kernel/Makefile~time-i386-conversion-part-1-move-timer_pitc-to-i8253c Tue Jan 24 13:37:44 2006 +++ 25-akpm/arch/i386/kernel/Makefile Tue Jan 24 13:38:01 2006 @@ -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 alternative.o + quirks.o i8237.o i8253.o alternative.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 --- 25/arch/i386/kernel/time.c~time-i386-conversion-part-1-move-timer_pitc-to-i8253c Tue Jan 24 13:37:44 2006 +++ 25-akpm/arch/i386/kernel/time.c Tue Jan 24 13:37:44 2006 @@ -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 --- 25/arch/i386/kernel/timers/timer_pit.c~time-i386-conversion-part-1-move-timer_pitc-to-i8253c Tue Jan 24 13:37:44 2006 +++ 25-akpm/arch/i386/kernel/timers/timer_pit.c Tue Jan 24 13:37:44 2006 @@ -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); -} _