diff -urN linux-2.6.21/arch/i386/Kconfig linux-2.6.21-pcsp-kern/arch/i386/Kconfig
--- linux-2.6.21/arch/i386/Kconfig	2007-02-05 18:42:27.000000000 +0300
+++ linux-2.6.21-pcsp-kern/arch/i386/Kconfig	2007-02-09 16:23:05.000000000 +0300
@@ -1286,3 +1286,7 @@
 config KTIME_SCALAR
 	bool
 	default y
+
+config HAVE_PCSP_HOOK
+	bool
+	default y
diff -urN linux-2.6.21/CREDITS linux-2.6.21-pcsp-kern/CREDITS
--- linux-2.6.21/CREDITS	2007-04-27 12:59:37.000000000 +0400
+++ linux-2.6.21-pcsp-kern/CREDITS	2007-05-10 16:59:30.000000000 +0400
@@ -397,6 +397,8 @@
 N: Erik Inge Bolsų
 E: knan@mo.himolde.no
 D: Misc kernel hacks
+D: Updated PC speaker driver for 2.3
+S: Norway
 
 N: Andreas E. Bombe
 E: andreas.bombe@munich.netsurf.de
@@ -3080,6 +3082,12 @@
 S: Sunnyvale, California 94088-4132
 S: USA
 
+N: Stas Sergeev
+E: stsp@users.sourceforge.net
+D: PC-Speaker driver
+D: misc fixes
+S: Russia
+
 N: Simon Shapiro
 E: shimon@i-Connect.Net
 W: http://www.-i-Connect.Net/~shimon
diff -urN linux-2.6.21/drivers/input/misc/Kconfig linux-2.6.21-pcsp-kern/drivers/input/misc/Kconfig
--- linux-2.6.21/drivers/input/misc/Kconfig	2007-04-27 12:59:55.000000000 +0400
+++ linux-2.6.21-pcsp-kern/drivers/input/misc/Kconfig	2007-05-10 16:59:30.000000000 +0400
@@ -14,7 +14,8 @@
 
 config INPUT_PCSPKR
 	tristate "PC Speaker support"
-	depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES
+	depends on (ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || \
+		PPC_PSERIES) && !SND_PCSP
 	help
 	  Say Y here if you want the standard PC Speaker to be used for
 	  bells and whistles.
diff -urN linux-2.6.21/kernel/hrtimer.c linux-2.6.21-pcsp-kern/kernel/hrtimer.c
--- linux-2.6.21/kernel/hrtimer.c	2007-04-27 13:00:25.000000000 +0400
+++ linux-2.6.21-pcsp-kern/kernel/hrtimer.c	2007-05-10 16:59:30.000000000 +0400
@@ -666,6 +666,7 @@
 
 	return orun;
 }
+EXPORT_SYMBOL_GPL(hrtimer_forward);
 
 /*
  * enqueue_hrtimer - internal function to (re)start a timer
