From: Thorsten Kranzkowski <dl8bcu@dl8bcu.de>



---

 25-akpm/arch/x86_64/kernel/time.c   |    7 ++++---
 25-akpm/drivers/input/misc/98spkr.c |    3 ++-
 25-akpm/drivers/input/misc/Kconfig  |    2 +-
 25-akpm/drivers/input/misc/pcspkr.c |    3 ++-
 4 files changed, 9 insertions(+), 6 deletions(-)

diff -puN arch/x86_64/kernel/time.c~use-pit_tick_rate-in-spkrc arch/x86_64/kernel/time.c
--- 25/arch/x86_64/kernel/time.c~use-pit_tick_rate-in-spkrc	Tue May  4 17:31:37 2004
+++ 25-akpm/arch/x86_64/kernel/time.c	Tue May  4 17:31:37 2004
@@ -27,6 +27,7 @@
 #include <linux/sysdev.h>
 #include <linux/bcd.h>
 #include <linux/kallsyms.h>
+#include <asm/8253pit.h>
 #include <asm/pgtable.h>
 #include <asm/vsyscall.h>
 #include <asm/timex.h>
@@ -54,7 +55,7 @@ static int nohpet __initdata = 0;
 unsigned int cpu_khz;					/* TSC clocks / usec, not used here */
 unsigned long hpet_period;				/* fsecs / HPET clock */
 unsigned long hpet_tick;				/* HPET clocks / interrupt */
-unsigned long vxtime_hz = 1193182;
+unsigned long vxtime_hz = PIT_TICK_RATE;
 int report_lost_ticks;				/* command line option */
 unsigned long long monotonic_base;
 
@@ -600,8 +601,8 @@ static unsigned int __init pit_calibrate
 	outb((inb(0x61) & ~0x02) | 0x01, 0x61);
 
 	outb(0xb0, 0x43);
-	outb((1193182 / (1000 / 50)) & 0xff, 0x42);
-	outb((1193182 / (1000 / 50)) >> 8, 0x42);
+	outb((PIT_TICK_RATE / (1000 / 50)) & 0xff, 0x42);
+	outb((PIT_TICK_RATE / (1000 / 50)) >> 8, 0x42);
 	rdtscll(start);
 	sync_core();
 	while ((inb(0x61) & 0x20) == 0);
diff -puN drivers/input/misc/98spkr.c~use-pit_tick_rate-in-spkrc drivers/input/misc/98spkr.c
--- 25/drivers/input/misc/98spkr.c~use-pit_tick_rate-in-spkrc	Tue May  4 17:31:37 2004
+++ 25-akpm/drivers/input/misc/98spkr.c	Tue May  4 17:31:37 2004
@@ -17,6 +17,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/input.h>
+#include <asm/8253pit.h>
 #include <asm/io.h>
 
 MODULE_AUTHOR("Osamu Tomita <tomita@cinet.co.jp>");
@@ -44,7 +45,7 @@ static int spkr98_event(struct input_dev
 	}
 
 	if (value > 20 && value < 32767)
-		count = CLOCK_TICK_RATE / value;
+		count = PIT_TICK_RATE / value;
 
 	spin_lock_irqsave(&i8253_beep_lock, flags);
 
diff -puN drivers/input/misc/Kconfig~use-pit_tick_rate-in-spkrc drivers/input/misc/Kconfig
--- 25/drivers/input/misc/Kconfig~use-pit_tick_rate-in-spkrc	Tue May  4 17:31:37 2004
+++ 25-akpm/drivers/input/misc/Kconfig	Tue May  4 17:31:37 2004
@@ -14,7 +14,7 @@ config INPUT_MISC
 
 config INPUT_PCSPKR
 	tristate "PC Speaker support"
-	depends on INPUT && INPUT_MISC
+	depends on (ALPHA || X86 || X86_64 || MIPS) && INPUT && INPUT_MISC
 	help
 	  Say Y here if you want the standard PC Speaker to be used for
 	  bells and whistles.
diff -puN drivers/input/misc/pcspkr.c~use-pit_tick_rate-in-spkrc drivers/input/misc/pcspkr.c
--- 25/drivers/input/misc/pcspkr.c~use-pit_tick_rate-in-spkrc	Tue May  4 17:31:37 2004
+++ 25-akpm/drivers/input/misc/pcspkr.c	Tue May  4 17:31:37 2004
@@ -16,6 +16,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/input.h>
+#include <asm/8253pit.h>
 #include <asm/io.h>
 
 MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
@@ -43,7 +44,7 @@ static int pcspkr_event(struct input_dev
 	}
 
 	if (value > 20 && value < 32767)
-		count = CLOCK_TICK_RATE / value;
+		count = PIT_TICK_RATE / value;
 
 	spin_lock_irqsave(&i8253_beep_lock, flags);
 

_